class RequestHeader(m.Message): magic = m.Byte(default=0xA0) id = m.Uvarlong() version = m.Byte(default=25) op = m.Byte() cname = m.String(optional=True) flags = m.Uvarint(default=0) ci = m.Byte(default=ClientIntelligence.BASIC) t_id = m.Uvarint(default=0)
class PutRequest(Request): OP_CODE = 0x01 key = m.Varbytes() tunits = m.SplitByte(default=[TimeUnits.DEFAULT, TimeUnits.DEFAULT]) lifespan = m.Uvarint(default=10, condition=lambda s: s.tunits[0] not in [TimeUnits.DEFAULT, TimeUnits.INFINITE]) max_idle = m.Uvarint(default=10, condition=lambda s: s.tunits[1] not in [TimeUnits.DEFAULT, TimeUnits.INFINITE]) value = m.Varbytes()
class ReplaceIfUnmodifiedRequest(Request): OP_CODE = 0x09 key = m.Varbytes() tunits = m.SplitByte(default=[TimeUnits.DEFAULT, TimeUnits.DEFAULT]) lifespan = m.Uvarint(default=10, condition=lambda s: s.tunits[0] not in [TimeUnits.DEFAULT, TimeUnits.INFINITE]) max_idle = m.Uvarint(default=10, condition=lambda s: s.tunits[1] not in [TimeUnits.DEFAULT, TimeUnits.INFINITE]) version = m.Bytes(8) value = m.Varbytes()
class GetWithMetadataResponse(Response): OP_CODE = 0x1C flag = m.Byte(condition=lambda s: s.header.status == Status.OK) created = m.Long(condition=lambda s: s.header.status == Status.OK and not(s.flag & 0x01)) lifespan = m.Uvarint(condition=lambda s: s.header.status == Status.OK and not(s.flag & 0x01)) last_used = m.Long(condition=lambda s: s.header.status == Status.OK and not(s.flag & 0x02)) max_idle = m.Uvarint(condition=lambda s: s.header.status == Status.OK and not(s.flag & 0x02)) version = m.Bytes(8, condition=lambda s: s.header.status == Status.OK) value = m.Varbytes(condition=lambda s: s.header.status == Status.OK)
class TopologyChangeHeader(m.Message): id = m.Uvarint() n = m.Uvarint() hosts = m.List(of=Host, size=lambda s: s.n)
class StatsResponse(Response): OP_CODE = 0x16 n = m.Uvarint() stats = m.List(of=Stat, size=lambda s: s.n)