|
Mixe for Privacy and Anonymity in the Internet
|
00001 #ifndef __CAXMLCOSTCONFIRMATION__ 00002 #define __CAXMLCOSTCONFIRMATION__ 00003 #ifdef PAYMENT 00004 #include "xml/DOM_Output.hpp" 00005 #include "CAPriceInfo.hpp" 00006 00012 class CAXMLCostConfirmation 00013 { 00014 00015 private: 00016 SINT32 setValues(); 00017 CAXMLCostConfirmation(); 00018 00019 UINT64 m_lTransferredBytes; 00020 UINT64 m_lAccountNumber; 00021 UINT32 m_id; //id of the CC, only set after storing it in the BI's database 00022 CAPriceInfo** m_priceCerts; 00023 UINT32 m_priceCertsLen; 00024 UINT8* m_pStrPIID; 00025 XERCES_CPP_NAMESPACE::DOMDocument* m_domDocument; 00026 static const char* const ms_pStrElemName; 00027 00028 SINT32 checkLen(UINT32 a_hashNumber) 00029 { 00030 if (a_hashNumber < 0 || a_hashNumber > m_priceCertsLen - 1) 00031 { 00032 return E_UNKNOWN; 00033 } 00034 return E_SUCCESS; 00035 } 00036 00037 public: 00042 static CAXMLCostConfirmation* getInstance(UINT8 * strXmlData,UINT32 strXMlDataLen); 00047 static CAXMLCostConfirmation* getInstance(DOMElement* elemRoot); 00048 ~CAXMLCostConfirmation(); 00049 00050 UINT32 getNumberOfHashes() 00051 { 00052 return m_priceCertsLen; 00053 } 00054 00055 SINT32 getPosition(UINT32 a_hashNumber) 00056 { 00057 if (checkLen(a_hashNumber) != E_SUCCESS) 00058 { 00059 return E_UNKNOWN; 00060 } 00061 00062 return m_priceCerts[a_hashNumber]->getPosition(); 00063 } 00064 00065 UINT8* getPriceCertHash(UINT32 a_hashNumber) 00066 { 00067 if (checkLen(a_hashNumber) != E_SUCCESS) 00068 { 00069 return NULL; 00070 } 00071 return m_priceCerts[a_hashNumber]->getPriceCertHash(); 00072 } 00073 00074 UINT8* getMixId(UINT32 a_hashNumber) 00075 { 00076 if (checkLen(a_hashNumber) != E_SUCCESS) 00077 { 00078 return NULL; 00079 } 00080 return m_priceCerts[a_hashNumber]->getMixId(); 00081 } 00082 00084 UINT8* dumpToMem(UINT32* pLen) 00085 { 00086 if(m_domDocument==NULL) 00087 return NULL; 00088 return DOM_Output::dumpToMem(m_domDocument,pLen); 00089 } 00090 00092 SINT32 toXMLString(UINT8* buff,UINT32* bufflen) 00093 { 00094 if(DOM_Output::dumpToMem(m_domDocument,buff,bufflen)!=E_SUCCESS) 00095 return E_UNKNOWN; 00096 buff[*bufflen]=0; 00097 return E_SUCCESS; 00098 } 00099 00100 UINT64 getTransferredBytes() 00101 { 00102 return m_lTransferredBytes; 00103 } 00104 00105 UINT64 getAccountNumber() 00106 { 00107 return m_lAccountNumber; 00108 } 00109 00110 00111 UINT32 getID() 00112 { 00113 return m_id; 00114 } 00115 00116 //dangerous and currently not needed? 00117 // CAPriceInfo** getPriceCerts() 00118 // { 00119 // return m_priceCerts; 00120 // } 00121 00125 UINT8* getPIID() 00126 { 00127 UINT8* pTmpStr = NULL; 00128 if(m_pStrPIID!=NULL) 00129 { 00130 pTmpStr = new UINT8[strlen((char*)m_pStrPIID)+1]; 00131 strcpy((char*)pTmpStr, (char*)m_pStrPIID); 00132 } 00133 return pTmpStr; 00134 } 00135 00136 static const char* const getXMLElementName() 00137 { 00138 return ms_pStrElemName; 00139 } 00140 00141 XERCES_CPP_NAMESPACE::DOMDocument* getXMLDocument() 00142 { 00143 return m_domDocument; 00144 } 00145 00146 00147 00148 }; 00149 00150 #endif //PAYMENT 00151 #endif
1.7.6.1