game_sync/tools/xlsx2protomac/templ/gpb_mgr_h.templ

81 lines
1.5 KiB
Plaintext

{{define "gpb_mgr_h"}}
// Code generated by xlsx2proto.
// DO NOT EDIT!
#ifndef __DATA_MGR_AGC_H__
#define __DATA_MGR_AGC_H__
#include "DataMgr.h"
#include "protocol/protocol.pb.h"
#include "protocol/pbdata.pb.h"
class DB_Loader
{
public:
static DB_Loader& getInstance()
{
static DB_Loader inst;
return inst;
}
void loadAll();
void purgeAll();
};
{{ $a := .data }}{{ range $a }}{{ $elem := . }}
class {{$elem.ProtoName}}DataMgr : public IDataMgr
{
public:
static {{$elem.ProtoName}}DataMgr* getInstance()
{
static {{$elem.ProtoName}}DataMgr* s_instance;
if (!s_instance)
{
s_instance = new {{$elem.ProtoName}}DataMgr();
}
return s_instance;
}
void purge()
{
if (m_pDataArray)
{
delete m_pDataArray;
}
m_dataPool.clear();
}
protected:
virtual void mapData(void* pData, int size)
{
if (!pData || size<=0)
{
return;
}
if (m_pDataArray)
{
delete m_pDataArray;
}
m_dataPool.clear();
m_pDataArray = protocol::{{$elem.ProtoName}}Array::default_instance().New();
google::protobuf::io::CodedInputStream cis((google::protobuf::uint8*)pData, size);
if (m_pDataArray->MergeFromCodedStream(&cis))
{
for (int i=0; i<m_pDataArray->arr_size(); ++i)
{
const protocol::{{$elem.ProtoName}}& data = m_pDataArray->arr(i);
m_dataPool[data.id()] = (google::protobuf::Message*)&data;
}
}
return;
}
protected:
{{$elem.ProtoName}}DataMgr():m_pDataArray(0){}
virtual ~{{$elem.ProtoName}}DataMgr(){}
protocol::{{$elem.ProtoName}}Array* m_pDataArray;
};
{{end}}
#endif
{{end}}