Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- transaction user_transactions_iterator::wait_next_transaction() noexcept {
- std::unique_lock ul(pointer_on_user_->user_mutex);
- pointer_on_user_->cond.wait(
- ul, [&]() { return size_ < pointer_on_user_->operations.size(); });
- return pointer_on_user_->operations[size_++];
- }
- user::user() = default;
- user::user(const std::string &new_name)
- : user_name(new_name), balance(INITIAL_BALANCE) {
- std::unique_lock ul(user_mutex);
- operations.emplace_back(nullptr, INITIAL_BALANCE,
- "Initial deposit for " + new_name);
- cond.notify_all();
- }
- [[nodiscard]] int user::balance_xts() const {
- std::unique_lock ul(user_mutex);
- return balance;
- }
- [[nodiscard]] std::string user::name() const noexcept {
- return user_name;
- }
- [[nodiscard]] user_transactions_iterator user::monitor() const noexcept {
- std::unique_lock ul(user_mutex);
- return user_transactions_iterator{operations.size(), this};
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement