29 const std::optional<OrderRiskDay>&
day()
const {
return day_; }
32 const std::optional<CloseQuotaTransfer>&
transfer()
const {
return transfer_; }
37 if (day_ && *day_ ==
day)
return;
43 void latch() {
if (day_) latched_ =
true; }
46 if (transfer_ && transfer_->inheritor == incarnation)
expire_transfer();
49 uint64_t latest_committed_fill)
const {
50 return transfer_ && day_ && *day_ ==
day && transfer_->day ==
day
51 && transfer_->source_bar == bar && incarnation != 0
52 && transfer_->inheritor == incarnation
53 && transfer_->close_fill == latest_committed_fill;
62 uint64_t latest_committed_fill) {
65 latest_committed_fill);
68 else ++charged_slots_;
76 int source_bar, uint64_t inheritor) {
84 if (charged_slots_ >= limit)
latch();
88 std::optional<OrderRiskDay> day_;
89 int charged_slots_ = 0;
90 bool latched_ =
false;
91 std::optional<CloseQuotaTransfer> transfer_;
bool can_inherit(OrderRiskDay day, int bar, uint64_t incarnation, uint64_t latest_committed_fill) const
void enter_day(OrderRiskDay day)
void count_committed_close(OrderRiskDay day, int limit, uint64_t close_fill, int source_bar, uint64_t inheritor)
int charged_slots() const
QuotaAdmission admit_matched_attempt(OrderRiskDay day, int limit, int bar, uint64_t incarnation, uint64_t latest_committed_fill)
const std::optional< OrderRiskDay > & day() const
void decline(uint64_t incarnation)
const std::optional< CloseQuotaTransfer > & transfer() const
bool operator==(OrderRiskDay a, OrderRiskDay b)
bool operator!=(OrderRiskDay a, OrderRiskDay b)