#pragma once
#ifndef CProcessorConfiguration_h
#define CProcessorConfiguration_h
//#pragma warning( disable : 4800 )
//#pragma warning( disable : 4786 )
#include <map>
#include "FWOS.h"
#include "CProcessorConfigurationItem.h"
#include "AConfiguration.h"
namespace CoreFW
{
typedef std::map< EnumMessageProcessorType, CProcessorConfigurationItem* > TCProcessorConfigurationItemMap ;
class CORE_DLL_DECLARATION_SPECIFIER CProcessorConfiguration : public AConfiguration
{
public:
CProcessorConfiguration() ;
virtual ~CProcessorConfiguration() ;
public:
int Load( const std::string &strConfigFilePath, bool bReload = false ) ; // bReload not in use
void Unload() ;
FW_RETURN_TYPE Save( const std::string &strConfigFilePath ) ;
int GetSize() const ;
public:
int GetNoOfChannelPerProcessor( EnumMessageProcessorType eMessageProcessorType ) const ;
EnumMessageProcessorType GetAlternateMessageProcessorType( EnumMessageProcessorType eMessageProcessorType ) const ;
std::string GetMessageProcessorName( EnumMessageProcessorType eMessageProcessorType ) const ;
bool IsRuntimeAllocated( EnumMessageProcessorType eMessageProcessorType ) const ;
TCProcessorConfigurationItemMap* GetProcessorConfigurationItemMap() ;
FW_RETURN_TYPE AddProcessorConfigurationItem( EnumMessageProcessorType eMessageProcessorType,
CProcessorConfigurationItem *pProcessorConfigurationItem ) ;
private:
FW_RETURN_TYPE WriteStaticDataToFile( std::ofstream &ConfigFile ) ;
private:
TCProcessorConfigurationItemMap m_ProcessorConfigurationItemMap ;
} ;
inline TCProcessorConfigurationItemMap* CProcessorConfiguration::GetProcessorConfigurationItemMap()
{
return &m_ProcessorConfigurationItemMap ;
}
inline int CProcessorConfiguration::GetSize() const
{
return m_ProcessorConfigurationItemMap.size() ;
}
} // End namespace
#endif