00001 00022 #ifndef __NEW_SIM_INVENTORY_DATA_H__ 00023 #define __NEW_SIM_INVENTORY_DATA_H__ 00024 00025 00026 extern "C" { 00027 #include "SaHpi.h" 00028 } 00029 00030 00031 #ifndef __NEW_SIM_RDR_H__ 00032 #include "new_sim_rdr.h" 00033 #endif 00034 00035 class NewSimulatorDomain; 00036 00043 class NewSimulatorInventoryField { 00044 private: 00046 SaHpiIdrFieldT m_field; 00047 00048 public: 00049 NewSimulatorInventoryField(); 00050 NewSimulatorInventoryField( SaHpiIdrFieldT field ); 00051 virtual ~NewSimulatorInventoryField(); 00052 00054 virtual SaHpiEntryIdT Num() const { return m_field.FieldId; } 00056 virtual SaHpiIdrFieldTypeT Type() const { return m_field.Type; } 00058 bool IsReadOnly() const { return (bool) m_field.ReadOnly; } 00059 00061 SaHpiIdrFieldT &FieldData() { return m_field; } 00062 00063 virtual bool SetData( SaHpiIdrFieldT field ); 00064 virtual void Dump( NewSimulatorLog &dump ) const; 00065 }; 00066 00067 00074 class NewSimulatorInventoryArea { 00075 00076 private: 00078 SaHpiIdrAreaHeaderT m_area_header; 00079 00081 cArray<NewSimulatorInventoryField> m_fields; 00083 SaHpiEntryIdT m_field_id; 00084 00085 public: 00086 NewSimulatorInventoryArea( ); 00087 NewSimulatorInventoryArea( SaHpiIdrAreaHeaderT area ); 00088 00089 virtual ~NewSimulatorInventoryArea(); 00090 00092 virtual SaHpiEntryIdT Num() const { return m_area_header.AreaId; } 00094 virtual SaHpiIdrAreaTypeT Type() const { return m_area_header.Type; } 00096 SaHpiEntryIdT ValidFieldId() { return ++m_field_id; } 00098 bool IsReadOnly() { return (bool) m_area_header.ReadOnly; } 00099 00101 SaHpiIdrAreaHeaderT &AreaHeader() { m_area_header.NumFields = m_fields.Num(); 00102 return m_area_header; } 00103 00104 // Find and add inventory field 00105 NewSimulatorInventoryField *FindInventoryField( NewSimulatorInventoryField *field ); 00106 bool AddInventoryField( NewSimulatorInventoryField *field ); 00107 bool IncludesReadOnlyField(); 00108 void DeleteFields(); 00109 bool SetData( SaHpiIdrAreaHeaderT aheader ); 00110 00111 // methods for HPI functions 00112 SaErrorT GetField( SaHpiIdrFieldTypeT fieldType, SaHpiEntryIdT fieldId, 00113 SaHpiEntryIdT &nextId, SaHpiIdrFieldT &field ); 00114 SaErrorT AddField( SaHpiIdrFieldT &field ); 00115 SaErrorT AddFieldById( SaHpiIdrFieldT &field ); 00116 SaErrorT SetField( SaHpiIdrFieldT field ); 00117 SaErrorT DeleteField( SaHpiEntryIdT fieldId ); 00118 00119 00120 virtual void Dump( NewSimulatorLog &dump ) const; 00121 }; 00122 00123 #endif 00124