#pragma once
#include <memory>

namespace myapp::async {

class event_loop
{
public:
    virtual ~event_loop() = default;
    static std::shared_ptr<event_loop> create();
    static std::shared_ptr<event_loop> getDefault();
    virtual void run() = 0;
    virtual void stop() = 0;
};

} /* namespace myapp::async */
