ITCHCPP 1.6.1
High-Performance NASDAQ TotalView-ITCH 5.0 Parser & Market-Data Platform
Loading...
Searching...
No Matches
arrow_export.hpp
Go to the documentation of this file.
1#pragma once
2
13
14#ifdef ITCH_WITH_ARROW
15
16#include <cstdint>
17#include <memory>
18#include <string>
19
20#include "itch/messages.hpp"
21
22namespace arrow {
23class Array;
24} // namespace arrow
25
26namespace itch::io {
27
34class ArrowExporter {
35 public:
37 ArrowExporter();
38
40 ~ArrowExporter();
41
43 ArrowExporter(const ArrowExporter&) = delete;
44
48 auto operator=(const ArrowExporter&) -> ArrowExporter& = delete;
49
51 ArrowExporter(ArrowExporter&&) noexcept = default;
52
56 auto operator=(ArrowExporter&&) noexcept -> ArrowExporter& = default;
57
61 auto append(const Message& message) -> void;
62
66 [[nodiscard]] auto rows() const noexcept -> std::uint64_t;
67
72 [[nodiscard]] auto write_parquet(const std::string& path) -> bool;
73
78 [[nodiscard]] auto error() const -> const std::string&;
79
80 private:
81 struct Impl;
82 std::unique_ptr<Impl> m_impl;
83};
84
85} // namespace itch::io
86
87#endif // ITCH_WITH_ARROW
Defines every ITCH 5.0 message struct, the Message variant, and the stream-printing helpers used to f...