Skip to content

Commit af28640

Browse files
committed
MOD: Change types in C++ client
1 parent 2b4226c commit af28640

File tree

7 files changed

+91
-72
lines changed

7 files changed

+91
-72
lines changed

CHANGELOG.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,19 @@
66
- Added preliminary support for Windows
77
- Added `LiveThreaded::BlockForStop` to make it easier to wait for one or more records
88
before closing the session
9-
- Switch `BatchSubmitJob` to use form data to avoid query param length limit
10-
- Switch `SymbologyResolve` to use POST request with form data to avoid query param
9+
- Changed `TimeseriesGetRange` to request a Zstd-compressed result for more efficient
10+
data transfer
11+
- Switched `BatchSubmitJob` to use form data to avoid query param length limit
12+
- Switched `SymbologyResolve` to use POST request with form data to avoid query param
1113
length limit
1214

15+
#### Breaking changes
16+
- Changed size-related fields and `limit` parameters to use `std::uint64_t` for consistency
17+
across architectures
18+
19+
#### Bug fixes
20+
- Removed usage of non-portable `__PRETTY_FUNCTION__`
21+
1322
## 0.9.1 - 2023-07-11
1423

1524
#### Enhancements
@@ -18,9 +27,9 @@
1827
- Added `RType` getter to `Record`
1928

2029
#### Bug fixes
21-
- Batch live subscriptions to avoid hitting max message length
22-
- Fix bug in Zstd decompression
23-
- Fix `Historical::BatchDownload` truncating file before writing each chunk
30+
- Added batching for live subscriptions to avoid hitting max message length
31+
- Fixed bug in Zstd decompression
32+
- Fixed `Historical::BatchDownload` truncating file before writing each chunk
2433

2534
## 0.9.0 - 2023-06-13
2635

include/databento/batch.hpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22

33
#include <cstddef>
4+
#include <cstdint>
45
#include <ostream>
56
#include <string>
67
#include <vector>
@@ -23,21 +24,21 @@ struct BatchJob {
2324
Schema schema;
2425
std::string start;
2526
std::string end;
26-
std::size_t limit;
27+
std::uint64_t limit;
2728
Encoding encoding;
2829
Compression compression;
2930
SplitDuration split_duration;
30-
std::size_t split_size;
31+
std::uint64_t split_size;
3132
bool split_symbols;
3233
Packaging packaging;
3334
Delivery delivery;
34-
std::size_t record_count;
35+
std::uint64_t record_count;
3536
// Size in bytes.
36-
std::size_t billed_size;
37+
std::uint64_t billed_size;
3738
// Size in bytes.
38-
std::size_t actual_size;
39+
std::uint64_t actual_size;
3940
// Size in bytes.
40-
std::size_t package_size;
41+
std::uint64_t package_size;
4142
JobState state;
4243
std::string ts_received;
4344
// Empty if it hasn't been queued.
@@ -54,7 +55,7 @@ struct BatchJob {
5455
// Description of a batch file.
5556
struct BatchFileDesc {
5657
std::string filename;
57-
std::size_t size;
58+
std::uint64_t size;
5859
std::string hash;
5960
std::string https_url;
6061
std::string ftp_url;

include/databento/dbn.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@
1010

1111
namespace databento {
1212
struct MappingInterval {
13+
// The start date of the interval (inclusive) as
1314
// YYYYMMDD e.g. 2022-10-08 is represented as 20221008
1415
std::uint32_t start_date;
16+
// The end date of the interval (exclusive) as
1517
// YYYYMMDD e.g. 2022-10-08 is represented as 20221008
1618
std::uint32_t end_date;
1719
std::string symbol;

include/databento/detail/json_helpers.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ template <>
7777
std::string ParseAt(const std::string& endpoint, const nlohmann::json& json,
7878
const std::string& key);
7979
template <>
80-
std::size_t ParseAt(const std::string& endpoint, const nlohmann::json& json,
81-
const std::string& key);
80+
std::uint64_t ParseAt(const std::string& endpoint, const nlohmann::json& json,
81+
const std::string& key);
8282
template <>
8383
double ParseAt(const std::string& endpoint, const nlohmann::json& json,
8484
const std::string& key);

include/databento/historical.hpp

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#pragma once
22

3-
#include <cstddef> // size_t
43
#include <cstdint>
54
#include <map> // map, multimap
65
#include <string>
@@ -51,17 +50,17 @@ class Historical {
5150
Schema schema,
5251
const DateTimeRange<UnixNanos>& datetime_range,
5352
Compression compression, SplitDuration split_duration,
54-
std::size_t split_size, Packaging packaging,
53+
std::uint64_t split_size, Packaging packaging,
5554
Delivery delivery, SType stype_in, SType stype_out,
56-
std::size_t limit);
55+
std::uint64_t limit);
5756
BatchJob BatchSubmitJob(const std::string& dataset,
5857
const std::vector<std::string>& symbols,
5958
Schema schema,
6059
const DateTimeRange<std::string>& datetime_range,
6160
Compression compression, SplitDuration split_duration,
62-
std::size_t split_size, Packaging packaging,
61+
std::uint64_t split_size, Packaging packaging,
6362
Delivery delivery, SType stype_in, SType stype_out,
64-
std::size_t limit);
63+
std::uint64_t limit);
6564
std::vector<BatchJob> BatchListJobs();
6665
std::vector<BatchJob> BatchListJobs(const std::vector<JobState>& states,
6766
UnixNanos since);
@@ -102,42 +101,42 @@ class Historical {
102101
std::vector<DatasetConditionDetail> MetadataGetDatasetCondition(
103102
const std::string& dataset, const DateRange& date_range);
104103
DatasetRange MetadataGetDatasetRange(const std::string& dataset);
105-
std::size_t MetadataGetRecordCount(
104+
std::uint64_t MetadataGetRecordCount(
106105
const std::string& dataset,
107106
const DateTimeRange<UnixNanos>& datetime_range,
108107
const std::vector<std::string>& symbols, Schema schema);
109-
std::size_t MetadataGetRecordCount(
108+
std::uint64_t MetadataGetRecordCount(
110109
const std::string& dataset,
111110
const DateTimeRange<std::string>& datetime_range,
112111
const std::vector<std::string>& symbols, Schema schema);
113-
std::size_t MetadataGetRecordCount(
112+
std::uint64_t MetadataGetRecordCount(
114113
const std::string& dataset,
115114
const DateTimeRange<UnixNanos>& datetime_range,
116115
const std::vector<std::string>& symbols, Schema schema, SType stype_in,
117-
std::size_t limit);
118-
std::size_t MetadataGetRecordCount(
116+
std::uint64_t limit);
117+
std::uint64_t MetadataGetRecordCount(
119118
const std::string& dataset,
120119
const DateTimeRange<std::string>& datetime_range,
121120
const std::vector<std::string>& symbols, Schema schema, SType stype_in,
122-
std::size_t limit);
123-
std::size_t MetadataGetBillableSize(
121+
std::uint64_t limit);
122+
std::uint64_t MetadataGetBillableSize(
124123
const std::string& dataset,
125124
const DateTimeRange<UnixNanos>& datetime_range,
126125
const std::vector<std::string>& symbols, Schema schema);
127-
std::size_t MetadataGetBillableSize(
126+
std::uint64_t MetadataGetBillableSize(
128127
const std::string& dataset,
129128
const DateTimeRange<std::string>& datetime_range,
130129
const std::vector<std::string>& symbols, Schema schema);
131-
std::size_t MetadataGetBillableSize(
130+
std::uint64_t MetadataGetBillableSize(
132131
const std::string& dataset,
133132
const DateTimeRange<UnixNanos>& datetime_range,
134133
const std::vector<std::string>& symbols, Schema schema, SType stype_in,
135-
std::size_t limit);
136-
std::size_t MetadataGetBillableSize(
134+
std::uint64_t limit);
135+
std::uint64_t MetadataGetBillableSize(
137136
const std::string& dataset,
138137
const DateTimeRange<std::string>& datetime_range,
139138
const std::vector<std::string>& symbols, Schema schema, SType stype_in,
140-
std::size_t limit);
139+
std::uint64_t limit);
141140
double MetadataGetCost(const std::string& dataset,
142141
const DateTimeRange<UnixNanos>& datetime_range,
143142
const std::vector<std::string>& symbols,
@@ -149,11 +148,11 @@ class Historical {
149148
double MetadataGetCost(const std::string& dataset,
150149
const DateTimeRange<UnixNanos>& datetime_range,
151150
const std::vector<std::string>& symbols, Schema schema,
152-
FeedMode mode, SType stype_in, std::size_t limit);
151+
FeedMode mode, SType stype_in, std::uint64_t limit);
153152
double MetadataGetCost(const std::string& dataset,
154153
const DateTimeRange<std::string>& datetime_range,
155154
const std::vector<std::string>& symbols, Schema schema,
156-
FeedMode mode, SType stype_in, std::size_t limit);
155+
FeedMode mode, SType stype_in, std::uint64_t limit);
157156

158157
/*
159158
* Symbology API
@@ -198,14 +197,14 @@ class Historical {
198197
const DateTimeRange<UnixNanos>& datetime_range,
199198
const std::vector<std::string>& symbols,
200199
Schema schema, SType stype_in, SType stype_out,
201-
std::size_t limit,
200+
std::uint64_t limit,
202201
const MetadataCallback& metadata_callback,
203202
const RecordCallback& record_callback);
204203
void TimeseriesGetRange(const std::string& dataset,
205204
const DateTimeRange<std::string>& datetime_range,
206205
const std::vector<std::string>& symbols,
207206
Schema schema, SType stype_in, SType stype_out,
208-
std::size_t limit,
207+
std::uint64_t limit,
209208
const MetadataCallback& metadata_callback,
210209
const RecordCallback& record_callback);
211210
// Stream historical market data to a file at `path`. Returns a `DbnFileStore`
@@ -226,12 +225,12 @@ class Historical {
226225
const std::string& dataset,
227226
const DateTimeRange<UnixNanos>& datetime_range,
228227
const std::vector<std::string>& symbols, Schema schema, SType stype_in,
229-
SType stype_out, std::size_t limit, const std::string& file_path);
228+
SType stype_out, std::uint64_t limit, const std::string& file_path);
230229
DbnFileStore TimeseriesGetRangeToFile(
231230
const std::string& dataset,
232231
const DateTimeRange<std::string>& datetime_range,
233232
const std::vector<std::string>& symbols, Schema schema, SType stype_in,
234-
SType stype_out, std::size_t limit, const std::string& file_path);
233+
SType stype_out, std::uint64_t limit, const std::string& file_path);
235234

236235
private:
237236
using HttplibParams = std::multimap<std::string, std::string>;
@@ -243,8 +242,8 @@ class Historical {
243242
std::vector<BatchJob> BatchListJobs(const HttplibParams& params);
244243
std::vector<DatasetConditionDetail> MetadataGetDatasetCondition(
245244
const HttplibParams& params);
246-
std::size_t MetadataGetRecordCount(const HttplibParams& params);
247-
std::size_t MetadataGetBillableSize(const HttplibParams& params);
245+
std::uint64_t MetadataGetRecordCount(const HttplibParams& params);
246+
std::uint64_t MetadataGetBillableSize(const HttplibParams& params);
248247
double MetadataGetCost(const HttplibParams& params);
249248
FieldsByDatasetEncodingAndSchema MetadataListFields(
250249
const HttplibParams& params);

src/detail/json_helpers.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ std::string ParseAt(const std::string& endpoint, const nlohmann::json& json,
5858
}
5959

6060
template <>
61-
std::size_t ParseAt(const std::string& endpoint, const nlohmann::json& json,
62-
const std::string& key) {
61+
std::uint64_t ParseAt(const std::string& endpoint, const nlohmann::json& json,
62+
const std::string& key) {
6363
const auto& val_json = CheckedAt(endpoint, json, key);
6464
if (val_json.is_null()) {
6565
return 0;

0 commit comments

Comments
 (0)