81 lines
1.5 KiB
Plaintext
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}} |