class myPV : public casPV { public: myPV(myServer& serverIn,char* nameIn); virtual ~myPV(void); virtual void destroy(void); virtual caStatus read(const casCtx &, gdd &prototype); virtual caStatus write(const casCtx &, gdd &dd); virtual aitEnum bestExternalType(void) const; virtual caStatus interestRegister(void); virtual void interestDelete(void); virtual const char *getName() const; private: myServer& server; char *pvName; int interest; }; myPV::myPV (myServer& svrIN,char * nameIn): server(svrIN),interest(0) { pvName = new char [strlen(nameIn)+1]; strcpy(pvName,nameIn); } caStatus myPV::read(const casCtx&, gdd &dd) { dd.put(server.value); return S_casApp_success; } caStatus myPV::write(const casCtx&, gdd &dd) { aitFloat64 newValue; dd.get(&newValue, aitEnumFloat64); server.value->put(newValue); if (interest) postEvent(server.valueEventMask,*value); return S_casApp_success; } aitEnum myPV::interestRegister(void) { interest =1; return S_casApp_success; } void myPV::interestDelete(void) { interest = 0; } const char *myPV::getName() const { return pvName; } aitEnum myPV::bestExternalType() const { return aitEnumFloat64; } myPV::~myPV(void){delete [] pvName;} void myPV::destroy(void) { }