| //---------------------------------------------------------------------------- |
| // |
| // Copyright (C) Intel Corporation, 2007. |
| // |
| // File: Exception.h |
| // |
| // Contents: General Wsman Exception definition |
| // |
| //---------------------------------------------------------------------------- |
| |
| #ifndef __WSMAN_EXCEPTION_H |
| #define __WSMAN_EXCEPTION_H |
| |
| #include <string> |
| #include <stdexcept> |
| |
| 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 |
| // a 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 |
| // resource not found |
| #define WSMAN_RESOURCE_NOT_FOUND 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 = "Conversion type 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; |
| } |
| return res; |
| } |
| |
| }; |
| } |
| #endif |