From 3f91ce4980508b559cdeb8d1ca956737631cb398 Mon Sep 17 00:00:00 2001 From: sauron Date: Sun, 24 Aug 2025 23:40:24 +0900 Subject: [PATCH] commit 2025-08-24 23:40 add ZCppMain/ZMainCGI.H --- ZCppMain/ZMainCGI.H | 628 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 628 insertions(+) create mode 100644 ZCppMain/ZMainCGI.H diff --git a/ZCppMain/ZMainCGI.H b/ZCppMain/ZMainCGI.H new file mode 100644 index 0000000..dec786e --- /dev/null +++ b/ZCppMain/ZMainCGI.H @@ -0,0 +1,628 @@ + + +#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<<"# "<