/* * Copyright 2013 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License version 3, as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * * Authors: * Charles Kerr */ #ifndef INDICATOR_DATETIME_PLANNER_H #define INDICATOR_DATETIME_PLANNER_H #include #include #include #include namespace unity { namespace indicator { namespace datetime { /** * \brief Simple appointment book * * @see EdsPlanner * @see State */ class Planner { public: virtual ~Planner() =default; /** * \brief Timestamp used to determine the appointments in the `upcoming' and `thisMonth' properties. * Setting this value will cause the planner to re-query its backend and * update the `upcoming' and `thisMonth' properties. */ core::Property time; /** * \brief The next few appointments that follow the time specified in the time property. */ core::Property> upcoming; /** * \brief The appointments that occur in the same month as the time property */ core::Property> thisMonth; protected: Planner() =default; private: // disable copying Planner(const Planner&) =delete; Planner& operator=(const Planner&) =delete; }; } // namespace datetime } // namespace indicator } // namespace unity #endif // INDICATOR_DATETIME_PLANNER_H