00001 #ifndef GLUE_DEV1D_H
00002 #define GLUE_DEV1D_H
00003 
00004 #include "event/event.H"
00005 #include "dev/dev.H"
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 class DllImpExp DEVice_1d : public DEVice {
00014   protected:
00015    Greal      &_cur;
00016 
00017   public :
00018                 DEVice_1d(Cstr_ptr &devname, Cstr_ptr &evtname);
00019    virtual     ~DEVice_1d()                 { }
00020 
00021    double       cur       ()          const { return _cur; }
00022    void         set_cur   (double &p);
00023 
00024   virtual void event_delta(double );
00025    virtual void event(double );
00026 
00027     
00028     DEFINE_DERIVED_TYPE(DEVice_1d, DEVice, const DEVice *);
00029 };
00030 
00031 MAKE_PTR_SUBC(EVENT1d, EVENT);
00032 class DllImpExp EVENT1d : public EVENT {
00033  public:
00034 
00035    EVENT1d(Cstr_ptr    &n);
00036    EVENT1d(Cstr_ptr    &n, double &o, double &c);
00037    EVENT1d(EVENTsource *s);
00038    EVENT1d(DEVice_1d *s, double o, double c):EVENT(s),_old(o),_cur(c),_dev(s){}
00039 
00040    double        cur    ()            const  { return _cur; }
00041    double        old    ()            const  { return _old; }
00042    double        delta  ()            const;
00043  
00044    void          set_cur(double p)    const  { }
00045 
00046     
00047 
00048    DEFINE_DERIVED_TYPE(EVENT1d, EVENT, cEVENTptr);
00049    static EVENT1dptr cast(cEVENTptr &e) { return EVENT1d::isa(e) ? 
00050                                                  (EVENT1d *)&*e : 0; }
00051 
00052 
00053  protected:
00054     
00055    virtual bool compare(cEVENTptr &e) const { return true; }
00056 
00057    double      _old;
00058    double      _cur;
00059 
00060    DEVice_1d *_dev;
00061 };
00062 
00063 
00064 
00065 
00066 
00067 #endif