Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages | Examples

ValueChangeListener.h

00001 #ifndef _RDA_VALUE_CHANGE_LISTENER_
00002 #define _RDA_VALUE_CHANGE_LISTENER_
00003 //
00004 // 22 Mar 2001, N.Trofimov
00005 // 04 Sep 2001 NNT
00006 //    - added fast update methods
00007 // 09 Dec 2002 NNT for RDA-2.0
00008 //    - added getClientInfo
00009 // 09 Aug 2005 KK  - added fast update for composite data (multiple tags)
00010 //
00011 #include <rda/IOPoint.h>
00012 #include <rda/Exception.h>
00013 #include <rda/Data.h>
00014 #include <rda/ClientInfo.h>
00015 
00089 class rdaValueChangeListener
00090 {
00091    public:
00092    
00096    virtual const rdaClientInfo* getClientInfo() = 0;
00097 
00101    virtual bool isOnChange() = 0;
00102 
00125       virtual void  valueUpdated(const rdaData& oldValue, const rdaData& newValue,
00126                          bool hasChanged) = 0;
00127 
00141       virtual void ioFailed(const rdaIOError& error) = 0;
00142 
00144      
00145 //
00146 // Fast update methods
00147 //
00148 
00165       static void flush(const rdaData& stamp);
00166 
00175 
00186       virtual void valueUpdated(bool value, bool hasChanged) = 0;
00197       virtual void valueUpdated(signed char value, bool hasChanged) = 0;
00208       virtual void valueUpdated(short value, bool hasChanged) = 0;
00219       virtual void valueUpdated(long value, bool hasChanged) = 0;
00230       virtual void valueUpdated(longlong value, bool hasChanged) = 0;
00241       virtual void valueUpdated(float value, bool hasChanged) = 0;
00252       virtual void valueUpdated(double value, bool hasChanged) = 0;
00263      virtual void valueUpdated(const char* value, bool hasChanged) = 0;
00264 
00276       virtual void
00277       valueUpdated(const bool* value, unsigned long size, bool hasChanged) = 0;
00289      virtual void
00290      valueUpdated(const signed char* value, unsigned long size, bool hasChanged) = 0;
00302       virtual void
00303       valueUpdated(const short* value, unsigned long size, bool hasChanged) = 0;
00315       virtual void
00316       valueUpdated(const long* value, unsigned long size, bool hasChanged) = 0;
00328       virtual void
00329       valueUpdated(const longlong* value, unsigned long size, bool hasChanged) = 0;
00341       virtual void
00342       valueUpdated(const float* value, unsigned long size, bool hasChanged) = 0;
00354       virtual void
00355       valueUpdated(const double* value, unsigned long size, bool hasChanged) = 0;
00367       virtual void
00368       valueUpdated(const char** value, unsigned long size, bool hasChanged) = 0;
00379       virtual void 
00380       valueUpdated(const rdaData& value, bool hasChanged) = 0;              
00399       virtual void
00400       ioFailed(const char* cat, int code, const char* msg, bool newError) = 0;
00401            
00403 
00404    protected:
00405 
00406       rdaValueChangeListener() {}
00407       virtual ~rdaValueChangeListener() {}
00408 
00409 };
00410 
00411 #endif

RDA-2.3 documentation - 27 Jun 2007 - N.Trofimov