00001
#ifndef XSOAP12_PROXY_H
00002
#define XSOAP12_PROXY_H
00003
00004
#include <map>
00005
#include <ostream>
00006
00007
#include <msl/Sptr.h>
00008
#include <msl/Mutex.h>
00009
00010
#include <wsit/ArgList.h>
00011
#include <wsit/Result.h>
00012
00013
#include <proteus/Invocation.h>
00014
#include <proteus/VobjectFactory.h>
00015
00016
#include "XSoap12Serializer.hpp"
00017
#include "XSoap12Deserializer.hpp"
00018
00019
namespace xsoap {
00020
00022
00029 class XSoap12Proxy {
00030
00031
public:
00032
00033
XSoap12Proxy() {}
00034
public:
00035
00036
typedef std::map<std::string, proteus::VobjectFactory *> vf_map;
00037
00038
public:
00039
00041
00049
void registerVobj(
const std::string& type,
00050 proteus::VobjectFactory *f);
00051
private:
00052
00053
XSoap12Proxy(
const XSoap12Proxy &);
00054
XSoap12Proxy &operator=(
const XSoap12Proxy&);
00055
00056
protected:
00057
00058
void packArgList(
const wsit::ArgList_sptr &args,
00059
XSoap12Serializer& packer);
00060 wsit::ArgList_sptr unpackArgList(
XSoap12Deserializer& unpaker);
00061
00062
00063
private:
00064
00065 vf_map m_vobjectFactories;
00066
mutable msl::Mutex m_lock;
00067
00068 };
00069
00070 }
00071
#endif
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083