Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

scim::SocketTransaction Class Reference
[SocketCommunication]

This class is used to pack up many data and commands into one package and send them via socket. More...

#include <scim_socket_transaction.h>

List of all members.

Public Member Functions

 SocketTransaction (size_t bufsize=512)
 Constructor.
 ~SocketTransaction ()
 Destructor.
bool valid () const
 Check if the transaction is valid.
bool write_to_socket (const Socket &socket, uint32 signature=0) const
 Write the transaction to a socket.
bool read_from_socket (const Socket &socket, int timeout=-1)
 Read a transaction from a socket.
void put_command (int cmd)
 Store a command into this transaction.
void put_data (uint32 val)
 Store a uint32 value into this transaction.
void put_data (const String &str)
 Store a String object into this transaction.
void put_data (const WideString &str)
 Store a WideString object into this transaction.
void put_data (const KeyEvent &key)
 Store a KeyEvent object into this transaction.
void put_data (const AttributeList &attrs)
 Store an AttributeList object into this transaction.
void put_data (const Property &property)
 Store a Property object into this transaction.
void put_data (const PropertyList &properties)
 Store a PropertyList object into this transaction.
void put_data (const LookupTable &table)
 Store a LookupTable object into this transaction.
void put_data (const std::vector< uint32 > &vec)
 Store a std::vector<uint32> object into this transaction.
void put_data (const std::vector< String > &vec)
 Store a std::vector<String> object into this transaction.
void put_data (const std::vector< WideString > &vec)
 Store a std::vector<WideString> object into this transaction.
void put_data (const char *raw, size_t bufsize)
 Store a raw buffer into this transaction.
SocketTransactionDataType get_data_type () const
 Get the type of the data at current read position.
bool get_command (int &cmd)
 Get a command from current read position.
bool get_data (uint32 &val)
 Get an uint32 value from current read position.
bool get_data (String &str)
 Get a String from current read position.
bool get_data (WideString &str)
 Get a WideString from current read position.
bool get_data (KeyEvent &key)
 Get a KeyEvent from current read position.
bool get_data (AttributeList &attrs)
 Get an AttributeList from current read position.
bool get_data (Property &property)
 Get a Property from current read position.
bool get_data (PropertyList &properties)
 Get a PropertyList from current read position.
bool get_data (CommonLookupTable &table)
 Get a CommonLookupTable from current read position.
bool get_data (std::vector< uint32 > &vec)
 Get a std::vector<uint32> from current read position.
bool get_data (std::vector< String > &vec)
 Get a std::vector<String> from current read position.
bool get_data (std::vector< WideString > &vec)
 Get a std::vector<WideString> from current read position.
bool get_data (char **raw, size_t &bufsize)
 Get a raw buffer from current read position.
bool skip_data ()
 Skip one data from current read position.
void rewind_read_pos ()
 Rewind the current read position, then the data can be read again.
void clear ()
 Clear the transaction, all data in this transaction will be freed.


Detailed Description

This class is used to pack up many data and commands into one package and send them via socket.

Definition at line 162 of file scim_socket_transaction.h.


Constructor & Destructor Documentation

scim::SocketTransaction::SocketTransaction (  size_t  bufsize = 512  ) 
 

Constructor.

Parameters:
bufsize the initial buffer size, maybe grow afterwards.

scim::SocketTransaction::~SocketTransaction (   ) 
 

Destructor.


Member Function Documentation

bool scim::SocketTransaction::valid (   )  const
 

Check if the transaction is valid.

Returns:
true if this SocketTransaction object is valid and ready to use.

bool scim::SocketTransaction::write_to_socket (  const Socket &  socket,
uint32  signature = 0
)  const
 

Write the transaction to a socket.

Parameters:
socket the socket to be written to.
signature the leading signature to be written into the socket before the transaction itself, this signature maybe missing when receive the transaction. It's useful to check the connection before receiving a transaction by reading this signature.
Returns:
true if success.

bool scim::SocketTransaction::read_from_socket (  const Socket &  socket,
int  timeout = -1
) 
 

Read a transaction from a socket.

Parameters:
socket the socket to be read from.
timeout time out in millisecond (1/1000 second), -1 means infinity.
Returns:
true if success.

void scim::SocketTransaction::put_command (  int  cmd  ) 
 

Store a command into this transaction.

Parameters:
cmd the command code, like SCIM_TRANS_CMD_FOCUS_IN etc.

void scim::SocketTransaction::put_data (  uint32  val  ) 
 

Store a uint32 value into this transaction.

void scim::SocketTransaction::put_data (  const String &  str  ) 
 

Store a String object into this transaction.

void scim::SocketTransaction::put_data (  const WideString &  str  ) 
 

Store a WideString object into this transaction.

void scim::SocketTransaction::put_data (  const KeyEvent &  key  ) 
 

Store a KeyEvent object into this transaction.

void scim::SocketTransaction::put_data (  const AttributeList &  attrs  ) 
 

Store an AttributeList object into this transaction.

void scim::SocketTransaction::put_data (  const Property &  property  ) 
 

Store a Property object into this transaction.

void scim::SocketTransaction::put_data (  const PropertyList &  properties  ) 
 

Store a PropertyList object into this transaction.

void scim::SocketTransaction::put_data (  const LookupTable &  table  ) 
 

Store a LookupTable object into this transaction.

void scim::SocketTransaction::put_data (  const std::vector< uint32 > &  vec  ) 
 

Store a std::vector<uint32> object into this transaction.

void scim::SocketTransaction::put_data (  const std::vector< String > &  vec  ) 
 

Store a std::vector<String> object into this transaction.

void scim::SocketTransaction::put_data (  const std::vector< WideString > &  vec  ) 
 

Store a std::vector<WideString> object into this transaction.

void scim::SocketTransaction::put_data (  const char *  raw,
size_t  bufsize
) 
 

Store a raw buffer into this transaction.

SocketTransactionDataType scim::SocketTransaction::get_data_type (   )  const
 

Get the type of the data at current read position.

Returns:
The type of the data can be read currently.

bool scim::SocketTransaction::get_command (  int &  cmd  ) 
 

Get a command from current read position.

bool scim::SocketTransaction::get_data (  uint32 &  val  ) 
 

Get an uint32 value from current read position.

bool scim::SocketTransaction::get_data (  String &  str  ) 
 

Get a String from current read position.

bool scim::SocketTransaction::get_data (  WideString &  str  ) 
 

Get a WideString from current read position.

bool scim::SocketTransaction::get_data (  KeyEvent &  key  ) 
 

Get a KeyEvent from current read position.

bool scim::SocketTransaction::get_data (  AttributeList &  attrs  ) 
 

Get an AttributeList from current read position.

bool scim::SocketTransaction::get_data (  Property &  property  ) 
 

Get a Property from current read position.

bool scim::SocketTransaction::get_data (  PropertyList &  properties  ) 
 

Get a PropertyList from current read position.

bool scim::SocketTransaction::get_data (  CommonLookupTable &  table  ) 
 

Get a CommonLookupTable from current read position.

bool scim::SocketTransaction::get_data (  std::vector< uint32 > &  vec  ) 
 

Get a std::vector<uint32> from current read position.

bool scim::SocketTransaction::get_data (  std::vector< String > &  vec  ) 
 

Get a std::vector<String> from current read position.

bool scim::SocketTransaction::get_data (  std::vector< WideString > &  vec  ) 
 

Get a std::vector<WideString> from current read position.

bool scim::SocketTransaction::get_data (  char **  raw,
size_t &  bufsize
) 
 

Get a raw buffer from current read position.

if raw == NULL then return the bufsize and skip this data. *raw should be deleted afterwards (do not use free!).

bool scim::SocketTransaction::skip_data (   ) 
 

Skip one data from current read position.

void scim::SocketTransaction::rewind_read_pos (   ) 
 

Rewind the current read position, then the data can be read again.

void scim::SocketTransaction::clear (   ) 
 

Clear the transaction, all data in this transaction will be freed.


The documentation for this class was generated from the following file:
Generated on Thu Dec 30 21:03:28 2004 for scim by doxygen 1.3.8