class DeviceWithEverything(katcp.DeviceServer): PROTOCOL_INFO = katcp.ProtocolFlags(5, 1, [ katcp.ProtocolFlags.MULTI_CLIENT, katcp.ProtocolFlags.MESSAGE_IDS, katcp.ProtocolFlags.REQUEST_TIMEOUT_HINTS ]) def request_simple(self, req, msg): """A simple request""" @kattypes.return_reply() @kattypes.minimum_katcp_version(5, 1) def request_version_51(self, req, msg): """Request KATCP v5.1""" @kattypes.minimum_katcp_version(5, 0) def request_version_5(self, req, msg): """Request KATCP v5.0""" @kattypes.request() @kattypes.has_katcp_protocol_flags([ katcp.ProtocolFlags.MULTI_CLIENT, katcp.ProtocolFlags.MESSAGE_IDS ]) def request_flags(self, req): """Request some flags""" @kattypes.has_katcp_protocol_flags([katcp.ProtocolFlags.MULTI_CLIENT]) def request_fewer_flags(self, req, msg): """Request with fewer flags""" @kattypes.request() @kattypes.return_reply() @kattypes.minimum_katcp_version(5, 1) @kattypes.has_katcp_protocol_flags([katcp.ProtocolFlags.MULTI_CLIENT]) def request_version_and_flags(self, req, msg): """Request with version and flag requirements"""
class DeviceTestServerV4(DeviceTestServer): ## Protocol versions and flags for a katcp v4 server PROTOCOL_INFO = katcp.ProtocolFlags( 4, 0, set([ katcp.ProtocolFlags.MULTI_CLIENT, ])) def __init__(self, *args, **kwargs): super(TestDeviceServerV4Async.DeviceTestServerV4, self).__init__(*args, **kwargs) self.set_concurrency_options(thread_safe=False, handler_thread=False)
class DeviceTestServer51(DeviceTestServer): PROTOCOL_INFO = katcp.ProtocolFlags(5, 1, [ katcp.ProtocolFlags.MULTI_CLIENT, katcp.ProtocolFlags.MESSAGE_IDS, katcp.ProtocolFlags.REQUEST_TIMEOUT_HINTS ])
class DeviceTestServerWrong(DeviceTestServer): ## Protocol versions and flags for a katcp v4 server PROTOCOL_INFO = katcp.ProtocolFlags( 3, 0, set([ katcp.ProtocolFlags.MULTI_CLIENT, ]))
class DeviceVersionFour(self.DeviceWithEverything): PROTOCOL_INFO = katcp.ProtocolFlags( 4, 0, [katcp.ProtocolFlags.MULTI_CLIENT])
class DeviceVersionFive(self.DeviceWithEverything): PROTOCOL_INFO = katcp.ProtocolFlags(5, 0, [ katcp.ProtocolFlags.MULTI_CLIENT, katcp.ProtocolFlags.MESSAGE_IDS ])
class DeviceVersionFiveOneWithMultiClient(self.DeviceWithEverything): PROTOCOL_INFO = katcp.ProtocolFlags( 5, 1, [katcp.ProtocolFlags.MULTI_CLIENT])
class DeviceVersionFiveOneWithNothing(self.DeviceWithEverything): PROTOCOL_INFO = katcp.ProtocolFlags(5, 1, [])