def write_frame(self, buf): writer = Writer(buf) writer.write_octet( self.type() ) writer.write_short( self.channel_id ) # Write a temporary value for the total length of the frame stream_args_len_pos = len(buf) writer.write_long(0) # Mark the point in the stream where we start writing arguments, *including* # the class and method ids. stream_method_pos = len(buf) writer.write_short(self.class_id) writer.write_short(self.method_id) # This is assuming that args is a Writer if self._args != None: writer.write( self._args.buffer() ) # Write the total length back at the position we allocated stream_len = len(buf) - stream_method_pos writer.write_long_at( stream_len, stream_args_len_pos ) # Write the footer writer.write_octet(0xce)
def write_frame(self, buf): writer = Writer(buf) writer.write_octet(self.type()) writer.write_short(self.channel_id) # Write a temporary value for the total length of the frame stream_args_len_pos = len(buf) writer.write_long(0) # Mark the point in the stream where we start writing arguments, # *including* the class and method ids. stream_method_pos = len(buf) writer.write_short(self.class_id) writer.write_short(self.method_id) # This is assuming that args is a Writer if self._args is not None: writer.write(self._args.buffer()) # Write the total length back at the position we allocated stream_len = len(buf) - stream_method_pos writer.write_long_at(stream_len, stream_args_len_pos) # Write the footer writer.write_octet(0xce)
def write_frame(self, buf): writer = Writer( buf ) writer.write_octet( self.type() ) writer.write_short(self.channel_id) writer.write_long( len(self._payload) ) writer.write( self._payload ) writer.write_octet( 0xce )
def write_frame(self, buf): writer = Writer(buf) writer.write_octet( self.type() ) writer.write_short( self.channel_id ) #writer.flush( stream ) #stream_args_len_pos = stream.tell() stream_args_len_pos = len(buf) #writer = Writer() #writer.write_long(0) # temporary storage of total length #writer.flush( stream ) writer.write_long(0) # Mark the point in the stream where we start writing arguments, *including* # the class and method ids. #stream_method_pos = stream.tell() stream_method_pos = len(buf) #writer = Writer() writer.write_short(self.class_id) writer.write_short(self.method_id) #writer.flush(stream) #stream_end_args_pos = stream_end_method_pos = stream.tell() stream_end_args_pos = stream_end_method_pos = len(buf) # This is assuming that args is a Writer if self._args != None: #self._args.flush(stream) #stream_end_args_pos = stream.tell() writer.write( self._args.buffer() ) stream_end_args_pos = len(buf) stream_len = stream_end_args_pos - stream_method_pos #stream.seek( stream_method_pos ) # Seek all the way back to when we started writing the arguments and # write the total length of the bytes we wrote. #writer = Writer() #writer.write_long( stream_len ) #stream.seek( stream_args_len_pos ) #writer.flush( stream ) writer.write_long_at( stream_len, stream_args_len_pos ) # Seek to end and write the footer #stream.seek( 0, 2 ) #stream.write('\xce') writer.write_octet(0xce)
def test_write(self): w = Writer() assert_true(w is w.write('foo')) assert_equals(bytearray('foo'), w._output_buffer)
def test_write(self): w = Writer() assert_true( w is w.write( 'foo' ) ) assert_equals( bytearray('foo'), w._output_buffer )