00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #if !defined(_WSDDSERVICE_H__OF_AXIS_INCLUDED_)
00018 #define _WSDDSERVICE_H__OF_AXIS_INCLUDED_
00019
00020 #include "WSDDHandler.h"
00021 #include "WSDDDefines.h"
00022
00023 #include <string>
00024 #include <map>
00025
00026 using namespace std;
00032 class WSDDService : public WSDDHandler
00033 {
00034 public:
00035 const list<AxisString> getAllowedMethods() const;
00036 void setProvider(const AxisChar* sProvider);
00037 PROVIDERTYPE getProvider() const;
00038 const AxisChar* getServiceName() const;
00039 bool isAllowedMethod(const AxisChar* sMethodName) const;
00040 void addAllowedMethod(const AxisChar* sMethodName);
00041 const WSDDHandlerList* getResponseFlowHandlers() const;
00042 void addHandler(bool bRequestFlow, WSDDHandler* pHandler);
00043 int removeHandler(bool bRequestFlow, WSDDHandler* pHandler);
00044 const WSDDHandlerList* getRequestFlowHandlers() const;
00045 void addAllowedRole(const AxisChar* sRole);
00046 const list<AxisString>& getAllowedRoles();
00047 WSDDService();
00048 virtual ~WSDDService();
00049 int updateWSDD(FILE* wsddfile, int tabcount);
00050 private:
00051 const char* getProviderString();
00052 private:
00053 PROVIDERTYPE m_Provider;
00054 list<AxisString> m_AllowedMethods;
00055 WSDDHandlerList* m_RequestHandlers;
00056 WSDDHandlerList* m_ResponseHandlers;
00057 list<AxisString> m_AllowedRoles;
00058 };
00059
00060 typedef map<AxisString, WSDDService*> WSDDServiceMap;
00061
00062 #endif
00063