Class: Baykit::BayServer::Protocol::Packet
- Inherits:
-
Object
- Object
- Baykit::BayServer::Protocol::Packet
- Includes:
- Util, Util::Reusable
- Defined in:
- lib/baykit/bayserver/protocol/packet.rb
Constant Summary collapse
- INITIAL_BUF_SIZE =
8192 * 4
Instance Attribute Summary collapse
-
#buf ⇒ Object
readonly
Returns the value of attribute buf.
-
#buf_len ⇒ Object
Returns the value of attribute buf_len.
-
#header_len ⇒ Object
readonly
Returns the value of attribute header_len.
-
#max_data_len ⇒ Object
readonly
Returns the value of attribute max_data_len.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
- #data_len ⇒ Object
- #expand ⇒ Object
-
#initialize(type, header_len, max_data_len) ⇒ Packet
constructor
A new instance of Packet.
- #new_data_accessor ⇒ Object
- #new_header_accessor ⇒ Object
- #reset ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(type, header_len, max_data_len) ⇒ Packet
Returns a new instance of Packet.
27 28 29 30 31 32 33 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 27 def initialize(type, header_len, max_data_len) @type = type @header_len = header_len @max_data_len = max_data_len @buf = StringUtil.alloc(INITIAL_BUF_SIZE) reset end |
Instance Attribute Details
#buf ⇒ Object (readonly)
Returns the value of attribute buf.
22 23 24 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 22 def buf @buf end |
#buf_len ⇒ Object
Returns the value of attribute buf_len.
23 24 25 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 23 def buf_len @buf_len end |
#header_len ⇒ Object (readonly)
Returns the value of attribute header_len.
24 25 26 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 24 def header_len @header_len end |
#max_data_len ⇒ Object (readonly)
Returns the value of attribute max_data_len.
25 26 27 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 25 def max_data_len @max_data_len end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
21 22 23 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 21 def type @type end |
Instance Method Details
#data_len ⇒ Object
41 42 43 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 41 def data_len() return @buf_len - @header_len end |
#expand ⇒ Object
45 46 47 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 45 def @buf = StringUtil.realloc(@buf, @buf.length * 2) end |
#new_data_accessor ⇒ Object
53 54 55 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 53 def new_data_accessor() return PacketPartAccessor.new(self, @header_len, -1) end |
#new_header_accessor ⇒ Object
49 50 51 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 49 def new_header_accessor() return PacketPartAccessor.new(self, 0, @header_len) end |
#reset ⇒ Object
35 36 37 38 39 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 35 def reset @buf.clear() header_len.times do |i| @buf << 0 end @buf_len = header_len end |
#to_s ⇒ Object
57 58 59 |
# File 'lib/baykit/bayserver/protocol/packet.rb', line 57 def to_s return "pkt[#{ClassUtil.get_local_name(self.class)}(#{@type})]" end |