Advertisement
kolbka_

Untitled

Feb 26th, 2022
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. transaction user_transactions_iterator::wait_next_transaction() noexcept {
  2. std::unique_lock ul(pointer_on_user_->user_mutex);
  3. pointer_on_user_->cond.wait(
  4. ul, [&]() { return size_ < pointer_on_user_->operations.size(); });
  5. return pointer_on_user_->operations[size_++];
  6. }
  7.  
  8. user::user() = default;
  9. user::user(const std::string &new_name)
  10. : user_name(new_name), balance(INITIAL_BALANCE) {
  11. std::unique_lock ul(user_mutex);
  12. operations.emplace_back(nullptr, INITIAL_BALANCE,
  13. "Initial deposit for " + new_name);
  14. cond.notify_all();
  15. }
  16. [[nodiscard]] int user::balance_xts() const {
  17. std::unique_lock ul(user_mutex);
  18. return balance;
  19. }
  20.  
  21. [[nodiscard]] std::string user::name() const noexcept {
  22. return user_name;
  23. }
  24.  
  25. [[nodiscard]] user_transactions_iterator user::monitor() const noexcept {
  26. std::unique_lock ul(user_mutex);
  27. return user_transactions_iterator{operations.size(), this};
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement