Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

new_sim_inventory_data.h

Go to the documentation of this file.
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 

Generated on Mon Apr 26 14:36:48 2010 for New Simulator by  doxygen 1.4.4