Index: src/libchcore/TSQLiteSerializerContainer.h =================================================================== diff -u -N -ra3d1e4c03280ece94af75d9aef32a65266cf8050 -rffdee64cb0f2d472bb4102abe80ee12783e794c8 --- src/libchcore/TSQLiteSerializerContainer.h (.../TSQLiteSerializerContainer.h) (revision a3d1e4c03280ece94af75d9aef32a65266cf8050) +++ src/libchcore/TSQLiteSerializerContainer.h (.../TSQLiteSerializerContainer.h) (revision ffdee64cb0f2d472bb4102abe80ee12783e794c8) @@ -24,18 +24,18 @@ #include "ISerializerContainer.h" #include #include +#include #include "TSQLiteColumnDefinition.h" #include "TSQLiteDatabase.h" #include "TSQLiteSerializerRowData.h" +#include BEGIN_CHCORE_NAMESPACE class LIBCHCORE_API TSQLiteSerializerContainer : public ISerializerContainer { public: TSQLiteSerializerContainer(const TString& strName, const sqlite::TSQLiteDatabasePtr& spDB); - TSQLiteSerializerContainer(const TString& strName, size_t stParentID, const sqlite::TSQLiteDatabasePtr& spDB); - virtual ~TSQLiteSerializerContainer(); virtual IColumnsDefinition& GetColumnsDefinition(); @@ -50,17 +50,19 @@ private: void FlushDeletions(); + boost::pool<>& GetPool(); + size_t CalculateRowMemorySize() const; private: #pragma warning(push) #pragma warning(disable: 4251) - boost::optional m_stParentID; + TSQLiteColumnsDefinition m_tColumns; - typedef std::map RowMap; // maps row id to row data + boost::pool<>* m_pPoolRows; + + typedef boost::container::flat_map RowMap; // maps row id to row data RowMap m_mapRows; - TSQLiteColumnsDefinition m_tColumns; - std::set m_setDeleteItems; TString m_strName;