{{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; iarr_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}}