diff --git a/CHANGELOG.md b/CHANGELOG.md index f7bb2de..d924e52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.46.1 - 2026-01-27 + +### Enhancements +- Added new publisher for Blue Ocean ATS (`OCEA_MEMOIR_OCEA`) + ## 0.46.0 - 2026-01-20 ### Enhancements diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fe3f08..88ddd42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.24..4.2) project( databento - VERSION 0.46.0 + VERSION 0.46.1 LANGUAGES CXX DESCRIPTION "Official Databento client library" ) diff --git a/include/databento/publishers.hpp b/include/databento/publishers.hpp index 016d18a..28bb8af 100644 --- a/include/databento/publishers.hpp +++ b/include/databento/publishers.hpp @@ -111,6 +111,8 @@ enum class Venue : std::uint16_t { Xeee = 51, // Cboe Futures Exchange Xcbf = 52, + // Blue Ocean ATS + Ocea = 53, }; // A source of data. @@ -195,6 +197,8 @@ enum class Dataset : std::uint16_t { XeeeEobi = 39, // Cboe Futures Exchange PITCH XcbfPitch = 40, + // Blue Ocean ATS MEMOIR Depth + OceaMemoir = 41, }; // A specific Venue from a specific data source. @@ -411,6 +415,8 @@ enum class Publisher : std::uint16_t { XcbfPitchXcbf = 105, // Cboe Futures Exchange - Off-Market Trades XcbfPitchXoff = 106, + // Blue Ocean ATS MEMOIR + OceaMemoirOcea = 107, }; // Get a Publisher's Venue. diff --git a/pkg/PKGBUILD b/pkg/PKGBUILD index d1afa91..26f6ddd 100644 --- a/pkg/PKGBUILD +++ b/pkg/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Databento _pkgname=databento-cpp pkgname=databento-cpp-git -pkgver=0.46.0 +pkgver=0.46.1 pkgrel=1 pkgdesc="Official C++ client for Databento" arch=('any') diff --git a/src/publishers.cpp b/src/publishers.cpp index a432379..3a17828 100644 --- a/src/publishers.cpp +++ b/src/publishers.cpp @@ -167,6 +167,9 @@ const char* ToString(Venue venue) { case Venue::Xcbf: { return "XCBF"; } + case Venue::Ocea: { + return "OCEA"; + } default: { return "Unknown"; } @@ -336,6 +339,9 @@ Venue FromString(const std::string& str) { if (str == "XCBF") { return Venue::Xcbf; } + if (str == "OCEA") { + return Venue::Ocea; + } throw InvalidArgumentError{"FromString", "str", "unknown value '" + str + '\''}; } @@ -462,6 +468,9 @@ const char* ToString(Dataset dataset) { case Dataset::XcbfPitch: { return "XCBF.PITCH"; } + case Dataset::OceaMemoir: { + return "OCEA.MEMOIR"; + } default: { return "Unknown"; } @@ -595,6 +604,9 @@ Dataset FromString(const std::string& str) { if (str == "XCBF.PITCH") { return Dataset::XcbfPitch; } + if (str == "OCEA.MEMOIR") { + return Dataset::OceaMemoir; + } throw InvalidArgumentError{"FromString", "str", "unknown value '" + str + '\''}; } @@ -919,6 +931,9 @@ Venue PublisherVenue(Publisher publisher) { case Publisher::XcbfPitchXoff: { return Venue::Xoff; } + case Publisher::OceaMemoirOcea: { + return Venue::Ocea; + } default: { throw InvalidArgumentError{ "PublisherVenue", "publisher", @@ -1247,6 +1262,9 @@ Dataset PublisherDataset(Publisher publisher) { case Publisher::XcbfPitchXoff: { return Dataset::XcbfPitch; } + case Publisher::OceaMemoirOcea: { + return Dataset::OceaMemoir; + } default: { throw InvalidArgumentError{ "PublisherDataset", "publisher", @@ -1576,6 +1594,9 @@ const char* ToString(Publisher publisher) { case Publisher::XcbfPitchXoff: { return "XCBF.PITCH.XOFF"; } + case Publisher::OceaMemoirOcea: { + return "OCEA.MEMOIR.OCEA"; + } default: { return "Unknown"; } @@ -1907,6 +1928,9 @@ Publisher FromString(const std::string& str) { if (str == "XCBF.PITCH.XOFF") { return Publisher::XcbfPitchXoff; } + if (str == "OCEA.MEMOIR.OCEA") { + return Publisher::OceaMemoirOcea; + } throw InvalidArgumentError{"FromString", "str", "unknown value '" + str + '\''}; }