#pragma once
class McDbDatabase;
class McDbLayoutManager;
class McDbExternalReferencesDatabaseManager;
class ARXDLL McDbHostApplicationServices
{
public:
	McDbHostApplicationServices(void);
	virtual ~McDbHostApplicationServices(void);

	// -------------------------------------------------------------------------
	// Summary:
	// 		返回当前工作的数据库
	// -------------------------------------------------------------------------
	McDbDatabase* workingDatabase() const;

	// -------------------------------------------------------------------------
	// Summary:
	// 		返回当前工作的布局管理器
	// -------------------------------------------------------------------------
	McDbLayoutManager* layoutManager() const;

	McDbExternalReferencesDatabaseManager* externalReferencesDatabaseManager() const;

private:
	//:Ignore
	McDbDatabase*		m_pDatabase;
	McDbLayoutManager*  m_pLayoutManager;
	McDbExternalReferencesDatabaseManager* m_pExternalReferencesDatabaseManager;
	//:End Ignore
};

class ARXDLL McDbExternalReferencesDatabaseManager {
public:
	~McDbExternalReferencesDatabaseManager();
	McDbDatabase* readDatabase(const MxString& sFilePath);
	McDbDatabase* getDatabase(const MxString& sFilePath);
	bool clear();
private:
	std::map<MxString, McDbDatabase*> m_mapData;
};
