20constexpr double absent = std::numeric_limits<double>::quiet_NaN();
119 const std::shared_ptr<const CommandObservation>&
observation()
const {
return observation_; }
120 const std::optional<ReviewReceipt>&
review()
const {
return review_; }
121 const std::optional<SizingRevision>&
sizing_revision()
const {
return sizing_revision_; }
123 std::shared_ptr<const CommandObservation> observation_;
124 std::optional<ReviewReceipt> review_;
125 std::optional<SizingRevision> sizing_revision_;
167 std::vector<BookObservation>
book;
180using Event = std::variant<CommandEvent, ReviewEvent, SizingEvent>;
181using FieldValue = std::variant<uint64_t, int64_t, double, std::string>;
201 const std::vector<Event>&
events()
const {
return events_; }
205 void retain(
const std::vector<uint64_t>& sequences);
209 void release_allocation(uint64_t
sequence)
noexcept;
210 uint64_t next_sequence_ = 1;
211 uint64_t active_allocations_ = 0;
212 std::vector<uint64_t> outstanding_sequences_;
213 std::vector<Event> events_;
228 : journal_(&journal), sequence_(
sequence) {}
242 void bind(
Draft& draft, std::optional<SizingObservation> sizing,
243 double explicit_equity,
double explicit_price);
247 std::vector<BookObservation> before_;
261 event_.resolutions.push_back(result);
264 int64_t peer_priority,
double quantity) {
266 event_.resolutions.push_back(result);
return result;
277std::string
read_string(
const std::vector<Field>&
fields,
const std::string& path);
Allocation & operator=(Allocation &&)=delete
Allocation(const Allocation &)=delete
Allocation & operator=(const Allocation &)=delete
uint64_t sequence() const
CommandCapture(Allocation allocation, CommandObservation input, std::vector< BookObservation > before, std::function< void(CommandEvent)> complete)
CommandCapture(const CommandCapture &)=delete
void bind(Draft &draft, std::optional< SizingObservation > sizing, double explicit_equity, double explicit_price)
~CommandCapture() noexcept(false)
const CommandObservation & input() const
CommandCapture & operator=(const CommandCapture &)=delete
void outcome(Outcome outcome)
const std::shared_ptr< const CommandObservation > & observation() const
void reviewed(ReviewReceipt receipt)
const std::optional< ReviewReceipt > & review() const
void bind(std::shared_ptr< const CommandObservation > observation)
void sizing_revised(SizingRevision receipt)
const std::optional< SizingRevision > & sizing_revision() const
void abandon(uint64_t sequence) noexcept
Journal & operator=(const Journal &other)
uint64_t sequence_frontier() const
const std::vector< Event > & events() const
void reflect(const std::string &path, const FieldVisitor &visit) const
void retain(const std::vector< uint64_t > &sequences)
InstructionResolution transaction(uint64_t incarnation, uint64_t peer, int64_t priority, int64_t peer_priority, double quantity)
~ReviewCapture() noexcept(false)
ReviewCapture(Allocation allocation, ReviewEvent event, std::function< void(ReviewEvent)> complete)
ReviewReceipt receipt_for(const Draft &draft) const
ReviewCapture & operator=(const ReviewCapture &)=delete
ReviewCapture(const ReviewCapture &)=delete
void reject(uint64_t incarnation)
std::variant< uint64_t, int64_t, double, std::string > FieldValue
uint64_t read_unsigned(const std::vector< Field > &fields, const std::string &path)
std::string read_string(const std::vector< Field > &fields, const std::string &path)
int64_t read_integer(const std::vector< Field > &fields, const std::string &path)
std::vector< Field > fields(const Draft &draft)
std::function< void(const Field &)> FieldVisitor
uint64_t sequence(const Event &event)
double read_double(const std::vector< Field > &fields, const std::string &path)
void reflect(const Draft &value, const std::string &path, const FieldVisitor &visit)
std::variant< CommandEvent, ReviewEvent, SizingEvent > Event
@ RejectedFrozenMarketCap
@ OpeningRejectedReductionAdmitted
admission::Draft MarketAdmissionDraft
admission::Journal MarketAdmissionJournal
std::shared_ptr< const CommandObservation > observation
std::vector< BookObservation > before
std::vector< uint64_t > removed
uint64_t admitted_incarnation
std::optional< SizingObservation > original_sizing
double prior_close_quantity
double requested_quantity
double quantized_fixed_quantity
Configuration configuration
double intraday_loss_limit
double default_quantity_value
int default_quantity_type
double transaction_quantity
uint64_t peer_incarnation
std::vector< InstructionResolution > resolutions
std::vector< BookObservation > book
Configuration configuration
std::vector< BookObservation > reviewed
std::vector< uint64_t > causes
double affordability_equity_after
double affordability_equity_before