From 0c55606145b6c5d9a303b19b3dba4996ec3ed3a9 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Thu, 25 Jun 2015 02:13:15 +0200 Subject: Split out common event code for future use --- src/event_utils.hh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/event_utils.hh (limited to 'src/event_utils.hh') diff --git a/src/event_utils.hh b/src/event_utils.hh new file mode 100644 index 0000000..8151d64 --- /dev/null +++ b/src/event_utils.hh @@ -0,0 +1,58 @@ +#ifndef EVENT_UTILS_HH +#define EVENT_UTILS_HH + +#include +#include +#include + +namespace stuff { + +class Config; +class Event; +class SenderClient; + +class EventUtils { +public: + virtual ~EventUtils(); + + virtual std::unique_ptr create( + const std::string& name, time_t start) = 0; + virtual void created(Event* event) = 0; + + virtual std::vector> all() = 0; + virtual std::unique_ptr next() = 0; + + virtual bool good() const = 0; + + virtual void cancel(Event* event, size_t index) = 0; + + virtual void updated(Event* event, int64_t was_first) = 0; + + virtual void going(Event* event, bool going, const std::string& user, + const std::string& owner) = 0; + + virtual const std::string& channel() const = 0; + + static std::unique_ptr create( + const std::string& channel, + std::function error_cb, + Config* config, + SenderClient* sender); + + static const double ONE_DAY_IN_SEC; + static const double ONE_WEEK_IN_SEC; + static const double ONE_YEAR_IN_SEC; + + static std::string format_date(time_t date); + +protected: + EventUtils(); + +private: + EventUtils(const EventUtils&) = delete; + EventUtils& operator=(const EventUtils&) = delete; +}; + +} // namespace stuff + +#endif /* EVENT_UTILS_HH */ -- cgit v1.2.3-70-g09d2