00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #if !defined(_IHEADERBLOCK_H____OF_AXIS_INCLUDED_)
00018 #define _IHEADERBLOCK_H____OF_AXIS_INCLUDED_
00019
00020 #include "BasicNode.hpp"
00021 #include "SoapEnvVersions.hpp"
00022 #include <axis/IAttribute.hpp>
00023
00024 enum HEADER_BLOCK_STD_ATTR_TYPE
00025 { ROLE_NEXT=1, ROLE_NONE=2,
00026 ROLE_ULTIMATE_RECEIVER=3,
00027 ACTOR=4, MUST_UNDERSTAND_TRUE= 5,
00028 MUST_UNDERSTAND_FALSE=6
00029 };
00030
00031
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 AXIS_CPP_NAMESPACE_START
00058
00059 class IHeaderBlock
00060 {
00061 public:
00069 virtual int addNamespaceDecl(IAttribute *pAttribute)=0;
00070
00079 virtual IAttribute* createNamespaceDecl(const AxisChar *prefix,
00080 const AxisChar *uri)=0;
00081
00082 virtual const BasicNode* getFirstChild() =0;
00088 virtual int getNoOfChildren() =0;
00089
00117 virtual BasicNode* createChild(NODE_TYPE eNODE_TYPE,
00118 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri,
00119 AxisChar* pachValue) = 0;
00120
00142 virtual BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE,
00143 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri,
00144 AxisChar* pachValue) = 0;
00145
00175 virtual IAttribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE
00176 eStdAttrType, SOAP_VERSION eSOAP_VERSION) =0;
00177
00188 virtual IAttribute* createAttribute(const AxisChar* localname,
00189 const AxisChar* prefix,
00190 const AxisChar* uri, const AxisChar* value) = 0;
00191
00201 virtual IAttribute* createAttribute(const AxisChar *localname,
00202 const AxisChar *prefix, const AxisChar *value) = 0;
00211 virtual const AxisChar* getAttributeValue(const AxisChar* localname,
00212 const AxisChar* prefix) = 0;
00213
00214
00227 virtual BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE) = 0;
00228
00243 virtual BasicNode* createChild(NODE_TYPE eNODE_TYPE)=0;
00244
00252 virtual const BasicNode* getLastChild() = 0;
00253
00262 virtual const BasicNode* getChild(int iChildPosition) = 0;
00263
00270 virtual int addChild(BasicNode* pBasicNode)=0;
00271
00277 virtual void setLocalName(const AxisChar* localname)=0;
00278
00283 virtual const AxisChar * getLocalName()=0;
00284
00291 virtual void setUri(const AxisChar* uri)=0;
00292
00293
00294
00295
00296
00297
00298
00299
00300
00306 virtual void setPrefix(const AxisChar* prefix)=0;
00307
00308 #ifdef UNIT_TESTING_ON
00309
00312 virtual int initializeForTesting() = 0;
00313 #endif
00314
00315 IHeaderBlock(){};
00316
00317 IHeaderBlock(const IHeaderBlock& rCopy){};
00318
00324 virtual IHeaderBlock* clone() = 0;
00325
00329 virtual ~IHeaderBlock() {};
00330 };
00331
00332 AXIS_CPP_NAMESPACE_END
00333
00334 #endif
00335