GizmoDistribution

gzDistError.h

Go to the documentation of this file.
00001 //*****************************************************************************
00002 // File         : gzDistError.h
00003 // Module       : gzDistribution
00004 // Description  : Definition of a gzDistError interface
00005 // Author       : Anders Sandblad
00006 // Product      : GizmoDistribution 2.1.1
00007 //      
00008 // Copyright © 2004 - Saab Training Systems AB, Sweden
00009 //          
00010 // NOTE:    GizmoDistribution is a toolkit used for implementing distributed 
00011 //          objects and events in C++
00012 //
00013 //
00014 // Revision History...                          
00015 //                                  
00016 // Who  Date    Description                     
00017 //                                  
00018 // XAA  031021  Created file    
00019 //
00020 //******************************************************************************
00021 #ifndef __GZ_DIST_ERROR_H__
00022 #define __GZ_DIST_ERROR_H__
00023 
00034 // Includes
00035 #include "gzDistBase.h"
00036 
00037 
00038 //------------------------------ Error codes ----------------------------------
00039 
00041 enum gzDistErrorCode
00042 {
00043     GZ_DIST_NO_ERROR = 0,
00044 
00045     // Channel
00046     GZ_DIST_CHANNEL_MISSING,
00047     GZ_DIST_CHANNEL_ALREADY_OPEN,
00048     GZ_DIST_CHANNEL_NOT_OPEN,
00049     GZ_DIST_CHANNEL_MISSING_TRANSPORT,
00050     GZ_DIST_TRANSPORT_ALREADY_INSTALLED,
00051 
00052     // Protocol
00053     GZ_DIST_INVALID_PROTOCOL_VERSION,
00054     GZ_DIST_PROTOCOL_INCOMPLETE_MESSAGE,
00055     GZ_DIST_PROTOCOL_MESSAGE_TOO_LONG,
00056     GZ_DIST_PROTOCOL_SERIALIZE_WRITE_ERROR,
00057     GZ_DIST_PROTOCOL_PARSE_READ_ERROR,
00058     GZ_DIST_PROTOCOL_UNKNOWN_MESSAGE_CLASS,
00059     GZ_DIST_PROTOCOL_UNKNOWN_MESSAGE_TYPE,
00060 
00061     // Transport
00062     GZ_DIST_TRANSPORT_ALREADY_OPEN,
00063     GZ_DIST_TRANSPORT_ALREADY_CONNECTED,
00064     GZ_DIST_TRANSPORT_NOT_OPEN, 
00065     GZ_DIST_TRANSPORT_NOT_CONNECTED,    
00066     GZ_DIST_TRANSPORT_CONNECTION_FAILED,
00067     GZ_DIST_TRANSPORT_FAULTY_MESSAGE,
00068     GZ_DIST_TRANSPORT_WOULD_BLOCK,
00069 
00070     // Socket
00071     GZ_DIST_CREATE_SOCKET_FAILED,
00072     GZ_DIST_INVALID_SOCKET_OPTION,
00073     GZ_DIST_BIND_SOCKET_FAILED,
00074     GZ_DIST_SOCKET_SEND_FAILED,
00075     GZ_DIST_SOCKET_RECEIVE_FAILED,
00076     GZ_DIST_SOCKET_CONNECTION_REFUSED,
00077     GZ_DIST_SOCKET_CONNECTION_CLOSED,
00078     
00079     // Pipe
00080     GZ_DIST_WRITE_PIPE_FAILED,
00081     GZ_DIST_READ_PIPE_FAILED,
00082 
00083     // Client
00084     GZ_DIST_FAULTY_CLIENT,
00085     GZ_DIST_CLIENT_ALREADY_SUBSCRIBER,
00086     GZ_DIST_CLIENT_NOT_A_SUBSCRIBER,
00087     GZ_DIST_CLIENT_NOT_JOINED,
00088     GZ_DIST_CLIENT_ALREADY_EXIST,
00089     GZ_DIST_CLIENT_NOT_INITIALIZED,
00090     GZ_DIST_CLIENT_ALREADY_OWNER,
00091     GZ_DIST_UNHANDLED_CLIENT_MESSAGE,
00092     GZ_DIST_SESSION_NOT_FOUND,
00093     GZ_DIST_NO_MANAGER_EXIST,
00094     GZ_DIST_MANAGER_IS_NOT_RUNNING,
00095     GZ_DIST_MANAGER_IS_ALREADY_RUNNING,
00096     GZ_DIST_OBJECT_NOT_EVALUATED_FOR_SESSION,
00097     GZ_DIST_OBJECT_ALREADY_IN_SESSION,
00098     GZ_DIST_OBJECT_NOT_FOUND,
00099     GZ_DIST_OBJECT_NOT_IN_SESSION,
00100     GZ_DIST_ATTRIBUTE_NOT_FOUND,
00101     GZ_DIST_MESSAGE_TIMEOUT,
00102     GZ_DIST_OPTIMIZED_MEMORY_DISABLED,
00103     GZ_DIST_UNABLE_TO_ALLOCATE_MEMORY,
00104     GZ_DIST_EVENT_ALREADY_IN_SESSION,
00105     
00106     // Evaluator
00107     GZ_DIST_ILLEGAL_EVALUATOR,
00108     GZ_DIST_EVALUATOR_ALREADY_EXIST,
00109     GZ_DIST_OBJECT_REJECTED_BY_EVALUATOR,
00110 
00111     // Server
00112     GZ_DIST_SERVER_ENGINE_START_FAILED,
00113     GZ_DIST_SERVER_ENGINE_NOT_STARTED,
00114     GZ_DIST_SERVER_ALREADY_INSTALLED,
00115     GZ_DIST_SERVER_NOT_INSTALLED,
00116     GZ_DIST_SERVER_INSTALL_FAILED,
00117     GZ_DIST_SERVER_UNINSTALL_FAILED,
00118 
00119     // Common
00120     GZ_DIST_INVALID_PARAMETER,
00121     
00122     // TODO:
00123     // Add new error codes
00124     // Don't forget to add error string to the getErrorString() method
00125 
00126     GZ_DIST_UNKNOWN_ERROR
00127 };
00128 
00129 
00130 //------------------------------ Error levels ---------------------------------
00131 
00133 enum gzDistErrorLevel
00134 {
00135     GZ_DIST_ERROR_DEBUG = 0,        
00136     GZ_DIST_ERROR_NOTICE,           
00137     GZ_DIST_ERROR_WARNING,          
00138     GZ_DIST_ERROR_FATAL             
00139 };
00140 
00141 
00142 //------------------------------- gzDistError ----------------------------------
00143 
00144 //******************************************************************************
00145 // Class    : gzDistError
00146 //                                  
00147 // Purpose  : The base def class of a gzDistributionError.
00148 //                                  
00149 // Notes    : - 
00150 //                                  
00151 // Revision History...                          
00152 //                                  
00153 // Who  Date    Description                     
00154 //                                  
00155 // XAA  031021  Created 
00156 //                                  
00157 //******************************************************************************
00159 
00169 class gzDistError
00170 {
00171     public:
00172 
00174 
00176         GZ_DIST_EXPORT gzDistError();
00177 
00179 
00181         GZ_DIST_EXPORT gzDistError(const gzDistErrorCode& code, const gzDistErrorLevel& level);
00182         
00184 
00187         GZ_DIST_EXPORT gzDistError(const gzDistErrorCode& code, const gzDistErrorLevel& level, const gzString& additional);
00188 
00190         GZ_DIST_EXPORT gzDistError(const gzDistError& orig);
00191 
00193         GZ_DIST_EXPORT virtual ~gzDistError();
00194         
00196         GZ_DIST_EXPORT gzDistError& operator=(const gzDistError& rhs);
00197  
00199 
00201         GZ_DIST_EXPORT gzVoid setError(const gzDistErrorCode& code, const gzDistErrorLevel& level);
00202 
00204 
00207         GZ_DIST_EXPORT gzVoid setError(const gzDistErrorCode& code, const gzDistErrorLevel& level, const gzString& additional);
00208         
00210         GZ_DIST_EXPORT gzVoid resetError();
00211 
00213         GZ_DIST_EXPORT gzBool hasError() const;
00214         
00216 
00217         GZ_DIST_EXPORT operator gzBool() const;
00218 
00220         GZ_DIST_EXPORT gzDistErrorCode getErrorCode() const;
00221 
00223         GZ_DIST_EXPORT gzDistErrorLevel getErrorLevel() const;
00224 
00226         GZ_DIST_EXPORT gzBool operator==(const gzDistErrorCode& rhsCode) const;
00227         
00229         GZ_DIST_EXPORT gzBool operator!=(const gzDistErrorCode& rhsCode) const;
00230 
00232         GZ_DIST_EXPORT const gzString& getErrorString() const;
00233         
00235         GZ_DIST_EXPORT gzString getAdditionalString() const;
00236 
00238         GZ_DIST_EXPORT gzBool hasAdditionalString() const;
00239         
00241         GZ_DIST_EXPORT gzVoid reportError() const;
00242         
00243     private:
00244 
00245         // The error code
00246         gzDistErrorCode m_code : 16;
00247 
00248         // The error level
00249         gzDistErrorLevel m_level : 16;
00250         
00251         // Additional information string
00252         gzString* m_additional;
00253 };
00254 
00255 
00257 const gzDistError GZ_DIST_OK(GZ_DIST_NO_ERROR, GZ_DIST_ERROR_NOTICE);
00258 
00259 
00260 //---------------------------- Global functions -------------------------------
00261 
00263 
00264 GZ_DIST_EXPORT gzVoid gzDistReportLastError(gzBool clear = FALSE);
00265 
00266 
00268 
00269 GZ_DIST_EXPORT gzDistError gzDistGetLastError(gzBool clear = FALSE);
00270 
00271 
00273 
00276 GZ_DIST_EXPORT gzVoid gzDistSetLastError(const gzDistErrorCode& code, const gzDistErrorLevel& level);
00277 
00278 
00280 
00284 GZ_DIST_EXPORT gzVoid gzDistSetLastError(const gzDistErrorCode& code, const gzDistErrorLevel& level, const gzString& additional);
00285 
00286 
00288 
00290 GZ_DIST_EXPORT gzVoid gzDistSetLastError(const gzDistError& error);
00291 
00292 
00294 GZ_DIST_EXPORT gzVoid gzDistClearLastError();
00295 
00296 
00298 
00299 GZ_DIST_EXPORT gzVoid gzDistClearAllErrors();
00300 
00301 
00302 #endif //__GZ_DIST_ERROR_H__

Documentation for GizmoDistribution generated at Wed Feb 20 11:59:21 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond