00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _terimber_aiomsg_h_
00029 #define _terimber_aiomsg_h_
00030
00031 #include "aiomsg/msg_c.h"
00032 #include "aiomsg/msg_comm.h"
00033 #include "aiomsg/msg_user.h"
00034
00035 BEGIN_TERIMBER_NAMESPACE
00036 #pragma pack(4)
00037
00040 class aiomsg : public terimber_aiomsg
00041 {
00042 public:
00044 aiomsg();
00046 virtual ~aiomsg();
00048 virtual
00049 bool
00050 init( const char* info,
00051 const char* ini_key
00052 );
00053
00055 virtual
00056 bool
00057 init( const void* buffer,
00058 size_t len
00059 );
00060
00062 virtual
00063 bool
00064 uninit();
00065
00069 virtual
00070 bool
00071 start( msg_callback_notify* callback,
00072 size_t additional_thread_count
00073 );
00075 virtual
00076 bool
00077 stop();
00078
00080 virtual
00081 const char*
00082 get_port_error() const;
00083
00085 virtual
00086 const guid_t&
00087 get_port_address() const;
00088
00093 virtual
00094 msg_t*
00095 construct( size_t size
00096 );
00099 virtual
00100 bool
00101 resize( msg_t* msg,
00102 size_t size
00103 );
00105 virtual
00106 bool
00107 destroy( msg_t* msg
00108 );
00109
00112 virtual
00113 size_t
00114 get_size( const msg_t* msg
00115 ) const;
00116
00118 virtual
00119 bool
00120 write_buffer(msg_t* msg,
00121 size_t offset,
00122 const void* buf,
00123 size_t len
00124 );
00126 virtual
00127 const void*
00128 get_buffer( const msg_t* msg
00129 ) const;
00130
00132 virtual
00133 bool
00134 set_receiver(msg_t* msg,
00135 const guid_t& receiver
00136 );
00138 virtual
00139 bool
00140 get_sender( const msg_t* msg,
00141 guid_t& sender
00142 ) const;
00143
00148 virtual
00149 bool
00150 send( bool copy,
00151
00152 msg_t* msg,
00153 msg_t** reply
00154 );
00155
00161 virtual
00162 guid_t
00163 send_async(bool copy,
00164
00165 msg_t* msg
00166 );
00167
00171 virtual
00172 bool
00173 post( bool copy,
00174 msg_t* msg
00175
00176 );
00177
00192 virtual
00193 bool
00194 add_connection(const char* xml_description
00195 );
00196
00216 virtual
00217 bool
00218 add_listener(const char* xml_description
00219 );
00220
00222 virtual
00223 bool
00224 remove_connection(const guid_t& address
00225 );
00226
00228 virtual
00229 bool
00230 remove_listener(const char* type
00231 );
00232
00234 virtual
00235 void
00236 doxray();
00237
00238 private:
00241 void
00242 check_on() const;
00245 void
00246 check_ident() const;
00247 private:
00248 msg_communicator _communicator;
00249 mutable string_t _error;
00250 mutex _mtx;
00251 msg_user_connection* _user_conn;
00252 };
00253
00254 #pragma pack()
00255 END_TERIMBER_NAMESPACE
00256
00257 #endif
00258