/*=========================================================================
*
* NameMngr.hpp		- CPA_NameManager : definition
*
*
* Version			1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
 
#ifndef __CPA_NAME_MNGR_HPP__
#define __CPA_NAME_MNGR_HPP__
 
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
 
#include "CPABaseO.hpp"
 
/*===========================================================================
	name conflict : register all parameters
=========================================================================*/
class CPA_EXPORT CPA_NameConflict
{
public:
	CPA_BaseObject *m_pInitialObject;
	CPA_BaseObject *m_pRenamedObject;
	CString			m_csInitialName;
 
	tdeMissingCriteria m_eConflict;	
 
public:
	CPA_NameConflict  (CPA_BaseObject *pInitial, CPA_BaseObject *pRenamed, 
					   const CString csInitialName, tdeMissingCriteria eConflict);
	~CPA_NameConflict (void);
};
 
/*===========================================================================
	name manager : register all name conflict
=========================================================================*/
class CPA_EXPORT CPA_NameManager
{
private:
	CPA_List<CPA_NameConflict> m_oListOfNameConflict;
 
public:
	CPA_NameManager (void);
	~CPA_NameManager (void);
 
	void fn_vRegisterConflict (CPA_BaseObject *pObject, const CString csInitialName, tdeMissingCriteria eConflict);
	void fn_vWriteNameConflicts (void);	
};
 
 
extern CPA_EXPORT CPA_NameManager g_oNameManager;
 
 
#endif /* __CPA_NAME_MNGR_HPP__*/
#endif /* ACTIVE_EDITOR*/
