csvzall 0.4.0
CSV command-line tool and emerging C++ library
Loading...
Searching...
No Matches
view.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "../../pipeline_types.hpp"
4#include "../../viewer_core/indexed_csv.hpp"
5
6#include <memory>
7#include <ostream>
8#include <cstdint>
9#include <string>
10#include <string_view>
11#include <vector>
12
14
19
21 public:
22 static CsvIndexedFile Open(const std::string& input_path,
23 const RunOptions& options,
24 const LoggerCallbacks& logger,
25 RunStats& stats);
26
27 [[nodiscard]] const std::string& input_path() const;
28 [[nodiscard]] const std::string& file_name() const;
29 [[nodiscard]] const std::vector<std::string>& headers() const;
30 [[nodiscard]] std::uint64_t row_count() const;
31 [[nodiscard]] std::uint64_t file_size() const;
32
33 [[nodiscard]] std::vector<std::vector<std::string>> read_rows(
34 std::uint64_t offset,
35 std::uint64_t limit) const;
36
37 void edit_cell(std::uint64_t row, const std::string& column, const std::string& value);
38 void delete_row(std::uint64_t row);
39 void insert_row(std::uint64_t row, const std::vector<std::string>& values);
40 void swap_rows(std::uint64_t first, std::uint64_t second);
41 void insert_column(std::uint64_t column, const std::string& name, const std::string& value);
42 void rename_column(const std::string& column, const std::string& name);
43 void delete_column(const std::string& column);
45 void reset();
46 void save(const std::vector<std::string>& columns = {});
47
48 private:
50
52};
53
55 public:
56 static CsvViewData Open(const std::string& input_path,
57 const RunOptions& options,
58 const LoggerCallbacks& logger,
59 RunStats& stats);
60
61 [[nodiscard]] CsvViewDataMode mode() const;
62 [[nodiscard]] std::string_view mode_name() const;
63 [[nodiscard]] const std::string& input_path() const;
64 [[nodiscard]] const std::string& file_name() const;
65 [[nodiscard]] const std::vector<std::string>& headers() const;
66 [[nodiscard]] std::uint64_t row_count() const;
67 [[nodiscard]] std::uint64_t file_size() const;
68
69 [[nodiscard]] std::vector<std::vector<std::string>> read_rows(
70 std::uint64_t offset,
71 std::uint64_t limit) const;
72
73 void edit_cell(std::uint64_t row, const std::string& column, const std::string& value);
74 void delete_row(std::uint64_t row);
75 void insert_row(std::uint64_t row, const std::vector<std::string>& values);
76 void swap_rows(std::uint64_t first, std::uint64_t second);
77 void insert_column(std::uint64_t column, const std::string& name, const std::string& value);
78 void rename_column(const std::string& column, const std::string& name);
79 void delete_column(const std::string& column);
81 void reset();
82 void save(const std::vector<std::string>& columns = {});
83
84 private:
86
88};
89
92 bool serve_once = false;
93 bool editable = false;
94 std::string session_token;
95 std::string viewer_asset_dir;
96};
97
99 public:
100 ViewServer(const CsvViewData& data, const LoggerCallbacks& logger);
101 ~ViewServer();
102
103 ViewServer(const ViewServer&) = delete;
104 ViewServer& operator=(const ViewServer&) = delete;
105
106 int Start(const ViewServerOptions& options = {});
107 void Stop();
108 int Wait();
109
110 [[nodiscard]] int bound_port() const;
111 [[nodiscard]] const std::string& session_token() const;
112 [[nodiscard]] std::string viewer_url() const;
113
114 private:
115 struct Impl;
116 std::unique_ptr<Impl> impl_;
117};
118
119std::string FormatViewStartupOutput(const std::string& url, bool startup_json);
120
121int RunView(const std::string& input_path,
122 std::ostream& output,
123 const RunOptions& options,
124 const LoggerCallbacks& logger,
125 RunStats& stats,
126 int requested_port,
127 bool open_browser,
128 bool serve_once,
129 bool startup_json);
130
131} // namespace csvzall::pipeline::commands
std::string second
Definition heatmap.cpp:31
std::string first
Definition heatmap.cpp:30
std::uint64_t row_count() const
Definition model.cpp:52
void swap_rows(std::uint64_t first, std::uint64_t second)
Definition model.cpp:80
const std::string & input_path() const
Definition model.cpp:40
void insert_column(std::uint64_t column, const std::string &name, const std::string &value)
Definition model.cpp:84
static CsvIndexedFile Open(const std::string &input_path, const RunOptions &options, const LoggerCallbacks &logger, RunStats &stats)
Definition model.cpp:25
bool recover_renamed_source()
Definition model.cpp:98
void save(const std::vector< std::string > &columns={})
Definition model.cpp:106
const std::string & file_name() const
Definition model.cpp:44
void reset()
Definition model.cpp:102
const std::vector< std::string > & headers() const
Definition model.cpp:48
std::vector< std::vector< std::string > > read_rows(std::uint64_t offset, std::uint64_t limit) const
Definition model.cpp:60
void delete_column(const std::string &column)
Definition model.cpp:94
void edit_cell(std::uint64_t row, const std::string &column, const std::string &value)
Definition model.cpp:66
std::uint64_t file_size() const
Definition model.cpp:56
void rename_column(const std::string &column, const std::string &name)
Definition model.cpp:90
void insert_row(std::uint64_t row, const std::vector< std::string > &values)
Definition model.cpp:76
void delete_row(std::uint64_t row)
Definition model.cpp:72
std::vector< std::vector< std::string > > read_rows(std::uint64_t offset, std::uint64_t limit) const
Definition model.cpp:153
void save(const std::vector< std::string > &columns={})
Definition model.cpp:199
void delete_row(std::uint64_t row)
Definition model.cpp:165
const std::vector< std::string > & headers() const
Definition model.cpp:141
void swap_rows(std::uint64_t first, std::uint64_t second)
Definition model.cpp:173
void edit_cell(std::uint64_t row, const std::string &column, const std::string &value)
Definition model.cpp:159
bool recover_renamed_source()
Definition model.cpp:191
void insert_column(std::uint64_t column, const std::string &name, const std::string &value)
Definition model.cpp:177
void insert_row(std::uint64_t row, const std::vector< std::string > &values)
Definition model.cpp:169
const std::string & input_path() const
Definition model.cpp:133
const std::string & file_name() const
Definition model.cpp:137
void rename_column(const std::string &column, const std::string &name)
Definition model.cpp:183
std::uint64_t file_size() const
Definition model.cpp:149
void delete_column(const std::string &column)
Definition model.cpp:187
void reset()
Definition model.cpp:195
CsvViewDataMode mode() const
Definition model.cpp:125
std::uint64_t row_count() const
Definition model.cpp:145
static CsvViewData Open(const std::string &input_path, const RunOptions &options, const LoggerCallbacks &logger, RunStats &stats)
Definition model.cpp:110
std::string_view mode_name() const
Definition model.cpp:129
int Start(const ViewServerOptions &options={})
Definition server.cpp:129
ViewServer & operator=(const ViewServer &)=delete
int bound_port() const
Definition server.cpp:583
void Stop()
Definition server.cpp:562
int Wait()
Definition server.cpp:575
~ViewServer()
Definition server.cpp:125
const std::string & session_token() const
Definition server.cpp:587
ViewServer(const ViewServer &)=delete
std::string viewer_url() const
Definition server.cpp:591
Definition indexed_csv.hpp:32
Definition indexed_csv.hpp:91
std::vector< ColumnMapping > columns
Definition json_extract.cpp:353
std::string name
Definition json_extract.cpp:347
Definition append.cpp:19
int RunView(const std::string &input_path, std::ostream &output, const RunOptions &options, const LoggerCallbacks &logger, RunStats &stats, int requested_port, bool open_browser, bool serve_once, bool startup_json)
Definition view.cpp:44
std::string FormatViewStartupOutput(const std::string &url, const bool startup_json)
Definition view.cpp:37
CsvViewDataMode
Definition indexed_csv.hpp:87
Definition pipeline_types.hpp:66
Definition pipeline_types.hpp:16
Definition pipeline_types.hpp:61
std::string viewer_asset_dir
Definition view.hpp:95
std::string session_token
Definition view.hpp:94
Definition indexed_csv.hpp:21
Definition indexed_csv.hpp:27
Definition indexed_csv.hpp:17
double value
Definition timeseries.cpp:32