00001
#ifndef XSOAP12FAULT_EXCEPTION_H
00002
#define XSOAP12FAULT_EXCEPTION_H
00003
00004
00005
#include <string>
00006
00007
#include <proteus/QualifiedName.h>
00008
#include <wsit/Vobject.h>
00009
#include <wsit/Serializer.h>
00010
#include <wsit/Deserializer.h>
00011
00012
namespace xsoap {
00014 class XSoap12RPCFault :
public wsit::Vobject
00015 {
00016
public:
00017
XSoap12RPCFault(std::string value,
00018 std::string subCode =
"",
00019 std::string reason =
"")
00020 : m_code(value,subCode),
00021 m_reason(reason){}
00022
00023
00024
XSoap12RPCFault(wsit::Deserializer *deser);
00025
00026 ~
XSoap12RPCFault(
void) {}
00027
00028
const proteus::QualifiedName& typeName()
const {
00029
static proteus::QualifiedName qn(
"");
00030
return qn;
00031 }
00032
00033
void serialize(
const proteus::QualifiedName &n,
00034 wsit::Serializer *)
const;
00035
00036 std::string value()
const {
00037
return m_code.m_value;
00038 }
00039
00040 std::string what()
const {
00041
return m_code.m_value +
":" + m_code.m_subcode +
"=" + m_reason.m_reason;
00042 }
00043
private:
00044
00045
class Code :
public wsit::Vobject {
00046
public:
00047
explicit Code(std::string value,
00048 std::string subCode)
00049 : m_value(value), m_subcode(subCode) {}
00050
explicit Code(wsit::Deserializer *deser);
00051
void serialize(
const proteus::QualifiedName &n,
00052 wsit::Serializer *)
const;
00053
00054
const proteus::QualifiedName& typeName()
const {
00055
static proteus::QualifiedName qn(
"");
00056
return qn;
00057 }
00058
00059 std::string m_value;
00060 std::string m_subcode;
00061 };
00062
00063
class Reason :
public wsit::Vobject {
00064
public:
00065
explicit Reason(std::string reason)
00066 : m_reason(reason) {}
00067
explicit Reason(wsit::Deserializer *deser);
00068
void serialize(
const proteus::QualifiedName &n,
00069 wsit::Serializer *)
const;
00070
00071
const proteus::QualifiedName& typeName()
const {
00072
static proteus::QualifiedName qn(
"");
00073
return qn;
00074 }
00075
00076 std::string m_reason;
00077 };
00078
00079 Code m_code;
00080 Reason m_reason;
00081 };
00082
00083 }
00084
#endif