Index: src/libchcore/TSQLiteSerializerRowData.h =================================================================== diff -u -N -r31c4b1fc46687ed2cf35dd9fa0acec2543ae1886 -r5693271a6736f524997e3951fc7b7b6323bc6447 --- src/libchcore/TSQLiteSerializerRowData.h (.../TSQLiteSerializerRowData.h) (revision 31c4b1fc46687ed2cf35dd9fa0acec2543ae1886) +++ src/libchcore/TSQLiteSerializerRowData.h (.../TSQLiteSerializerRowData.h) (revision 5693271a6736f524997e3951fc7b7b6323bc6447) @@ -25,9 +25,34 @@ #include "ISerializerContainer.h" #include "TRowData.h" #include "TSQLiteDatabase.h" +#include "TSQLiteStatement.h" +#include BEGIN_CHCORE_NAMESPACE +class LIBCHCORE_API TRowID +{ +public: + TRowID(const TSQLiteColumnDefinitionPtr& spColumnDefinition); + ~TRowID(); + + void Clear(); + + void SetAddedBit(bool bAdded); + void SetColumnBit(size_t stIndex, bool bColumnExists); + + bool HasAny() const; + + bool operator==(const TRowID rSrc) const; + bool operator<(const TRowID rSrc) const; + +private: +#pragma warning(push) +#pragma warning(disable: 4251) + boost::dynamic_bitset<> m_bitset; +#pragma warning(pop) +}; + class LIBCHCORE_API TSQLiteSerializerRowData : public ISerializerRowData { public: @@ -37,8 +62,11 @@ virtual ISerializerRowData& operator%(const TRowData& rData); virtual ISerializerRowData& SetValue(const TRowData& rData); - void Flush(const sqlite::TSQLiteDatabasePtr& spDatabase, const TString& strContainerName); + TString GetQuery(const TString& strContainerName) const; + TRowID GetChangeIdentification() const; + void BindParamsAndExec(sqlite::TSQLiteStatement& tStatement); + private: size_t m_stRowID; bool m_bAdded;