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 // (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 */ 00017 00018 #if !defined(_IHEADERBLOCK_H____OF_AXIS_INCLUDED_) 00019 #define _IHEADERBLOCK_H____OF_AXIS_INCLUDED_ 00020 00021 #include "BasicNode.hpp" 00022 #include "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 /* TO DO: We need to remove this completely 00058 * 00059 virtual int addNamespaceDecl(INamespace *pAttribute)=0; 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 * Commented by Susantha - 21/06/2004 00301 * The prefix should be decided by the Serializer at runtime 00302 * 00303 * Uncommented by Mark Whitlock - 24/8/04 after discussion 00304 * on the mailing list agreed to add back in this method. 00305 * Jira issue AXISCPP-135 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(){/*empty body as there are no member variable*/}; 00323 00324 IHeaderBlock(const IHeaderBlock& rCopy){/*empty body as there are no member variable*/}; 00325 00331 virtual IHeaderBlock* clone() = 0; 00332 00336 virtual ~IHeaderBlock() {}; 00337 }; 00338 00339 AXIS_CPP_NAMESPACE_END 00340 00341 #endif 00342

Generated on Sat Apr 9 15:11:57 2005 for AxisC++ by doxygen 1.3.8