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)
Example #2
0
def handle(msg, handle_topic_event=None):
    message_type = msg.get_message_type()
    if message_type == _EVENT_TOPIC_MESSAGE_TYPE and handle_topic_event is not None:
        initial_frame = msg.next_frame()
        publish_time = FixSizedTypesCodec.decode_long(
            initial_frame.buf, _EVENT_TOPIC_PUBLISH_TIME_OFFSET)
        uuid = FixSizedTypesCodec.decode_uuid(initial_frame.buf,
                                              _EVENT_TOPIC_UUID_OFFSET)
        item = DataCodec.decode(msg)
        handle_topic_event(item, publish_time, uuid)
        return
 def test_data(self):
     self.mark_initial_frame_as_non_final()
     data = Data("123456789".encode("utf-8"))
     DataCodec.encode(self.buf, data)
     DataCodec.encode_nullable(self.buf, data)
     DataCodec.encode_nullable(self.buf, None, True)
     message = self.write_and_decode()
     message.next_frame()  # initial frame
     self.assertEqual(data, DataCodec.decode(message))
     self.assertEqual(data, DataCodec.decode_nullable(message))
     self.assertIsNone(DataCodec.decode_nullable(message))