def decode(msg): msg.next_frame() initial_frame = msg.next_frame() port = FixSizedTypesCodec.decode_int(initial_frame.buf, _PORT_DECODE_OFFSET) host = StringCodec.decode(msg) CodecUtil.fast_forward_to_end_frame(msg) return Address(host, port)
def encode_request(group_id, name, old_value, new_value): buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE) RaftGroupIdCodec.encode(buf, group_id) StringCodec.encode(buf, name) CodecUtil.encode_nullable(buf, old_value, DataCodec.encode) CodecUtil.encode_nullable(buf, new_value, DataCodec.encode, True) return OutboundMessage(buf, False)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() unique_key_transformation = FixSizedTypesCodec.decode_int(initial_frame.buf, _UNIQUE_KEY_TRANSFORMATION_DECODE_OFFSET) unique_key = StringCodec.decode(msg) CodecUtil.fast_forward_to_end_frame(msg) return BitmapIndexOptions(unique_key, unique_key_transformation)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() cost = FixSizedTypesCodec.decode_long(initial_frame.buf, _COST_DECODE_OFFSET) creation_time = FixSizedTypesCodec.decode_long( initial_frame.buf, _CREATION_TIME_DECODE_OFFSET) expiration_time = FixSizedTypesCodec.decode_long( initial_frame.buf, _EXPIRATION_TIME_DECODE_OFFSET) hits = FixSizedTypesCodec.decode_long(initial_frame.buf, _HITS_DECODE_OFFSET) last_access_time = FixSizedTypesCodec.decode_long( initial_frame.buf, _LAST_ACCESS_TIME_DECODE_OFFSET) last_stored_time = FixSizedTypesCodec.decode_long( initial_frame.buf, _LAST_STORED_TIME_DECODE_OFFSET) last_update_time = FixSizedTypesCodec.decode_long( initial_frame.buf, _LAST_UPDATE_TIME_DECODE_OFFSET) version = FixSizedTypesCodec.decode_long(initial_frame.buf, _VERSION_DECODE_OFFSET) ttl = FixSizedTypesCodec.decode_long(initial_frame.buf, _TTL_DECODE_OFFSET) max_idle = FixSizedTypesCodec.decode_long(initial_frame.buf, _MAX_IDLE_DECODE_OFFSET) key = DataCodec.decode(msg) value = DataCodec.decode(msg) CodecUtil.fast_forward_to_end_frame(msg) return SimpleEntryView(key, value, cost, creation_time, expiration_time, hits, last_access_time, last_stored_time, last_update_time, version, ttl, max_idle)
def decode(msg): msg.next_frame() type_name = StringCodec.decode(msg) fields_list = ListMultiFrameCodec.decode(msg, FieldDescriptorCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return Schema(type_name, fields_list)
def decode(msg): msg.next_frame() anchor_page_list = ListIntegerCodec.decode(msg) anchor_data_list = EntryListCodec.decode(msg, DataCodec.decode, DataCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return AnchorDataListHolder(anchor_page_list, anchor_data_list)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() kind = FixSizedTypesCodec.decode_int(initial_frame.buf, _KIND_DECODE_OFFSET) name = StringCodec.decode(msg) CodecUtil.fast_forward_to_end_frame(msg) return FieldDescriptor(name, kind)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() type = FixSizedTypesCodec.decode_int(initial_frame.buf, _TYPE_DECODE_OFFSET) identifier = CodecUtil.decode_nullable(msg, StringCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return EndpointQualifier(type, identifier)
def encode_request(group_id, name, new_value, return_old_value): buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE) FixSizedTypesCodec.encode_boolean(buf, _REQUEST_RETURN_OLD_VALUE_OFFSET, return_old_value) RaftGroupIdCodec.encode(buf, group_id) StringCodec.encode(buf, name) CodecUtil.encode_nullable(buf, new_value, DataCodec.encode, True) return OutboundMessage(buf, False)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() member_id_high = FixSizedTypesCodec.decode_long(initial_frame.buf, _MEMBER_ID_HIGH_DECODE_OFFSET) member_id_low = FixSizedTypesCodec.decode_long(initial_frame.buf, _MEMBER_ID_LOW_DECODE_OFFSET) local_id_high = FixSizedTypesCodec.decode_long(initial_frame.buf, _LOCAL_ID_HIGH_DECODE_OFFSET) local_id_low = FixSizedTypesCodec.decode_long(initial_frame.buf, _LOCAL_ID_LOW_DECODE_OFFSET) CodecUtil.fast_forward_to_end_frame(msg) return _SqlQueryId(member_id_high, member_id_low, local_id_high, local_id_low)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() error_code = FixSizedTypesCodec.decode_int(initial_frame.buf, _ERROR_CODE_DECODE_OFFSET) class_name = StringCodec.decode(msg) message = CodecUtil.decode_nullable(msg, StringCodec.decode) stack_trace_elements = ListMultiFrameCodec.decode(msg, StackTraceElementCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return ErrorHolder(error_code, class_name, message, stack_trace_elements)
def encode_request(name, start_sequence, min_count, max_count, filter): buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE) FixSizedTypesCodec.encode_long(buf, _REQUEST_START_SEQUENCE_OFFSET, start_sequence) FixSizedTypesCodec.encode_int(buf, _REQUEST_MIN_COUNT_OFFSET, min_count) FixSizedTypesCodec.encode_int(buf, _REQUEST_MAX_COUNT_OFFSET, max_count) StringCodec.encode(buf, name) CodecUtil.encode_nullable(buf, filter, DataCodec.encode, True) return OutboundMessage(buf, True)
def decode_response(msg): initial_frame = msg.next_frame() response = dict() response["update_count"] = FixSizedTypesCodec.decode_long( initial_frame.buf, _RESPONSE_UPDATE_COUNT_OFFSET) response["row_metadata"] = ListMultiFrameCodec.decode_nullable( msg, SqlColumnMetadataCodec.decode) response["row_page"] = CodecUtil.decode_nullable(msg, SqlPageCodec.decode) response["error"] = CodecUtil.decode_nullable(msg, SqlErrorCodec.decode) return response
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() seed = FixSizedTypesCodec.decode_long(initial_frame.buf, _SEED_DECODE_OFFSET) id = FixSizedTypesCodec.decode_long(initial_frame.buf, _ID_DECODE_OFFSET) name = StringCodec.decode(msg) CodecUtil.fast_forward_to_end_frame(msg) return RaftGroupId(name, seed, id)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() major = FixSizedTypesCodec.decode_byte(initial_frame.buf, _MAJOR_DECODE_OFFSET) minor = FixSizedTypesCodec.decode_byte(initial_frame.buf, _MINOR_DECODE_OFFSET) patch = FixSizedTypesCodec.decode_byte(initial_frame.buf, _PATCH_DECODE_OFFSET) CodecUtil.fast_forward_to_end_frame(msg) return MemberVersion(major, minor, patch)
def encode(buf, endpoint_qualifier, is_final=False): initial_frame_buf = create_initial_buffer_custom(_INITIAL_FRAME_SIZE) FixSizedTypesCodec.encode_int(initial_frame_buf, _TYPE_ENCODE_OFFSET, endpoint_qualifier.type) buf.extend(initial_frame_buf) CodecUtil.encode_nullable(buf, endpoint_qualifier.identifier, StringCodec.encode) if is_final: buf.extend(END_FINAL_FRAME_BUF) else: buf.extend(END_FRAME_BUF)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() line_number = FixSizedTypesCodec.decode_int( initial_frame.buf, _LINE_NUMBER_DECODE_OFFSET) class_name = StringCodec.decode(msg) method_name = StringCodec.decode(msg) file_name = CodecUtil.decode_nullable(msg, StringCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return StackTraceElement(class_name, method_name, file_name, line_number)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() type = FixSizedTypesCodec.decode_int(initial_frame.buf, _TYPE_DECODE_OFFSET) name = CodecUtil.decode_nullable(msg, StringCodec.decode) attributes = ListMultiFrameCodec.decode(msg, StringCodec.decode) bitmap_index_options = CodecUtil.decode_nullable( msg, BitmapIndexOptionsCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return IndexConfig(name, type, attributes, bitmap_index_options)
def encode(buf, sql_error, is_final=False): initial_frame_buf = create_initial_buffer_custom(_INITIAL_FRAME_SIZE) FixSizedTypesCodec.encode_int(initial_frame_buf, _CODE_ENCODE_OFFSET, sql_error.code) FixSizedTypesCodec.encode_uuid(initial_frame_buf, _ORIGINATING_MEMBER_ID_ENCODE_OFFSET, sql_error.originating_member_id) buf.extend(initial_frame_buf) CodecUtil.encode_nullable(buf, sql_error.message, StringCodec.encode) CodecUtil.encode_nullable(buf, sql_error.suggestion, StringCodec.encode) if is_final: buf.extend(END_FINAL_FRAME_BUF) else: buf.extend(END_FRAME_BUF)
def encode(buf, error_holder, is_final=False): initial_frame_buf = create_initial_buffer_custom(_INITIAL_FRAME_SIZE) FixSizedTypesCodec.encode_int(initial_frame_buf, _ERROR_CODE_ENCODE_OFFSET, error_holder.error_code) buf.extend(initial_frame_buf) StringCodec.encode(buf, error_holder.class_name) CodecUtil.encode_nullable(buf, error_holder.message, StringCodec.encode) ListMultiFrameCodec.encode(buf, error_holder.stack_trace_elements, StackTraceElementCodec.encode) if is_final: buf.extend(END_FINAL_FRAME_BUF) else: buf.extend(END_FRAME_BUF)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() page_size = FixSizedTypesCodec.decode_int(initial_frame.buf, _PAGE_SIZE_DECODE_OFFSET) page = FixSizedTypesCodec.decode_int(initial_frame.buf, _PAGE_DECODE_OFFSET) iteration_type_id = FixSizedTypesCodec.decode_byte(initial_frame.buf, _ITERATION_TYPE_ID_DECODE_OFFSET) anchor_data_list_holder = AnchorDataListHolderCodec.decode(msg) predicate_data = CodecUtil.decode_nullable(msg, DataCodec.decode) comparator_data = CodecUtil.decode_nullable(msg, DataCodec.decode) partition_key_data = CodecUtil.decode_nullable(msg, DataCodec.decode) CodecUtil.fast_forward_to_end_frame(msg) return PagingPredicateHolder(anchor_data_list_holder, predicate_data, comparator_data, page_size, page, iteration_type_id, partition_key_data)
def encode_request(name, start_sequence, min_size, max_size, predicate, projection): buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE) FixSizedTypesCodec.encode_long(buf, _REQUEST_START_SEQUENCE_OFFSET, start_sequence) FixSizedTypesCodec.encode_int(buf, _REQUEST_MIN_SIZE_OFFSET, min_size) FixSizedTypesCodec.encode_int(buf, _REQUEST_MAX_SIZE_OFFSET, max_size) StringCodec.encode(buf, name) CodecUtil.encode_nullable(buf, predicate, DataCodec.encode) CodecUtil.encode_nullable(buf, projection, DataCodec.encode, True) return OutboundMessage(buf, True)
def handle(msg, handle_entry_event=None): message_type = msg.get_message_type() if message_type == _EVENT_ENTRY_MESSAGE_TYPE and handle_entry_event is not None: initial_frame = msg.next_frame() event_type = FixSizedTypesCodec.decode_int(initial_frame.buf, _EVENT_ENTRY_EVENT_TYPE_OFFSET) uuid = FixSizedTypesCodec.decode_uuid(initial_frame.buf, _EVENT_ENTRY_UUID_OFFSET) number_of_affected_entries = FixSizedTypesCodec.decode_int(initial_frame.buf, _EVENT_ENTRY_NUMBER_OF_AFFECTED_ENTRIES_OFFSET) key = CodecUtil.decode_nullable(msg, DataCodec.decode) value = CodecUtil.decode_nullable(msg, DataCodec.decode) old_value = CodecUtil.decode_nullable(msg, DataCodec.decode) merging_value = CodecUtil.decode_nullable(msg, DataCodec.decode) handle_entry_event(key, value, old_value, merging_value, event_type, uuid, number_of_affected_entries) return
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() code = FixSizedTypesCodec.decode_int(initial_frame.buf, _CODE_DECODE_OFFSET) originating_member_id = FixSizedTypesCodec.decode_uuid(initial_frame.buf, _ORIGINATING_MEMBER_ID_DECODE_OFFSET) message = CodecUtil.decode_nullable(msg, StringCodec.decode) is_suggestion_exists = False suggestion = None if not msg.peek_next_frame().is_end_frame(): suggestion = CodecUtil.decode_nullable(msg, StringCodec.decode) is_suggestion_exists = True CodecUtil.fast_forward_to_end_frame(msg) return _SqlError(code, message, originating_member_id, is_suggestion_exists, suggestion)
def test_fast_forward(self): message = InboundMessage(BEGIN_FRAME.copy()) # New custom-typed parameter with its own begin and end frames message.add_frame(BEGIN_FRAME.copy()) message.add_frame(Frame(bytearray(0), 0)) message.add_frame(END_FRAME.copy()) message.add_frame(END_FRAME.copy()) # begin frame message.next_frame() CodecUtil.fast_forward_to_end_frame(message) self.assertFalse(message.has_next_frame())
def encode(buf, stack_trace_element, is_final=False): initial_frame_buf = create_initial_buffer_custom(_INITIAL_FRAME_SIZE) FixSizedTypesCodec.encode_int(initial_frame_buf, _LINE_NUMBER_ENCODE_OFFSET, stack_trace_element.line_number) buf.extend(initial_frame_buf) StringCodec.encode(buf, stack_trace_element.class_name) StringCodec.encode(buf, stack_trace_element.method_name) CodecUtil.encode_nullable(buf, stack_trace_element.file_name, StringCodec.encode) if is_final: buf.extend(END_FINAL_FRAME_BUF) else: buf.extend(END_FRAME_BUF)
def encode(buf, index_config, is_final=False): initial_frame_buf = create_initial_buffer_custom(_INITIAL_FRAME_SIZE) FixSizedTypesCodec.encode_int(initial_frame_buf, _TYPE_ENCODE_OFFSET, index_config.type) buf.extend(initial_frame_buf) CodecUtil.encode_nullable(buf, index_config.name, StringCodec.encode) ListMultiFrameCodec.encode(buf, index_config.attributes, StringCodec.encode) CodecUtil.encode_nullable(buf, index_config.bitmap_index_options, BitmapIndexOptionsCodec.encode) if is_final: buf.extend(END_FINAL_FRAME_BUF) else: buf.extend(END_FRAME_BUF)
def decode(msg): msg.next_frame() initial_frame = msg.next_frame() type = FixSizedTypesCodec.decode_int(initial_frame.buf, _TYPE_DECODE_OFFSET) is_nullable_exists = False nullable = False if len(initial_frame.buf ) >= _NULLABLE_DECODE_OFFSET + BOOLEAN_SIZE_IN_BYTES: nullable = FixSizedTypesCodec.decode_boolean( initial_frame.buf, _NULLABLE_DECODE_OFFSET) is_nullable_exists = True name = StringCodec.decode(msg) CodecUtil.fast_forward_to_end_frame(msg) return SqlColumnMetadata(name, type, is_nullable_exists, nullable)
def encode_request(sql, parameters, timeout_millis, cursor_buffer_size, schema, expected_result_type, query_id): buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE) FixSizedTypesCodec.encode_long(buf, _REQUEST_TIMEOUT_MILLIS_OFFSET, timeout_millis) FixSizedTypesCodec.encode_int(buf, _REQUEST_CURSOR_BUFFER_SIZE_OFFSET, cursor_buffer_size) FixSizedTypesCodec.encode_byte(buf, _REQUEST_EXPECTED_RESULT_TYPE_OFFSET, expected_result_type) StringCodec.encode(buf, sql) ListMultiFrameCodec.encode_contains_nullable(buf, parameters, DataCodec.encode) CodecUtil.encode_nullable(buf, schema, StringCodec.encode) SqlQueryIdCodec.encode(buf, query_id, True) return OutboundMessage(buf, False)
def encode_request(cluster_name, username, password, uuid, client_type, serialization_version, client_hazelcast_version, client_name, labels): buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE) FixSizedTypesCodec.encode_uuid(buf, _REQUEST_UUID_OFFSET, uuid) FixSizedTypesCodec.encode_byte(buf, _REQUEST_SERIALIZATION_VERSION_OFFSET, serialization_version) StringCodec.encode(buf, cluster_name) CodecUtil.encode_nullable(buf, username, StringCodec.encode) CodecUtil.encode_nullable(buf, password, StringCodec.encode) StringCodec.encode(buf, client_type) StringCodec.encode(buf, client_hazelcast_version) StringCodec.encode(buf, client_name) ListMultiFrameCodec.encode(buf, labels, StringCodec.encode, True) return OutboundMessage(buf, True)