@@ -25,12 +25,14 @@ namespace data_frame_row_slice_detail {
2525class CORE_EXPORT CDataFrameRowSliceHandleImpl {
2626public:
2727 using TFloatVec = std::vector<CFloatStorage>;
28+ using TInt32Vec = std::vector<std::int32_t >;
2829 using TImplPtr = std::unique_ptr<CDataFrameRowSliceHandleImpl>;
2930
3031public:
3132 virtual ~CDataFrameRowSliceHandleImpl () = default ;
3233 virtual TImplPtr clone () const = 0;
33- virtual TFloatVec& values () const = 0;
34+ virtual TFloatVec& rows () const = 0;
35+ virtual const TInt32Vec& docIds () const = 0;
3436 virtual bool bad () const = 0;
3537};
3638}
@@ -41,6 +43,8 @@ class CORE_EXPORT CDataFrameRowSliceHandle {
4143public:
4244 using TFloatVec = std::vector<CFloatStorage>;
4345 using TFloatVecItr = TFloatVec::iterator;
46+ using TInt32Vec = std::vector<std::int32_t >;
47+ using TInt32VecCItr = TInt32Vec::const_iterator;
4448 using TImplPtr = std::unique_ptr<data_frame_row_slice_detail::CDataFrameRowSliceHandleImpl>;
4549
4650public:
@@ -53,9 +57,12 @@ class CORE_EXPORT CDataFrameRowSliceHandle {
5357 CDataFrameRowSliceHandle& operator =(CDataFrameRowSliceHandle&& other);
5458
5559 std::size_t size () const ;
56- TFloatVecItr begin () const ;
57- TFloatVecItr end () const ;
58- const TFloatVec& values () const ;
60+ TFloatVecItr beginRows () const ;
61+ TFloatVecItr endRows () const ;
62+ TInt32VecCItr beginDocIds () const ;
63+ TInt32VecCItr endDocIds () const ;
64+ const TFloatVec& rows () const ;
65+ const TInt32Vec& docIds () const ;
5966 bool bad () const ;
6067
6168private:
@@ -67,12 +74,13 @@ class CORE_EXPORT CDataFrameRowSlice {
6774public:
6875 using TFloatVec = std::vector<CFloatStorage>;
6976 using TSizeHandlePr = std::pair<std::size_t , CDataFrameRowSliceHandle>;
77+ using TInt32Vec = std::vector<std::int32_t >;
7078
7179public:
7280 virtual ~CDataFrameRowSlice () = default ;
7381 virtual bool reserve (std::size_t numberColumns, std::size_t extraColumns) = 0;
7482 virtual TSizeHandlePr read () = 0;
75- virtual void write (const TFloatVec& values ) = 0;
83+ virtual void write (const TFloatVec& rows, const TInt32Vec& docIds ) = 0;
7684 virtual std::size_t staticSize () const = 0;
7785 virtual std::size_t memoryUsage () const = 0;
7886 virtual std::uint64_t checksum () const = 0;
@@ -90,17 +98,18 @@ class CORE_EXPORT CDataFrameRowSlice {
9098// ! rows to adapt it for use by the data frame.
9199class CORE_EXPORT CMainMemoryDataFrameRowSlice final : public CDataFrameRowSlice {
92100public:
93- CMainMemoryDataFrameRowSlice (std::size_t firstRow, TFloatVec state );
101+ CMainMemoryDataFrameRowSlice (std::size_t firstRow, TFloatVec rows, TInt32Vec docIds );
94102 virtual bool reserve (std::size_t numberColumns, std::size_t extraColumns);
95103 virtual TSizeHandlePr read ();
96- virtual void write (const TFloatVec& values );
104+ virtual void write (const TFloatVec& rows, const TInt32Vec& docIds );
97105 virtual std::size_t staticSize () const ;
98106 virtual std::size_t memoryUsage () const ;
99107 virtual std::uint64_t checksum () const ;
100108
101109private:
102110 std::size_t m_FirstRow;
103- TFloatVec m_State;
111+ TFloatVec m_Rows;
112+ TInt32Vec m_DocIds;
104113};
105114
106115// ! \brief On disk CDataFrame slice storage.
@@ -151,28 +160,30 @@ class CORE_EXPORT COnDiskDataFrameRowSlice final : public CDataFrameRowSlice {
151160public:
152161 COnDiskDataFrameRowSlice (const TTemporaryDirectoryPtr& directory,
153162 std::size_t firstRow,
154- TFloatVec state);
163+ TFloatVec rows,
164+ TInt32Vec docIds);
155165 virtual bool reserve (std::size_t numberColumns, std::size_t extraColumns);
156166 virtual TSizeHandlePr read ();
157- virtual void write (const TFloatVec& values );
167+ virtual void write (const TFloatVec& rows, const TInt32Vec& docIds );
158168 virtual std::size_t staticSize () const ;
159169 virtual std::size_t memoryUsage () const ;
160170 virtual std::uint64_t checksum () const ;
161171
162172private:
163- void writeToDisk (const TFloatVec& state );
164- bool readFromDisk (TFloatVec& result ) const ;
173+ void writeToDisk (const TFloatVec& rows, const TInt32Vec& docIds );
174+ bool readFromDisk (TFloatVec& rows, TInt32Vec& docIds ) const ;
165175
166176private:
167177 using TByteVec = CCompressUtil::TByteVec;
168178
169179private:
170180 mutable bool m_StateIsBad = false ;
171181 std::size_t m_FirstRow;
172- std::size_t m_Capacity;
182+ std::size_t m_RowsCapacity;
183+ std::size_t m_DocIdsCapacity;
173184 TTemporaryDirectoryPtr m_Directory;
174185 boost::filesystem::path m_FileName;
175- uint64_t m_Checksum;
186+ std:: uint64_t m_Checksum;
176187};
177188}
178189}
0 commit comments