Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

xmog_remote_message.h

00001 /*
00002  * Copyright 1999-2006 by Codemesh, Inc.  ALL RIGHTS RESERVED.
00003  */
00004 
00005 #ifndef xmog_remote_message_inc
00006 #define xmog_remote_message_inc
00007 
00008 
00009 #include "xmog.h"
00010 
00011 
00012 struct  iovec;
00013 class   xmog_java_class;
00014 
00015 
00022 class XMOG_DECLSPEC xmog_remote_message
00023 {
00024 public:
00025 
00029     enum xmog_message_id
00030     {
00031         NONE                            = 0,
00032 
00033         SIGN_ON                         = 1,
00034         SIGN_ON_STATUS                  = 2,
00035 
00036         THREAD_ID_REQUEST               = 3,
00037         THREAD_ID_ASSIGNMENT            = 4,
00038 
00039         THREAD_TERMINATED               = 5,
00040         SESSION_TERMINATED              = 6,
00041 
00042         DROP_OBJECT_REFS                = 7,
00043 
00044         CLASS_INFO_REQUEST              = 11,
00045         CLASS_INFO_RESPONSE             = 12,
00046 
00047         MEMBER_IDS_REQUEST              = 13,
00048         MEMBER_IDS_ASSIGNMENT           = 14,
00049 
00050         METHOD_CALL                     = 15,
00051         METHOD_RETURN                   = 16,
00052 
00053         GET_FIELD_REQUEST               = 17,
00054         GET_FIELD_RESPONSE              = 18,
00055 
00056         SET_FIELD_REQUEST               = 19,
00057         SET_FIELD_RESPONSE              = 20,
00058 
00059         CONSTRUCTOR_CALL                = 21,
00060         CONSTRUCTOR_RETURN              = 22
00061     };
00062 
00066     enum xmog_signon_status
00067     {
00068         STATUS_OK                       = 0,
00069         STATUS_NO_NEW_SESSIONS          = 1,
00070         STATUS_NOT_AUTHORIZED           = 2,
00071         STATUS_SHUTTING_DOWN            = 3
00072     };
00073 
00074 private:
00075 
00076     xmog_message_id                     id_;
00077 
00078     void *                              body_;
00079 
00080     void *                              current_;
00081 
00082 public:
00083 
00084     xmog_remote_message( size_t size = 512 );
00085 
00086     ~xmog_remote_message();
00087 
00092     int     get_iovecs( iovec * vec );
00093 
00101     void *  body() const;
00102 
00106     void    prependLength();
00107 
00111     void    writeBoolean( bool b );
00112 
00116     bool    readBoolean();
00117 
00121     void    writeByte( jbyte b );
00122 
00126     jbyte   readByte();
00127 
00131     void    writeChar( jchar c );
00132 
00136     jchar   readChar();
00137 
00141     void    writeDouble( jdouble d );
00142 
00146     jdouble readDouble();
00147 
00151     void    writeFloat( jfloat d );
00152 
00156     jfloat  readFloat();
00157 
00163     void    writeInt( jint i );
00164 
00170     jint    readInt();
00171 
00177     void    writeShort( jshort s );
00178 
00184     jshort  readShort();
00185 
00196     void    writeString( const char * str, size_t len = (size_t)-1 );
00197 
00209     void    writeString( const XMOG_WCHAR * str, size_t len = (size_t)-1 );
00210 
00220     void    writeUTF( const char * utf, size_t len = (size_t)-1 );
00221 
00240     static  xmog_remote_message *   createSignOnMessage( const char * serverAppNameUTF ,
00241                                                          const char * clientDisplayNameUTF = NULL,
00242                                                          bool alignDataForClient = true,
00243                                                          const char * clientSignOnNameUTF = NULL,
00244                                                          const char * clientCredentialsUTF = NULL,
00245                                                          int authenticationType = 0 );
00246 
00251     static  xmog_remote_message *   createSignOffMessage();
00252 
00258     static xmog_remote_message *    createMemberIDsRequestMessage( xmog_java_class * _clazz );
00259 
00265     static xmog_remote_message *    createMessage( void * body );
00266 
00270     int     getMessageCode( int & code );
00271 
00275     int     getSignOnReplyCode( int & code );
00276     
00277 
00278 
00279     void dump();
00280 };
00281 
00282 
00283 #endif /* xmog_remote_message_inc */

Generated on Fri Jun 16 10:18:59 2006 for JMS Courier for C++ by  doxygen 1.4.1