00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #if !defined(_IHEADERBLOCK_H____OF_AXIS_INCLUDED_)
00019 #define _IHEADERBLOCK_H____OF_AXIS_INCLUDED_
00020
00021 #include <axis/BasicNode.hpp>
00022 #include <axis/SoapEnvVersions.hpp>
00023 #include <axis/IAttribute.hpp>
00024 #include <axis/INamespace.hpp>
00025
00026 AXIS_CPP_NAMESPACE_START
00027
00028 typedef enum
00029 { ROLE_NEXT=1, ROLE_NONE=2,
00030 ROLE_ULTIMATE_RECEIVER=3,
00031 ACTOR=4, MUST_UNDERSTAND_TRUE= 5,
00032 MUST_UNDERSTAND_FALSE=6
00033 } HEADER_BLOCK_STD_ATTR_TYPE;
00034
00035
00047 class IHeaderBlock
00048 {
00049 public:
00057
00058
00059
00060
00061
00070 virtual INamespace* createNamespaceDecl(const AxisChar *prefix,
00071 const AxisChar *uri)=0;
00072
00073 virtual BasicNode* getFirstChild() =0;
00079 virtual int getNoOfChildren() =0;
00080
00108 virtual BasicNode* createChild(NODE_TYPE eNODE_TYPE,
00109 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri,
00110 AxisChar* pachValue) = 0;
00111
00133 virtual BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE,
00134 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri,
00135 AxisChar* pachValue) = 0;
00136
00169 virtual IAttribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE
00170 eStdAttrType, SOAP_VERSION eSOAP_VERSION) =0;
00171
00185 virtual IAttribute* createAttribute(const AxisChar* localname,
00186 const AxisChar* prefix,
00187 const AxisChar* uri, const AxisChar* value) = 0;
00188
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 virtual const AxisChar* getAttributeUri( const AxisChar * localname,
00215 const AxisChar* prefix) = 0;
00216
00229 virtual BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE) = 0;
00230
00245 virtual BasicNode* createChild(NODE_TYPE eNODE_TYPE)=0;
00246
00254 virtual BasicNode* getLastChild() = 0;
00255
00264 virtual BasicNode* getChild(int iChildPosition) = 0;
00265
00273 virtual int addChild(BasicNode* pBasicNode)=0;
00274
00281 virtual int setLocalName(const AxisChar* localname)=0;
00282
00287 virtual const AxisChar * getLocalName()=0;
00288
00297 virtual int setURI(const AxisChar* uri)=0;
00298
00299
00300
00301
00302
00303
00304
00305
00306
00313 virtual int setPrefix(const AxisChar* prefix)=0;
00314
00315 #ifdef UNIT_TESTING_ON
00316
00319 virtual int initializeForTesting() = 0;
00320 #endif
00321
00322 IHeaderBlock(){};
00323
00324 IHeaderBlock(const IHeaderBlock& rCopy){};
00325
00331 virtual IHeaderBlock* clone() = 0;
00332
00336 virtual ~IHeaderBlock() {};
00337 };
00338
00339 AXIS_CPP_NAMESPACE_END
00340
00341 #endif
00342