DPS/include/CodeGenerator.h

68 lines
1.7 KiB
C
Raw Normal View History

2025-06-23 10:41:33 +08:00
#pragma once
#include"CommonDataPublic.h"
#define ODI __declspec(dllexport)
using namespace std;
using namespace DBPlatformSpace;
typedef struct FuncInfo
{
int paraCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int paraType[20];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string paraName[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
string nameAndParastr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
string callParaStr; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
FuncInfo()
{
paraCount = -1;
name = "";
}
}FuncInfo;
class CodeGenerator
{
public:
ODI CodeGenerator();
ODI ~CodeGenerator();
//<2F><><EFBFBD>ɽӿڴ<D3BF><DAB4><EFBFBD>
ODI ResultMsg generateCSharpCode(M_EntityTableDAO* table, M_EntityModelDAO* model, string codeFileFolderPath, list<string>& resultCodeFilesPathList);
private:
//<2F><><EFBFBD>ɰ׺в<D7BA><D0B2>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ļ<EFBFBD>
ResultMsg generateWhiteBoxFile(string& filename, string path);
ResultMsg generateHeadFile(string& filename, string path);
ResultMsg generateSrcFile (string& filename, string path);
ResultMsg generateConstructFunc(string& content);
ResultMsg generateDefaultFunc(string& content);
ResultMsg generateFindByFunc(string& content);
ResultMsg generateDelByFunc(string& content);
ResultMsg generateLoadFunc(string& content);
ResultMsg generateSavetoDaoFunc(string& content);
void BuildBlobFuncList(string attName, int type);
ResultMsg generateBlobFunc(string& content);
ResultMsg generateBlobFuncSrc(string& content);
void generateBlobTestFunc(string& content, int objId);
void init();
void clearLastData();
M_EntityTableDAO* m_pTable = nullptr;
string m_daoname;
M_EntityModelDAO* m_pModel = nullptr;
std::list<M_NormalColumnDAO*> m_columnlist;
list<M_FindByInterfaceDAO*> m_findbyInterfacelist;
list<M_DelByInterfaceDAO*> m_delbyInterfacelist;
list<FuncInfo*> m_findbyFuncs;
list<FuncInfo*> m_delbyFuncs;
list<FuncInfo*> m_blobFuncs; //<2F><>char* <20><>double*<2A><><EFBFBD>صĺ<D8B5><C4BA><EFBFBD>
};