def write_notify_device_acces(exception=None): """Encodes and returns a MDA ('Notify MPN Device Access') response.""" method = str(Method.MDA) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), CreditsError, NotificationError)
def write_notify_user_message(exception=None): """Encodes and returns a NUM ('Notify User Message') response.""" method = str(Method.NUM) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), CreditsError, NotificationError)
def write_notify_new_tables(exception=None): """Encodes and returns a NNT ('Notify New Table') response.""" method = str(Method.NNT) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), CreditsError, NotificationError)
def write_init(exception=None): """Encodes and returns a MPI ('Metadata Init') response.""" if not exception: return join(str(Method.MPI), "V") else: return _handle_exception(exception, join(str(Method.MPI), 'E'), MetadataProviderError)
def write_notify_new_session(exception=None): """Encodes and returns a NNS ('Notify User') response.""" method = str(Method.NNS) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), CreditsError, NotificationError)
def write_unsub(exception=None): """Encodes and returns a USB ('Unsubscribe') response.""" if not exception: return join(str(Method.USB), 'V') else: return _handle_exception(exception, join(str(Method.USB), 'E'), SubscribeError, FailureError)
def write_device_token_change(exception=None): """Reads and parses a MDC ('Notify MPN Subscription Activation') request. """ method = str(Method.MDC) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), CreditsError, NotificationError)
def write_notify_tables_close(exception=None): """Encodes and returns a NTC ('Notify Table Close') response.""" method = str(Method.NTC) if not exception: return join(method, "V") else: return _handle_exception(exception, join(method, "E"), NotificationError)
def write_sub(exception=None): """Encodes and returns a SUB ('Subscribe') response.""" if not exception: return join(str(Method.SUB), "V") else: return _handle_exception(exception, join(str(Method.SUB), 'E'), SubscribeError, FailureError)
def write_get_items(items=None, exception=None): """Encodes and returns a GIS ('Get Items') response.""" method = str(Method.GIS) if exception: return _handle_exception(exception, join(method, 'E'), ItemsError) if items: return join(method, 'S|') + '|S|'.join( [enc_str(item_name) for item_name in items]) return join(method)
def write_subscription_activation(exception=None): """Encodes and returns a MSA ('Notify MPN Subscription Activation') response. """ method = str(Method.MSA) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), CreditsError, NotificationError)
def write_get_schema(fields=None, exception=None): """Encodes and returns a GSC ('Get Items') response.""" method = str(Method.GSC) if exception: return _handle_exception(exception, join(method, 'E'), ItemsError, SchemaError) if fields: return join(method, 'S|') + '|S|'.join( [enc_str(field) for field in fields]) return join(method)
def write_notiy_user(method, allowed_max_bandwidth=None, wants_tables_notification=None, exception=None): """Encodes and returns a NUS ('Notify User') response.""" if not exception: return join(str(method), 'D', enc_double(allowed_max_bandwidth), 'B', enc_bool(wants_tables_notification)) else: return _handle_exception(exception, join(str(method), 'E'), AccessError, CreditsError)
def write_update_map(item_name, request_id, issnapshot, events_map): """Encodes and returns a UD3 ('Update By Map') response.""" update = join(str(Method.UD3), 'S', enc_str(item_name), 'S', enc_str(request_id), 'B', enc_bool(issnapshot), append_separator=events_map) if events_map: tokens = [join('S', enc_str(field), _encode_value(value)) for field, value in list(events_map.items())] return update + "|".join(tokens) else: return update
def write_get_item_data(items_data=None, exception=None): """Encodes and returns a GIT ('Get Item Data') response.""" method = str(Method.GIT.name) if not exception: if items_data: encoded_items = [ join('I', enc_int(data["distinctSnapshotLength"]), 'D', enc_double(data["minSourceFrequency"]), 'M', enc_modes(data["allowedModeList"])) for data in items_data ] return join(method, append_separator=True) + \ "|".join(encoded_items) return join(method) return _handle_exception(exception, join(method, 'E'))
def write_get_user_item_data(items_data=None, exception=None): """Encodes and returns a GUI ('Get User Item Data') response.""" method = str(Method.GUI) if not exception: if items_data: encoded_items = [ join('I', enc_int(data["allowedBufferSize"]), 'D', enc_double(data["allowedMaxFrequency"]), 'M', enc_modes(data["allowedModeList"])) for data in items_data ] return join(method, append_separator=True) + \ "|".join(encoded_items) return join(method) return _handle_exception(exception, join(method, 'E'))
def write_notify_session_close(exception=None): """Encodes and returns a NSC ('Notify Session Close') response.""" method = str(Method.NSC) if not exception: return join(method, "V") return _handle_exception(exception, join(method, "E"), NotificationError)
def write_eos(item, request_id): """Encodes and returns an EOS ('End Of Snapshot') response.""" return join(str(Method.EOS), "S", enc_str(item), "S", enc_str(request_id))
def write_cls(item, request_id): """Encodes and returns a CLS ('Clear Snapshot') response string.""" return join(str(Method.CLS), "S", enc_str(item), "S", enc_str(request_id))
def write_failure(exception): """Encodes and returns a FAL ('Failure') response string.""" return join(str(Method.FAL), 'E', enc_str(str(exception)))