Skip to content

Commit cb63347

Browse files
authored
VER: Release 0.39.0
2 parents b7061b1 + 96a81f3 commit cb63347

File tree

10 files changed

+45
-43
lines changed

10 files changed

+45
-43
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## 0.39.0 - 2025-07-15
4+
5+
### Breaking changes
6+
- Renamed the following Venue, Dataset, and Publishers:
7+
- `XEER` to `XEEE`
8+
- `XEER.EOBI` to `XEEE.EOBI`
9+
- `XEER.EOBI.XEER` to `XEEE.EOBI.XEEE`
10+
- `XEER.EOBI.XOFF` to `XEEE.EOBI.XOFF`
11+
12+
### Bug fixes
13+
- Fixed potential corrupted records when upgrading DBN versions in live clients
14+
- Removed unused `Intraday` variant from `DatasetCondition` enum
15+
316
## 0.38.2 - 2025-07-01
417

518
### Enhancements

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.24..4.0)
66

77
project(
88
databento
9-
VERSION 0.38.2
9+
VERSION 0.39.0
1010
LANGUAGES CXX
1111
DESCRIPTION "Official Databento client library"
1212
)

include/databento/enums.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ enum class DatasetCondition : std::uint8_t {
107107
Degraded,
108108
Pending,
109109
Missing,
110-
Intraday,
111110
};
112111

113112
// Sentinel values for different DBN record types.

include/databento/live_blocking.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <optional>
88
#include <string>
99
#include <string_view>
10-
#include <utility> // pair
1110
#include <vector>
1211

1312
#include "databento/datetime.hpp" // UnixNanos
@@ -40,8 +39,6 @@ class LiveBlocking {
4039
std::uint16_t Port() const { return port_; }
4140
bool SendTsOut() const { return send_ts_out_; }
4241
VersionUpgradePolicy UpgradePolicy() const { return upgrade_policy_; }
43-
// The the first member of the pair will be true, when the heartbeat interval
44-
// was overridden.
4542
std::optional<std::chrono::seconds> HeartbeatInterval() const {
4643
return heartbeat_interval_;
4744
}

include/databento/live_threaded.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <optional>
88
#include <string>
99
#include <string_view>
10-
#include <utility> // pair
1110
#include <vector>
1211

1312
#include "databento/datetime.hpp" // UnixNanos
@@ -53,8 +52,6 @@ class LiveThreaded {
5352
std::uint16_t Port() const;
5453
bool SendTsOut() const;
5554
VersionUpgradePolicy UpgradePolicy() const;
56-
// The the first member of the pair will be true, when the heartbeat interval
57-
// was overridden.
5855
std::optional<std::chrono::seconds> HeartbeatInterval() const;
5956
const std::vector<LiveSubscription>& Subscriptions() const;
6057
std::vector<LiveSubscription>& Subscriptions();

include/databento/publishers.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ enum class Venue : std::uint16_t {
108108
// Eurex Exchange
109109
Xeur = 50,
110110
// European Energy Exchange
111-
Xeer = 51,
111+
Xeee = 51,
112112
};
113113

114114
// A source of data.
@@ -190,7 +190,7 @@ enum class Dataset : std::uint16_t {
190190
// Eurex EOBI
191191
XeurEobi = 38,
192192
// European Energy Exchange EOBI
193-
XeerEobi = 39,
193+
XeeeEobi = 39,
194194
};
195195

196196
// A specific Venue from a specific data source.
@@ -398,11 +398,11 @@ enum class Publisher : std::uint16_t {
398398
// Eurex EOBI
399399
XeurEobiXeur = 101,
400400
// European Energy Exchange EOBI
401-
XeerEobiXeer = 102,
401+
XeeeEobiXeee = 102,
402402
// Eurex EOBI - Off-Market Trades
403403
XeurEobiXoff = 103,
404404
// European Energy Exchange EOBI - Off-Market Trades
405-
XeerEobiXoff = 104,
405+
XeeeEobiXoff = 104,
406406
};
407407

408408
// Get a Publisher's Venue.

pkg/PKGBUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Maintainer: Databento <support@databento.com>
22
_pkgname=databento-cpp
33
pkgname=databento-cpp-git
4-
pkgver=0.38.2
4+
pkgver=0.39.0
55
pkgrel=1
66
pkgdesc="Official C++ client for Databento"
77
arch=('any')

src/enums.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -234,9 +234,6 @@ const char* ToString(DatasetCondition condition) {
234234
case DatasetCondition::Missing: {
235235
return "missing";
236236
}
237-
case DatasetCondition::Intraday: {
238-
return "intraday";
239-
}
240237
default: {
241238
return "unknown";
242239
}
@@ -1135,9 +1132,6 @@ DatasetCondition FromString(const std::string& str) {
11351132
if (str == "missing") {
11361133
return DatasetCondition::Missing;
11371134
}
1138-
if (str == "intraday") {
1139-
return DatasetCondition::Intraday;
1140-
}
11411135
throw InvalidArgumentError{"FromString<DatasetCondition>", "str",
11421136
"unknown value '" + str + '\''};
11431137
}

src/live_blocking.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,12 @@ const databento::Record* LiveBlocking::NextRecord(
189189
}
190190
}
191191
current_record_ = Record{BufferRecordHeader()};
192-
buffer_.Consume(current_record_.Size());
192+
const auto bytes_to_consume = current_record_.Size();
193193
current_record_ =
194194
DbnDecoder::DecodeRecordCompat(version_, upgrade_policy_, send_ts_out_,
195195
&compat_buffer_, current_record_);
196+
// Can't consume til after upgrade as Consume may shift
197+
buffer_.Consume(bytes_to_consume);
196198
return &current_record_;
197199
}
198200

src/publishers.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,8 @@ const char* ToString(Venue venue) {
161161
case Venue::Xeur: {
162162
return "XEUR";
163163
}
164-
case Venue::Xeer: {
165-
return "XEER";
164+
case Venue::Xeee: {
165+
return "XEEE";
166166
}
167167
default: {
168168
return "Unknown";
@@ -327,8 +327,8 @@ Venue FromString(const std::string& str) {
327327
if (str == "XEUR") {
328328
return Venue::Xeur;
329329
}
330-
if (str == "XEER") {
331-
return Venue::Xeer;
330+
if (str == "XEEE") {
331+
return Venue::Xeee;
332332
}
333333
throw InvalidArgumentError{"FromString<Venue>", "str",
334334
"unknown value '" + str + '\''};
@@ -450,8 +450,8 @@ const char* ToString(Dataset dataset) {
450450
case Dataset::XeurEobi: {
451451
return "XEUR.EOBI";
452452
}
453-
case Dataset::XeerEobi: {
454-
return "XEER.EOBI";
453+
case Dataset::XeeeEobi: {
454+
return "XEEE.EOBI";
455455
}
456456
default: {
457457
return "Unknown";
@@ -580,8 +580,8 @@ Dataset FromString(const std::string& str) {
580580
if (str == "XEUR.EOBI") {
581581
return Dataset::XeurEobi;
582582
}
583-
if (str == "XEER.EOBI") {
584-
return Dataset::XeerEobi;
583+
if (str == "XEEE.EOBI") {
584+
return Dataset::XeeeEobi;
585585
}
586586
throw InvalidArgumentError{"FromString<Dataset>", "str",
587587
"unknown value '" + str + '\''};
@@ -892,13 +892,13 @@ Venue PublisherVenue(Publisher publisher) {
892892
case Publisher::XeurEobiXeur: {
893893
return Venue::Xeur;
894894
}
895-
case Publisher::XeerEobiXeer: {
896-
return Venue::Xeer;
895+
case Publisher::XeeeEobiXeee: {
896+
return Venue::Xeee;
897897
}
898898
case Publisher::XeurEobiXoff: {
899899
return Venue::Xoff;
900900
}
901-
case Publisher::XeerEobiXoff: {
901+
case Publisher::XeeeEobiXoff: {
902902
return Venue::Xoff;
903903
}
904904
default: {
@@ -1214,14 +1214,14 @@ Dataset PublisherDataset(Publisher publisher) {
12141214
case Publisher::XeurEobiXeur: {
12151215
return Dataset::XeurEobi;
12161216
}
1217-
case Publisher::XeerEobiXeer: {
1218-
return Dataset::XeerEobi;
1217+
case Publisher::XeeeEobiXeee: {
1218+
return Dataset::XeeeEobi;
12191219
}
12201220
case Publisher::XeurEobiXoff: {
12211221
return Dataset::XeurEobi;
12221222
}
1223-
case Publisher::XeerEobiXoff: {
1224-
return Dataset::XeerEobi;
1223+
case Publisher::XeeeEobiXoff: {
1224+
return Dataset::XeeeEobi;
12251225
}
12261226
default: {
12271227
throw InvalidArgumentError{
@@ -1537,14 +1537,14 @@ const char* ToString(Publisher publisher) {
15371537
case Publisher::XeurEobiXeur: {
15381538
return "XEUR.EOBI.XEUR";
15391539
}
1540-
case Publisher::XeerEobiXeer: {
1541-
return "XEER.EOBI.XEER";
1540+
case Publisher::XeeeEobiXeee: {
1541+
return "XEEE.EOBI.XEEE";
15421542
}
15431543
case Publisher::XeurEobiXoff: {
15441544
return "XEUR.EOBI.XOFF";
15451545
}
1546-
case Publisher::XeerEobiXoff: {
1547-
return "XEER.EOBI.XOFF";
1546+
case Publisher::XeeeEobiXoff: {
1547+
return "XEEE.EOBI.XOFF";
15481548
}
15491549
default: {
15501550
return "Unknown";
@@ -1862,14 +1862,14 @@ Publisher FromString(const std::string& str) {
18621862
if (str == "XEUR.EOBI.XEUR") {
18631863
return Publisher::XeurEobiXeur;
18641864
}
1865-
if (str == "XEER.EOBI.XEER") {
1866-
return Publisher::XeerEobiXeer;
1865+
if (str == "XEEE.EOBI.XEEE") {
1866+
return Publisher::XeeeEobiXeee;
18671867
}
18681868
if (str == "XEUR.EOBI.XOFF") {
18691869
return Publisher::XeurEobiXoff;
18701870
}
1871-
if (str == "XEER.EOBI.XOFF") {
1872-
return Publisher::XeerEobiXoff;
1871+
if (str == "XEEE.EOBI.XOFF") {
1872+
return Publisher::XeeeEobiXoff;
18731873
}
18741874
throw InvalidArgumentError{"FromString<Publisher>", "str",
18751875
"unknown value '" + str + '\''};

0 commit comments

Comments
 (0)