00001 //Copyright GSI 2012 00002 #ifndef GSI_ERROR_COLLECTION_FIELD_H_ 00003 #define GSI_ERROR_COLLECTION_FIELD_H_ 00004 00005 #include <fesa-core/DataStore/AcquisitionField.h> 00006 #include <fesa-core/DataStore/AbstractDevice.h> 00007 #include <fesa-core/Diagnostic/FesaLogger.h> 00008 #include <fesa-core/Exception/FesaException.h> 00009 #include <fesa-core/Utilities/Mutex.h> 00010 #include <fesa-core/Synchronization/MultiplexingContext.h> 00011 #include <fesa-core-gsi/DataStore/TypeDefinition.h> 00012 #include <fesa-core-gsi/Exception/GSIException.h> 00013 #include <fesa-core-gsi/DataStore/ConverterGSIErrorCollectionField.h> 00014 00015 namespace fesaGSI 00016 { 00017 class GSIErrorCollectionField : public fesa::AcqFieldStructArray<GSI_ERROR> 00018 { 00019 public: 00020 GSIErrorCollectionField(const std::string& fieldName, bool multiplexed, fesa::DataStore* pDataStore, bool persistent, int size); 00021 00022 ~GSIErrorCollectionField(); 00023 00024 void addError(long error_code, std::string& ErrorMessage, fesa::MultiplexingContext* context, fesa::AbstractDevice* pDev); 00025 00026 private: 00027 00028 unsigned long index_; 00029 00030 fesa::Mutex mutexIndex_; 00031 }; 00032 00033 } 00034 // namespace end 00035 00036 #endif /* GSI_ERROR_COLLECTION_FIELD_H_ */