C++ YT Wrapper
C++ library for working with YT clusters
Loading...
Searching...
No Matches
serialize.h
Go to the documentation of this file.
1#pragma once
2
7
8#include "common.h"
9
10#include <library/cpp/yson/writer.h>
11
12#include <library/cpp/type_info/fwd.h>
13
14namespace NYT {
15
17
18template <class T>
19void Deserialize(TMaybe<T>& value, const TNode& node)
20{
21 value.ConstructInPlace();
22 Deserialize(value.GetRef(), node);
23}
24
25template <class T>
26void Deserialize(TVector<T>& value, const TNode& node)
27{
28 for (const auto& element : node.AsList()) {
29 value.emplace_back();
30 Deserialize(value.back(), element);
31 }
32}
33
34template <class T>
35void Deserialize(THashMap<TString, T>& value, const TNode& node)
36{
37 for (const auto& item : node.AsMap()) {
38 Deserialize(value[item.first], item.second);
39 }
40}
41
43
44void Serialize(const TKey& key, NYson::IYsonConsumer* consumer);
45void Deserialize(TKey& key, const TNode& node);
46
47void Serialize(const TSortColumns& sortColumns, NYson::IYsonConsumer* consumer);
48void Deserialize(TSortColumns& sortColumns, const TNode& node);
49
50void Serialize(const TColumnNames& columnNames, NYson::IYsonConsumer* consumer);
51void Deserialize(TColumnNames& columnNames, const TNode& node);
52
53void Serialize(const TSortColumn& sortColumn, NYson::IYsonConsumer* consumer);
54void Deserialize(TSortColumn& sortColumn, const TNode& node);
55
56void Serialize(const TKeyBound& keyBound, NYson::IYsonConsumer* consumer);
57void Deserialize(TKeyBound& keyBound, const TNode& node);
58
59void Serialize(const TReadLimit& readLimit, NYson::IYsonConsumer* consumer);
60void Deserialize(TReadLimit& readLimit, const TNode& node);
61
62void Serialize(const TReadRange& readRange, NYson::IYsonConsumer* consumer);
63
64void Serialize(const TRichYPath& path, NYson::IYsonConsumer* consumer);
65void Deserialize(TRichYPath& path, const TNode& node);
66
67void Serialize(const TAttributeFilter& filter, NYson::IYsonConsumer* consumer);
68
69void Serialize(const TColumnSchema& columnSchema, NYson::IYsonConsumer* consumer);
70void Serialize(const TDeletedColumnSchema& columnSchema, NYson::IYsonConsumer* consumer);
71void Serialize(const TTableSchema& tableSchema, NYson::IYsonConsumer* consumer);
72
73void Deserialize(EValueType& valueType, const TNode& node);
74void Deserialize(TTableSchema& tableSchema, const TNode& node);
75void Deserialize(TColumnSchema& columnSchema, const TNode& node);
76void Deserialize(TDeletedColumnSchema& columnSchema, const TNode& node);
77void Deserialize(TTableColumnarStatistics& statistics, const TNode& node);
78void Deserialize(TMultiTablePartition& partition, const TNode& node);
79void Deserialize(TMultiTablePartitions& partitions, const TNode& node);
80void Deserialize(TFilePartition& partition, const TNode& node);
81void Deserialize(TFilePartitions& partitions, const TNode& node);
82void Deserialize(TTabletInfo& tabletInfos, const TNode& node);
83
84void Serialize(const TGUID& path, NYson::IYsonConsumer* consumer);
85void Deserialize(TGUID& value, const TNode& node);
86
87void Serialize(const NTi::TTypePtr& type, NYson::IYsonConsumer* consumer);
88void Deserialize(NTi::TTypePtr& type, const TNode& node);
89
90template <typename T>
91TString ToYsonText(const T& value)
92{
93 TStringStream out;
94 ::NYson::TYsonWriter writer(&out, ::NYson::EYsonFormat::Text);
95
96 Serialize(value, &writer);
97
98 return out.Str();
99}
100
102
103} // namespace NYT
Single column description.
Definition common.h:618
Single deleted description.
Definition common.h:735
Table key column description.
Definition common.h:494
List of TSortColumn.
Definition common.h:558
Description of table schema.
Definition common.h:771
Main namespace of YT client.
Definition abortable_stream.h:7
EValueType
Type of the value that can occur in YT table.
Definition common.h:352
List of attributes to retrieve in operations like NYT::ICypressClient::Get.
Definition common.h:1389
Description of a file partition.
Definition common.h:1341
File partitions from GetFilePartitions command.
Definition common.h:1351
Key with relation specifying interval of keys in lower or upper limit of NYT::TReadRange.
Definition common.h:930
Description of a partition.
Definition common.h:1299
Table partitions from GetTablePartitions command.
Definition common.h:1319
Description of the read limit.
Definition common.h:951
Range of a table or a file.
Definition common.h:995
Path with additional attributes.
Definition common.h:1040
Statistics about table columns.
Definition common.h:1281
Contains information about tablet.
Definition common.h:1363