#ifndef __ZNSMAIN__ZMAIN_CGI_H__ #define __ZNSMAIN__ZMAIN_CGI_H__ #include "ZCppMain/ZMainHead.H" #include "ZCppMain/ZMainEnc.H" #include "ZCppMain/ZtCStringEx.H" #include "ZCppMain/ZtCObjAVL.H" #include "ZCppMain/ZtCLoadXml.H" #include "ZCppMain/ZtCLoadDataBlock.H" namespace ZNsMain { namespace ZNsCGI { namespace NsInterface { }/* namespace NsInterface*/ namespace NsIFace { using namespace NsInterface; }/* namespace NsIFace*/ namespace ZNsBase { template class ZtCEnvVar { protected: TStringData mo_CStrEnvName ; TStringData mo_CStrEnvValue; public : ZtCEnvVar() { }/* ZtCEnvVar()*/ ZtCEnvVar(const TStringData& AR_CStrEnvName) { mo_CStrEnvName = AR_CStrEnvName; }/* ZtCEnvVar(const TStringData& AR_CStrEnvName)*/ ZtCEnvVar(const TStringData& AR_CStrEnvName, const TStringData& AR_CStrEnvValue) { mo_CStrEnvName = AR_CStrEnvName ; mo_CStrEnvValue = AR_CStrEnvValue; }/* ZtCEnvVar(const TStringData& AR_CStrEnvName, const TStringData& AR_CStrEnvValue)*/ ZtCEnvVar& operator=(const ZtCEnvVar& rhs) { mo_CStrEnvName = rhs.mo_CStrEnvName ; mo_CStrEnvValue = rhs.mo_CStrEnvValue; return *this; }/* ZtCEnvVar& operator=(const ZtCEnvVar& rhs)*/ ZtCEnvVar& operator=(const TStringData& AR_CStrEnvName) { mo_CStrEnvName = AR_CStrEnvName; return *this; }/* ZtCEnvVar& operator=(const ZtCEnvVar& rhs)*/ void Set(const TStringData& AR_CStringEnvName, const TStringData& AR_CStringEnvValue) { mo_CStrEnvName = AR_CStringEnvName ; mo_CStrEnvValue = AR_CStringEnvValue; }/* void Set(const TStringData& AR_CStringEnvName, const TStringData& AR_CStringEnvValue)*/ TStringData& GetName () {return mo_CStrEnvName ;} TStringData& GetValue() {return mo_CStrEnvValue;} const TStringData& GetName () const {return mo_CStrEnvName ;} const TStringData& GetValue() const {return mo_CStrEnvValue;} bool operator==(const ZtCEnvVar& rhs) const{ return mo_CStrEnvName ==rhs.mo_CStrEnvName ;} bool operator< (const ZtCEnvVar& rhs) const{ return mo_CStrEnvName < rhs.mo_CStrEnvName ;} bool operator> (const ZtCEnvVar& rhs) const{ return mo_CStrEnvName > rhs.mo_CStrEnvName ;} bool operator==(const TStringData& AR_CStrEnvName) const{ return mo_CStrEnvName ==AR_CStrEnvName ;} bool operator> (const TStringData& AR_CStrEnvName) const{ return mo_CStrEnvName > AR_CStrEnvName ;} bool operator< (const TStringData& AR_CStrEnvName) const{ return mo_CStrEnvName < AR_CStrEnvName ;} public: };/* template class ZtCEnvVar*/ // CGI ¶óÀ̺귯¸®°¡ ¾Æ´Ñ °÷¿¡¼­ À̸¦Å׸é Http Ŭ¶óÀÌ¾ðÆ® // µî¿¡¼­, class ZtCFileUp À» »ç¿ëÇÒ °ÍÀÌ´Ù. template< typename TStringData, typename TFileSize=ZNsMain::ZTypLengthF > class ZtCFileUp /////////////////////////////////// { public : typedef TFileSize TypeFileSize; protected: TStringData mo_FileName; TStringData mo_FileType; TStringData mo_EnviName; TFileSize ml_FileSize; public : ZtCFileUp() { ml_FileSize = 0; };/* ZtCFileUp()*/ TStringData& GetFileName() {return mo_FileName;} TStringData& GetFileType() {return mo_FileType;} TStringData& GetEnviName() {return mo_EnviName;} const TStringData& GetFileName() const{return mo_FileName;} const TStringData& GetFileType() const{return mo_FileType;} const TStringData& GetEnviName() const{return mo_EnviName;} TFileSize GetDataSize() const { return ml_FileSize; }/* TFileSize GetDataSize() const*/ void SetDataSize(TFileSize AL_FileSize) { ml_FileSize = AL_FileSize; }/* void SetDataSize(TFileSize AL_FileSize)*/ void AddDataSize(TFileSize AL_FileSize) { ml_FileSize += AL_FileSize; }/* void AddDataSize(TFileSize AL_FileSize)*/ TFileSize& GetDataSizeRef() { return ml_FileSize; }/* TFileSize& GetDataSizeRef()*/ public: };/* template< typename TStringData, typename TFileSize=ZNsMain::ZTypLengthF > class ZtCFileUp /////////////////////////////////*/ }/* namespace ZNsBase*/ template void ZftEscapeHtml(TStringData& ARR_CString) { ARR_CString.Replace("&", "&" ). Replace("\"","""). Replace("<", "<" ). Replace(">", ">" ). Replace(" ", " "). /*//////*/ Replace("\n","
"); }/* template void ZftEscapeHtml(TStringData& ARR_CString) */ template void ZftNL2BR(TStringData& ARR_CStringData) { ARR_CStringData. Replace("\r\n", "
").Replace("\n" , "
"); }/* template void ZftNL2BR(TStringData& ARR_CStringData) */ namespace ZNsType { template< typename TStringData=ZNsMain::ZtCStringBase > class ZtCTypeEnvVarSet /*##################################*/ { public: typedef TStringData ZCStringData ; typedef ZNsMain::ZNsCGI::ZNsBase:: ZtCEnvVar ZCEnvVar ; typedef ZNsMain::ZtCObjAVL ZCEnvVarSet ; typedef typename ZCEnvVarSet ::ZCNode ZCEnvVarNode ; typedef typename ZCStringData::ZCMainChars ZCMainChars ; typedef typename ZCStringData::TypeChar TypeChar ; typedef typename ZCStringData::TypeLength TypeLength ; public: };/* template< typename TStringData=ZNsMain::ZtCStringBase > class ZtCTypeEnvVarSet ####################################*/ }/* namespace ZNsType*/ template< typename TStringData, /*############################*/ typename TTypeEnvVarSet = ZNsType::ZtCTypeEnvVarSet > class ZtCLoadSimUrlConfig : protected ZNsMain::ZtCLoadDataBlockOne < ZtCLoadSimUrlConfig < TStringData, TTypeEnvVarSet >, TStringData /*###########*/ > /*############################################*/ { public : template< typename TTDerive, typename TTStringData > friend class ZNsMain::ZtCLoadDataBlockOne; public : typedef typename TTypeEnvVarSet::ZCStringData ZCStringData; typedef typename TTypeEnvVarSet::ZCEnvVar ZCEnvVar ; typedef typename TTypeEnvVarSet::ZCEnvVarSet ZCEnvVarSet ; typedef typename TTypeEnvVarSet::ZCEnvVarNode ZCEnvVarNode; typedef typename TTypeEnvVarSet::ZCMainChars ZCMainChars ; typedef typename TTypeEnvVarSet::TypeChar TypeChar ; typedef typename TTypeEnvVarSet::TypeLength TypeLength ; public : typedef ZNsMain::ZtCLoadDataBlockOne TypeBase; private: ZCEnvVarSet mo_CEnvVarSet ; ZCStringData mo_CStringName ; ZCStringData mo_CStringBuff ; ZCEnvVarNode* mp_CStringNode ; bool mb_DoFindEqual ; // '=' À» ã¾ÒÀ¸¸é true public : typedef void (*TypePfOnMeetCEnvVar) (const ZCEnvVar& AR_CEnvVar, ZCStringData& ARR_CStringBuff); private: static void OnMeetCEnvVar(const ZCEnvVar& AR_CEnvVar, ZCStringData& ARR_CStringBuff) { ZCStringData VO_CStringEnc(AR_CEnvVar.GetValue()); ZNsMain::ZNsEnc::ZftGetSimUrlEnc(RR(VO_CStringEnc)); ARR_CStringBuff ("&")(AR_CEnvVar.GetName())("=")(VO_CStringEnc)("&\r\n"); }/* static void OnMeetCEnvVar(const ZCEnvVar& AR_CEnvVar, ZCStringData& ARR_CStringBuff)*/ private: static void ShowEnvVar(ZCEnvVar& AR_CEnvVar) { cout<<"# "<