H:/gfcppsancout/product/include/gfcpp/ErrorCodes.hpp

Go to the documentation of this file.
00001 #ifndef __GEMFIRE_ERRORCODES_H__
00002 #define __GEMFIRE_ERRORCODES_H__
00003 /*=========================================================================
00004  * (c) Copyright 2002-2007, GemStone Systems, Inc. All Rights Reserved.
00005  * 1260 NW Waterhouse Ave., Suite 200,  Beaverton, OR 97006
00006  *
00007  * The specification of function behaviors is found in the corresponding .cpp file.
00008  *
00009  *========================================================================
00010  */
00011 
00012 
00017 #include "gfcpp_globals.hpp"
00018 
00019 namespace gemfire {
00020 
00021 /*
00022  *
00023  *ErrorCodes from down below
00024  *
00025  */
00026 class CPPCACHE_EXPORT ErrorCodes {
00027      // public static methods
00028  public:
00032     typedef enum {
00033       IllegalArgument= 0,
00034       IllegalState,
00035       CacheExists,
00036       CacheXml,
00037       CacheWriter,
00038       RegionExists,
00039       CacheClosed,
00040       LeaseExpired,
00041       CacheLoader,
00042       RegionDestroyed,
00043       EntryDestroyed,
00044       NoSystem,
00045       AlreadyConnected,
00046       FileNotFound,
00047       License,
00048       Interrupted,
00049       UnsupportedOperation,
00050       StatisticsDisabled,
00051       ConcurrentModification,
00052       ClassCast,
00053       EntryNotFound,
00054       GemfireIO,
00055       GemfireConfig,
00056       NullPointer,
00057       EntryExists,
00058       NotFound,
00059       NotConnected,
00060       CacheProxy,
00061       OutOfMemory,
00062       NotOwner,
00063       WrongRegionScope,
00064       BufferSizeExceeded,
00065       ValueInvalid,
00066       Timeout,
00067       Unknown,
00068       Success
00069        } Codes;
00070    ErrorCodes();
00071    ~ErrorCodes();
00072 
00073 static inline ErrorCodes::Codes GfErrTypeToErrorCodes(GfErrType err)
00074     {
00075        switch(err)
00076        {
00077          case GF_CACHE_ILLEGAL_ARGUMENT_EXCEPTION:
00078             return ErrorCodes::IllegalArgument;
00079          case GF_CACHE_ILLEGAL_STATE_EXCEPTION:
00080             return ErrorCodes::IllegalState;
00081          case GF_CACHE_TIMEOUT_EXCEPTION:
00082             return ErrorCodes::Timeout;
00083          case GF_CACHE_WRITER_EXCEPTION:
00084             return ErrorCodes::CacheWriter;
00085          case GF_CACHE_REGION_EXISTS_EXCEPTION:
00086             return ErrorCodes::RegionExists;
00087          case GF_CACHE_CLOSED_EXCEPTION:
00088             return ErrorCodes::CacheClosed;
00089          case GF_CACHE_LEASE_EXPIRED_EXCEPTION:
00090             return ErrorCodes::LeaseExpired;
00091          case GF_CACHE_LOADER_EXCEPTION:
00092             return ErrorCodes::CacheLoader;
00093          case GF_CACHE_REGION_DESTROYED_EXCEPTION:
00094             return ErrorCodes::RegionDestroyed;
00095          case GF_CACHE_ENTRY_DESTROYED_EXCEPTION:
00096             return ErrorCodes::EntryDestroyed;
00097          case GF_NOTSUP:
00098             return ErrorCodes::UnsupportedOperation;
00099          case GF_CACHE_STATISTICS_DISABLED_EXCEPTION:
00100             return ErrorCodes::StatisticsDisabled;
00101          case GF_CACHE_CONCURRENT_MODIFICATION_EXCEPTION:
00102             return ErrorCodes::ConcurrentModification;
00103          case GF_CACHE_ENTRY_NOT_FOUND:
00104             return ErrorCodes::EntryNotFound;
00105          case GF_ERANGE:
00106             return ErrorCodes::BufferSizeExceeded;
00107          case GF_EINVAL:
00108             return ErrorCodes::ValueInvalid;
00109          case GF_NOERR:
00110             return ErrorCodes::Success;
00111          case GF_ENTRYEXISTS_EXCEPTION:
00112             return ErrorCodes::EntryExists;
00113          default:
00114             return ErrorCodes::Unknown;
00115       }
00116    }
00117    static inline GfErrType ErrorCodesToGfErrType(ErrorCodes::Codes c)
00118     {
00119        switch(c)
00120        {
00121          case ErrorCodes::IllegalArgument:
00122             return GF_CACHE_ILLEGAL_ARGUMENT_EXCEPTION;
00123          case  ErrorCodes::IllegalState:
00124             return GF_CACHE_ILLEGAL_STATE_EXCEPTION;
00125          case ErrorCodes::Timeout:
00126             return GF_CACHE_TIMEOUT_EXCEPTION;
00127          case ErrorCodes::CacheWriter:
00128             return GF_CACHE_WRITER_EXCEPTION;
00129          case ErrorCodes::RegionExists:
00130             return GF_CACHE_REGION_EXISTS_EXCEPTION;
00131          case ErrorCodes::CacheClosed:
00132             return  GF_CACHE_CLOSED_EXCEPTION;
00133          case ErrorCodes::LeaseExpired:
00134             return GF_CACHE_LEASE_EXPIRED_EXCEPTION;
00135          case ErrorCodes::CacheLoader:
00136             return GF_CACHE_LOADER_EXCEPTION;
00137          case ErrorCodes::RegionDestroyed:
00138             return  GF_CACHE_REGION_DESTROYED_EXCEPTION;
00139          case ErrorCodes::EntryDestroyed:
00140             return GF_CACHE_ENTRY_DESTROYED_EXCEPTION;
00141          case ErrorCodes::UnsupportedOperation:
00142             return GF_NOTSUP;
00143          case ErrorCodes::StatisticsDisabled:
00144             return GF_CACHE_STATISTICS_DISABLED_EXCEPTION;
00145          case ErrorCodes::ConcurrentModification:
00146             return GF_CACHE_CONCURRENT_MODIFICATION_EXCEPTION;
00147          case ErrorCodes::EntryNotFound:
00148             return GF_CACHE_ENTRY_NOT_FOUND;
00149          case ErrorCodes::BufferSizeExceeded:
00150             return GF_ERANGE;
00151          case ErrorCodes::ValueInvalid:
00152             return GF_EINVAL;
00153          case ErrorCodes::Success:
00154             return GF_NOERR;
00155          case ErrorCodes::EntryExists:
00156             return GF_ENTRYEXISTS_EXCEPTION;
00157 
00158          default:
00159             return GF_NOERR;
00160        }
00161      }
00162 private:
00163    GfErrorInfo m_errStruct;
00164 }; //ErrorCodes
00165 
00166 };// namespace gemfire
00167 
00168 #endif //ifndef __GEMFIRE_ERRORCODES_H__

GemFire C++ Cache API Documentation