00001 #ifndef PSEVT_HISTI_H 00002 #define PSEVT_HISTI_H 00003 00004 //-------------------------------------------------------------------------- 00005 // File and Version Information: 00006 // $Id: 00007 // 00008 // Description: 00009 // Class HistI. 00010 // 00011 //------------------------------------------------------------------------ 00012 00013 //----------------- 00014 // C/C++ Headers -- 00015 //----------------- 00016 #include <boost/utility.hpp> 00017 00018 //---------------------- 00019 // Base Class Headers -- 00020 //---------------------- 00021 00022 //------------------------------- 00023 // Collaborating Class Headers -- 00024 //------------------------------- 00025 #include "PSEvt/EventKey.h" 00026 00027 //------------------------------------ 00028 // Collaborating Class Declarations -- 00029 //------------------------------------ 00030 00031 // --------------------- 00032 // -- Class Interface -- 00033 // --------------------- 00034 00035 namespace PSEvt { 00036 00037 /** 00038 * @ingroup PSEvt 00039 * 00040 * @brief Class defining a history interface. 00041 * 00042 * This class supports a simple history interface, total number of 00043 * updates, and total number of updates for a specific EventKey. 00044 * 00045 * @see ProxyDictI 00046 * 00047 * @version \$Id: 00048 * 00049 * @author David Schneider 00050 */ 00051 00052 class HistI : boost::noncopyable { 00053 public: 00054 00055 // Destructor 00056 virtual ~HistI () {} 00057 00058 /** 00059 * @brief implement to provide number of updates 00060 * 00061 * Derived classes can provide a simple history mechanism by 00062 * overriding this class and returning the number of updates 00063 * 00064 * @return total number of updates 00065 */ 00066 virtual long totalUpdates() const = 0; 00067 00068 /** 00069 * @brief implement to provide total number of updates for a key. 00070 * 00071 * Derived classes can implement this to provide a simple history on a key - 00072 * the total number of updates 00073 * 00074 * @param[in] key EventKey to get updates for 00075 * @return number of updates 00076 */ 00077 virtual long updates(const EventKey & key) const = 0; 00078 }; 00079 00080 } // namespace PSEvt 00081 00082 #endif // PSEVT_HISTI_H