text: from hazelcast.serialization.bits import *
  from hazelcast.protocol.builtin import FixSizedTypesCodec
  from hazelcast.protocol.client_message import OutboundMessage, REQUEST_HEADER_SIZE, create_initial_buffer, RESPONSE_HEADER_SIZE
  from hazelcast.protocol.builtin import StringCodec
  from hazelcast.protocol.builtin import ListMultiFrameCodec
  from hazelcast.protocol.builtin import DataCodec
  
  # hex: 0x170800
  _REQUEST_MESSAGE_TYPE = 1509376
  # hex: 0x170801
  _RESPONSE_MESSAGE_TYPE = 1509377
  
  _REQUEST_OVERFLOW_POLICY_OFFSET = REQUEST_HEADER_SIZE
  _REQUEST_INITIAL_FRAME_SIZE = _REQUEST_OVERFLOW_POLICY_OFFSET + INT_SIZE_IN_BYTES
  _RESPONSE_RESPONSE_OFFSET = RESPONSE_HEADER_SIZE
  
  
  def encode_request(name, value_list, overflow_policy):
      buf = create_initial_buffer(_REQUEST_INITIAL_FRAME_SIZE, _REQUEST_MESSAGE_TYPE)
      FixSizedTypesCodec.encode_int(buf, _REQUEST_OVERFLOW_POLICY_OFFSET, overflow_policy)
      StringCodec.encode(buf, name)
      ListMultiFrameCodec.encode(buf, value_list, DataCodec.encode, True)
      return OutboundMessage(buf, False)
  
  
  def decode_response(msg):
      initial_frame = msg.next_frame()
      return FixSizedTypesCodec.decode_long(initial_frame.buf, _RESPONSE_RESPONSE_OFFSET)
  