text: // Copyright (c) 2011-2017 The Cryptonote developers
  // Copyright (c) 2017-2018 The Circle Foundation & Conceal Devs
  // Copyright (c) 2018-2019 Conceal Network & Conceal Devs
  // Copyright (c) 2019-2020 The Wallet 2 Wallet Team
  // Distributed under the MIT/X11 software license, see the accompanying
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
  
  #pragma once
  
  #include <chrono>
  
  namespace System {
  
  class Dispatcher;
  
  class Timer {
  public:
    Timer();
    explicit Timer(Dispatcher& dispatcher);
    Timer(const Timer&) = delete;
    Timer(Timer&& other);
    ~Timer();
    Timer& operator=(const Timer&) = delete;
    Timer& operator=(Timer&& other);
    void sleep(std::chrono::nanoseconds duration);
  
  private:
    Dispatcher* dispatcher;
    void* context;
  };
  
  }
  