00001 00021 #ifndef __NEW_SIM_ANNUNCIATOR_H__ 00022 #define __NEW_SIM_ANNUNCIATOR_H__ 00023 00024 00025 extern "C" { 00026 #include "SaHpi.h" 00027 } 00028 00029 00030 #ifndef __NEW_SIM_RDR_H__ 00031 #include "new_sim_rdr.h" 00032 #endif 00033 00034 #ifndef __NEW_SIM_ANNOUNCEMENT_H__ 00035 #include "new_sim_announcement.h" 00036 #endif 00037 00038 class NewSimulatorDomain; 00039 00046 class NewSimulatorAnnunciator : public NewSimulatorRdr { 00047 00048 private: 00050 SaHpiAnnunciatorRecT m_ann_rec; 00052 SaHpiAnnunciatorModeT m_mode; 00054 cArray<NewSimulatorAnnouncement> m_anns; 00056 SaHpiEntryIdT m_ann_id; 00057 00058 public: 00059 NewSimulatorAnnunciator( NewSimulatorResource *res ); 00060 NewSimulatorAnnunciator( NewSimulatorResource *res, 00061 SaHpiRdrT rdr ); 00062 00063 virtual ~NewSimulatorAnnunciator(); 00064 00066 virtual unsigned int Num() const { return m_ann_rec.AnnunciatorNum; } 00068 SaHpiEntryIdT ValidEntryId() { return ++m_ann_id; } 00069 00070 // Find and add Announcement 00071 NewSimulatorAnnouncement *FindAnnouncement( NewSimulatorAnnouncement *ann ); 00072 bool AddAnnouncement( NewSimulatorAnnouncement *ann ); 00073 // create an RDR sensor record 00074 virtual bool CreateRdr( SaHpiRptEntryT &resource, SaHpiRdrT &rdr ); 00075 virtual void SetData( SaHpiAnnunciatorRecT ann_data ); 00076 00077 // Official HPI functions 00078 SaErrorT GetMode( SaHpiAnnunciatorModeT &mode ); 00079 SaErrorT SetMode( SaHpiAnnunciatorModeT mode ); 00080 SaErrorT DeleteAnnouncement( SaHpiEntryIdT &num, SaHpiSeverityT &severity); 00081 SaErrorT AddAnnouncement( SaHpiAnnouncementT &ann ); 00082 SaErrorT GetAnnouncement( SaHpiEntryIdT num, SaHpiAnnouncementT &ann ); 00083 SaErrorT GetNextAnnouncement( SaHpiSeverityT severity, SaHpiBoolT uackOnly, SaHpiAnnouncementT &ann ); 00084 SaErrorT SetAcknowledge( SaHpiEntryIdT num, SaHpiSeverityT severity); 00085 00086 virtual void Dump( NewSimulatorLog &dump ) const; 00087 }; 00088 00089 00090 #endif