Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

/ps/src/dsc/co/mw/mwfwk/cmwfwIOValue.h

Go to the documentation of this file.
00001 #ifndef __CMWFWIOVALUE_H__
00002 #define __CMWFWIOVALUE_H__
00003 
00004 #include "cmwfwTypes.h"
00005 
00006 
00007 
00008 template<class T> class cmwfwList;
00009 typedef cmwfwList<cmwfwValueChangeListener*> vcl_list_type;
00010 
00011 
00012 class cmwfwIOValue{
00013  public:
00014   friend   class               cmwfwDeviceServer;
00015   friend   class               cmwfwPoller;
00016   friend   class               cmwfwForwarder;
00017 
00018                                                            cmwfwIOValue(const cmwfwIOPoint& iop);
00019                                                            ~cmwfwIOValue();
00020 
00021 
00022  protected:
00023  private:
00024                    bool                 addListener(cmwfwValueChangeListener* l);
00025                    void                 removeListener(cmwfwValueChangeListener* l);
00026                    void                 getIOPoint(cmwfwIOPoint& iop);
00027                    bool                 hasNoListeners();
00028                    void                 update(const cmwfwData& data,
00029                                                                            const cmwfwValueQualifier& vq);
00030                    void                 update(const cmwfwIOError& error);
00031                    void                 updateNewListener(cmwfwValueChangeListener* l);
00032 
00033                    void                 processListeners(const cmwfwData& old_data,
00034                                                                                                  const cmwfwData& new_data,
00035                                                                                                  const cmwfwValueQualifier& vq);
00036                    void                 heaperr(int line);
00037 
00038                    bool                 never_updated;
00039 
00040                    cmwfwIOPoint*        my_iop;
00041 
00042                    bool                 old_data_is_scalar;
00043                    cmwfwData            old_data;
00044                    cmwfwValueQualifier  old_vq;
00045 
00046                    double               old_acquisitionStamp;
00047 
00048                    bool                 use_old_io_error;
00049                    cmwfwIOError*        old_io_error;
00050 
00051                    vcl_list_type*       valuechangelisteners; //Not thread safe
00052                                                               //at this level
00053 };
00054 
00055 
00056 #endif //#ifndef __CMWFWIOVALUE_H__

Generated at Thu May 10 11:28:58 2001 for C.E.R.N.-PSControlsMiddlewareFramework by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001