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_sPrefix;
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
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00329 int addNamespaceDecl(Attribute *pAttribute);
00330
00338 HeaderBlock(const AxisChar* pachLocalName, const AxisChar* pachUri);
00339
00343 HeaderBlock();
00344
00350 HeaderBlock(const HeaderBlock& rCopy);
00351
00357 IHeaderBlock* clone();
00358
00362 virtual ~HeaderBlock();
00363
00364 bool operator ==( const HeaderBlock &objHeaderBlock);
00365
00366 int serialize(SoapSerializer& pSZ);
00367
00371 int initializeForTesting();
00372
00373 };
00374
00375 #endif
00376