//---------------------------------------------------------------------------- // // Copyright (C) 2007 Intel Corporation // // File: Exception.h // // Contents: General WS-Management Exception definition // //---------------------------------------------------------------------------- #ifndef __WSMAN_EXCEPTION_H #define __WSMAN_EXCEPTION_H #include #include using namespace std; // Error Codes #define WSMAN_SUCCESS 0 // A general error occurred #define WSMAN_GENERAL_ERROR 1 // A transport level error occurred #define WSMAN_TRANSPORT_ERROR 2 // An HTTP error occurred #define WSMAN_HTTP_ERROR 3 // The WS-MAN server returned a soap fault #define WSMAN_SOAP_FAULT 4 // A string to type or type to string error occurred #define WSMAN_TYPE_CONVERSION_ERROR 5 // Failed to parse or write an XML string #define WSMAN_XML_ERROR 6 // Input information is missing #define WSMAN_MISSING_INPUT 7 // An unexpected response was received #define WSMAN_RESPONSE_UNKNOWN 8 // Error resulting from MustUnderstand attribute #define WSMAN_MUST_UNDERSTAND 9 // The soap message is invalid or of invalid version #define WSMAN_SOAP_MESSAGE_INVALID 10 // The Soap header is too long #define WSMAN_SOAP_HDR_OVERFLOW 11 // An UDP error occurred #define WSMAN_UDP_ERROR 12 // A TCP error occurred #define WSMAN_TCP_ERROR 13 // Failed to connect to server #define WSMAN_CONNECT_ERROR 14 // An SSL error occurred #define WSMAN_SSL_ERROR 15 namespace WsmanExceptionNamespace { class GeneralWsmanException : public exception { private: string _what; unsigned int error; public: GeneralWsmanException(const char* what, unsigned int err = WSMAN_GENERAL_ERROR) :_what(what), error(err){} virtual ~GeneralWsmanException() throw (){} virtual string getDetail() { return _what; } virtual const char *what() const throw() { return _what.c_str(); }; virtual unsigned int getErr() const throw() { return error; } string getStrErr() { string res = "Unknown error"; switch(error) { case WSMAN_SUCCESS: res = "Operation succeeded"; break; case WSMAN_GENERAL_ERROR: res = "General error occurred"; break; case WSMAN_TRANSPORT_ERROR: res = "Transport error occurred"; break; case WSMAN_HTTP_ERROR: res = "HTTP error occurred"; break; case WSMAN_SOAP_FAULT: res = "SOAP error occurred"; break; case WSMAN_TYPE_CONVERSION_ERROR: res = "Type conversion error occurred"; break; case WSMAN_XML_ERROR: res = "XML error occurred"; break; case WSMAN_MISSING_INPUT: res = "Missing input error occurred"; break; case WSMAN_RESPONSE_UNKNOWN: res = "Response unknown"; break; case WSMAN_MUST_UNDERSTAND: res = "Must understand error"; break; case WSMAN_SOAP_MESSAGE_INVALID: res = "SOAP message invalid"; break; case WSMAN_SOAP_HDR_OVERFLOW: res = "Overflow soap header"; break; case WSMAN_UDP_ERROR: res = "UDP error occurred"; break; case WSMAN_TCP_ERROR: res = "TCP error occurred"; break; case WSMAN_CONNECT_ERROR: res = "Connection error occurred"; break; case WSMAN_SSL_ERROR: res = "SSL error occurred"; break; } return res; } }; } #endif