Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages | Examples

IHeaderBlock.hpp

00001 /* 00002 * Copyright 2003-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 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 #include <axis/INamespace.hpp> 00024 00025 AXIS_CPP_NAMESPACE_START 00026 00027 typedef enum 00028 { ROLE_NEXT=1, ROLE_NONE=2, 00029 ROLE_ULTIMATE_RECEIVER=3, 00030 ACTOR=4, MUST_UNDERSTAND_TRUE= 5, 00031 MUST_UNDERSTAND_FALSE=6 00032 } HEADER_BLOCK_STD_ATTR_TYPE; 00033 00034 00046 class IHeaderBlock 00047 { 00048 public: 00056 /* TO DO: We need to remove this completely 00057 * 00058 virtual int addNamespaceDecl(INamespace *pAttribute)=0; 00059 */ 00060 00069 virtual INamespace* createNamespaceDecl(const AxisChar *prefix, 00070 const AxisChar *uri)=0; 00071 00072 virtual BasicNode* getFirstChild() =0; 00078 virtual int getNoOfChildren() =0; 00079 00107 virtual BasicNode* createChild(NODE_TYPE eNODE_TYPE, 00108 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri, 00109 AxisChar* pachValue) = 0; 00110 00132 virtual BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE, 00133 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri, 00134 AxisChar* pachValue) = 0; 00135 00165 virtual IAttribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE 00166 eStdAttrType, SOAP_VERSION eSOAP_VERSION) =0; 00167 00178 virtual IAttribute* createAttribute(const AxisChar* localname, 00179 const AxisChar* prefix, 00180 const AxisChar* uri, const AxisChar* value) = 0; 00181 00191 virtual IAttribute* createAttribute(const AxisChar *localname, 00192 const AxisChar *prefix, const AxisChar *value) = 0; 00201 virtual const AxisChar* getAttributeValue(const AxisChar* localname, 00202 const AxisChar* prefix) = 0; 00203 00204 00217 virtual BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE) = 0; 00218 00233 virtual BasicNode* createChild(NODE_TYPE eNODE_TYPE)=0; 00234 00242 virtual BasicNode* getLastChild() = 0; 00243 00252 virtual BasicNode* getChild(int iChildPosition) = 0; 00253 00260 virtual int addChild(BasicNode* pBasicNode)=0; 00261 00267 virtual void setLocalName(const AxisChar* localname)=0; 00268 00273 virtual const AxisChar * getLocalName()=0; 00274 00281 virtual void setUri(const AxisChar* uri)=0; 00282 00283 /* 00284 * Commented by Susantha - 21/06/2004 00285 * The prefix should be decided by the Serializer at runtime 00286 * 00287 * Uncommented by Mark Whitlock - 24/8/04 after discussion 00288 * on the mailing list agreed to add back in this method. 00289 * Jira issue AXISCPP-135 00290 */ 00296 virtual void setPrefix(const AxisChar* prefix)=0; 00297 00298 #ifdef UNIT_TESTING_ON 00299 00302 virtual int initializeForTesting() = 0; 00303 #endif 00304 00305 IHeaderBlock(){/*empty body as there are no member variable*/}; 00306 00307 IHeaderBlock(const IHeaderBlock& rCopy){/*empty body as there are no member variable*/}; 00308 00314 virtual IHeaderBlock* clone() = 0; 00315 00319 virtual ~IHeaderBlock() {}; 00320 }; 00321 00322 AXIS_CPP_NAMESPACE_END 00323 00324 #endif 00325

Generated on Tue Feb 8 14:34:17 2005 for AxisC++ by doxygen 1.3.8