00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #if !defined(_SOAPHEADER_H____OF_AXIS_INCLUDED_)
00018 #define _SOAPHEADER_H____OF_AXIS_INCLUDED_
00019
00020 #include "HeaderBlock.h"
00021 #include "SoapEnvVersions.h"
00022 #include "ISoapHeader.h"
00023
00045
00046
00047
00048
00049
00050 typedef enum
00051 {
00052 HEADER_LEVEL=0, HEADER_BLOCK_LEVEL, HEADER_BLOCK_INSIDE_LEVEL
00053 } HEADER_LEVELS;
00054
00055 class SoapHeader : public ISoapHeader
00056 {
00057 private:
00058 int serializeNamespaceDecl(SoapSerializer& pSZ);
00059
00060 int serializeAttributes(SoapSerializer& pSZ);
00061
00062 list<Attribute*> m_attributes;
00063 list<Attribute*> m_namespaceDecls;
00064 list<HeaderBlock*> m_headerBlocks;
00065
00066 const char* m_pcPrefix;
00067 public:
00078 IHeaderBlock* getHeaderBlock(const AxisChar* pName,
00079 const AxisChar* pNamespace, bool bRemoveOrNot);
00080
00086 int setPrefix(const char* pcPrefix);
00087
00093 IHeaderBlock* getHeaderBlock(bool bRemoveOrNot);
00094
00102 int addNamespaceDecl(Attribute* pAttribute);
00103
00109 int addAttribute(Attribute* pAttribute);
00110
00111 int serialize(SoapSerializer& pSZ, SOAP_VERSION eSoapVersion);
00112
00118 void addHeaderBlock(HeaderBlock* headerBlock);
00119
00123 SoapHeader();
00124
00128 virtual ~SoapHeader();
00129
00130 };
00131
00132 #endif
00133