pulsar-client-cpp
Loading...
Searching...
No Matches
Schema.h
1
19#pragma once
20
21#include <pulsar/defines.h>
22
23#include <cstdint>
24#include <iosfwd>
25#include <map>
26#include <memory>
27#include <string>
28
29namespace pulsar {
30
34enum class KeyValueEncodingType : uint8_t
35{
40
44 INLINE
45};
46
47// Return string representation of result code
48PULSAR_PUBLIC const char *strEncodingType(pulsar::KeyValueEncodingType encodingType);
49
50PULSAR_PUBLIC KeyValueEncodingType enumEncodingType(const std::string &encodingTypeStr);
51
52enum SchemaType : int8_t
53{
57 NONE = 0,
58
62 STRING = 1,
63
67 JSON = 2,
68
73
77 AVRO = 4,
78
82 INT8 = 6,
83
87 INT16 = 7,
88
92 INT32 = 8,
93
97 INT64 = 9,
98
102 FLOAT = 10,
103
107 DOUBLE = 11,
108
113
118
122 BYTES = -1,
123
128
133};
134
135// Return string representation of result code
136PULSAR_PUBLIC const char *strSchemaType(SchemaType schemaType);
137
138PULSAR_PUBLIC SchemaType enumSchemaType(const std::string &schemaTypeStr);
139
140class SchemaInfoImpl;
141
142typedef std::map<std::string, std::string> StringMap;
143
147class PULSAR_PUBLIC SchemaInfo {
148 public:
160
167 SchemaInfo(SchemaType schemaType, const std::string &name, const std::string &schema,
168 const StringMap &properties = StringMap());
169
175 SchemaInfo(const SchemaInfo &keySchema, const SchemaInfo &valueSchema,
176 const KeyValueEncodingType &keyValueEncodingType = KeyValueEncodingType::INLINE);
177
182
186 const std::string &getName() const;
187
191 const std::string &getSchema() const;
192
196 const StringMap &getProperties() const;
197
198 private:
199 typedef std::shared_ptr<SchemaInfoImpl> SchemaInfoImplPtr;
200 SchemaInfoImplPtr impl_;
201};
202
203} // namespace pulsar
204
205PULSAR_PUBLIC std::ostream &operator<<(std::ostream &s, pulsar::SchemaType schemaType);
206
207PULSAR_PUBLIC std::ostream &operator<<(std::ostream &s, pulsar::KeyValueEncodingType encodingType);
Definition Schema.h:147
const StringMap & getProperties() const
SchemaType getSchemaType() const
SchemaInfo(SchemaType schemaType, const std::string &name, const std::string &schema, const StringMap &properties=StringMap())
SchemaInfo(const SchemaInfo &keySchema, const SchemaInfo &valueSchema, const KeyValueEncodingType &keyValueEncodingType=KeyValueEncodingType::INLINE)
const std::string & getSchema() const
const std::string & getName() const
Definition Authentication.h:31
SchemaType
Definition Schema.h:53
@ INT64
Definition Schema.h:97
@ JSON
Definition Schema.h:67
@ DOUBLE
Definition Schema.h:107
@ PROTOBUF_NATIVE
Definition Schema.h:117
@ INT8
Definition Schema.h:82
@ BYTES
Definition Schema.h:122
@ PROTOBUF
Definition Schema.h:72
@ FLOAT
Definition Schema.h:102
@ AUTO_CONSUME
Definition Schema.h:127
@ INT16
Definition Schema.h:87
@ KEY_VALUE
Definition Schema.h:112
@ STRING
Definition Schema.h:62
@ INT32
Definition Schema.h:92
@ AVRO
Definition Schema.h:77
@ AUTO_PUBLISH
Definition Schema.h:132
@ NONE
Definition Schema.h:57
KeyValueEncodingType
Definition Schema.h:35