136 lines
3.2 KiB
C++
136 lines
3.2 KiB
C++
//----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) 2007 Intel Corporation
|
|
//
|
|
// File: Exception.h
|
|
//
|
|
// Contents: General WS-Management 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
|
|
// 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
|