5
5
#include < utility>
6
6
7
7
#include < clp/Array.hpp>
8
- #include < clp/ir/LogEventDeserializer.hpp>
9
- #include < clp/ir/types.hpp>
10
- #include < clp/streaming_compression/zstd/Decompressor.hpp>
8
+ #include < clp/ReaderInterface.hpp>
11
9
12
10
namespace clp_ffi_js ::ir {
13
11
/* *
14
12
* The data context for a `StreamReader`. It encapsulates a chain of the following resources:
15
- * A `clp::ir::LogEventDeserializer` that reads from a
16
- * `clp::streaming_compression::zstd::Decompressor`, which in turn reads from a `clp:: Array`.
17
- * @tparam encoded_variable_t Type of encoded variables encoded in the stream .
13
+ * An IR deserializer class that reads from a `clp::ReaderInterface`, which in turn reads from a
14
+ * `clp::Array`.
15
+ * @tparam Deserializer Type of deserializer .
18
16
*/
19
- template <typename encoded_variable_t >
17
+ template <typename Deserializer >
20
18
class StreamReaderDataContext {
21
19
public:
22
20
// Constructors
23
21
StreamReaderDataContext (
24
22
clp::Array<char >&& data_buffer,
25
- std::unique_ptr<clp::streaming_compression::zstd::Decompressor >&& zstd_decompressor ,
26
- clp::ir::LogEventDeserializer<clp::ir:: four_byte_encoded_variable_t > deserializer
23
+ std::unique_ptr<clp::ReaderInterface >&& reader ,
24
+ Deserializer deserializer
27
25
)
28
26
: m_data_buffer{std::move (data_buffer)},
29
- m_zstd_decompressor {std::move (zstd_decompressor )},
27
+ m_reader {std::move (reader )},
30
28
m_deserializer{std::move (deserializer)} {}
31
29
32
30
// Disable copy constructor and assignment operator
@@ -44,14 +42,12 @@ class StreamReaderDataContext {
44
42
/* *
45
43
* @return A reference to the deserializer.
46
44
*/
47
- [[nodiscard]] auto get_deserializer () -> clp::ir::LogEventDeserializer<encoded_variable_t>& {
48
- return m_deserializer;
49
- }
45
+ [[nodiscard]] auto get_deserializer () -> Deserializer& { return m_deserializer; }
50
46
51
47
private:
52
48
clp::Array<char > m_data_buffer;
53
- std::unique_ptr<clp::streaming_compression::zstd::Decompressor> m_zstd_decompressor ;
54
- clp::ir::LogEventDeserializer< encoded_variable_t > m_deserializer;
49
+ std::unique_ptr<clp::ReaderInterface> m_reader ;
50
+ Deserializer m_deserializer;
55
51
};
56
52
} // namespace clp_ffi_js::ir
57
53
0 commit comments