00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #if !defined(_HEADERBLOCK_H____OF_AXIS_INCLUDED_)
00019 #define _HEADERBLOCK_H____OF_AXIS_INCLUDED_
00020
00021 #include "Attribute.h"
00022 #include <string>
00023 #include <list>
00024
00025 using namespace std;
00026
00027 class BasicNode;
00028 #include "IHeaderBlock.h"
00029 #include "SoapEnvVersions.h"
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 class HeaderBlock : public IHeaderBlock
00074 {
00075 friend class SoapHeader;
00076
00077 private:
00081 int iNoOFChildren;
00082
00086 int serializeNamespaceDecl(SoapSerializer& pSZ);
00087
00088 int serializeChildren(SoapSerializer& pSZ,
00089 list<AxisChar*>& lstTmpNameSpaceStack);
00090
00094 list<BasicNode*> m_children;
00095
00096 bool isSerializable();
00097
00098 int attrSerialize(SoapSerializer& pSZ,
00099 list<AxisChar*>& lstTmpNameSpaceStack);
00100
00101 AxisString m_localname;
00102 AxisString m_prefix;
00103 AxisString m_uri;
00104 list<Attribute*> m_attributes;
00105 list<Attribute*> m_namespaceDecls;
00106
00107 public:
00108 const BasicNode* getFirstChild();
00109
00115 int getNoOfChildren();
00116
00144 BasicNode* createChild(NODE_TYPE eNODE_TYPE,
00145 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri,
00146 AxisChar* pachValue);
00147
00148 #ifdef UNIT_TESTING_ON
00149 int initializeForTesting();
00150 #endif
00151
00172 BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE,
00173 AxisChar *pachLocalName, AxisChar *pachPrefix, AxisChar *pachUri,
00174 AxisChar* pachValue);
00175
00181 void addAttribute(Attribute* attr);
00182
00212 Attribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE eStdAttrType,
00213 SOAP_VERSION eSOAP_VERSION);
00214
00225 Attribute* createAttribute(const AxisChar* localname,
00226 const AxisChar* prefix, const AxisChar* uri, const AxisChar* value);
00227
00237 Attribute* createAttribute(const AxisChar* localname,
00238 const AxisChar* prefix, const AxisChar* value);
00239
00252 BasicNode* createImmediateChild(NODE_TYPE eNODE_TYPE);
00253
00268 BasicNode* createChild(NODE_TYPE eNODE_TYPE);
00269
00277 const BasicNode* getLastChild();
00278
00288 const BasicNode* getChild(int iChildPosition);
00289
00296 int addChild(BasicNode* pBasicNode);
00297
00303 void setLocalName(const AxisChar* localname);
00304
00310 void setUri(const AxisChar* uri);
00311
00317 void setPrefix(const AxisChar* prefix);
00318
00326 int addNamespaceDecl(Attribute *pAttribute);
00327
00335 HeaderBlock(const AxisChar* pachLocalName, const AxisChar* pachPrefix,
00336 const AxisChar* pachUri);
00337
00341 HeaderBlock();
00342
00348 HeaderBlock(const HeaderBlock& rCopy);
00349
00355 IHeaderBlock* clone();
00356
00360 virtual ~HeaderBlock();
00361
00362 bool operator ==( const HeaderBlock &objHeaderBlock);
00363
00364 int serialize(SoapSerializer& pSZ);
00365
00369 int initializeForTesting();
00370
00371 };
00372
00373 #endif
00374