www.pudn.com > zfxcengine-0.1.0.zip > ceResource.cpp


// $Id: ceResource.cpp,v 1.11 2005/07/24 16:22:38 kimmi Exp $ 
///////////////////////////////////////////////////////////////// 
// 
//  Module:     Core 
//  File:       ceResource.cpp 
//  Created:    04.09.2004 
//  Author:     Kim Kulling aka kimmi 
// 
///////////////////////////////////////////////////////////////// 
#include "Core/ceResource.h" 
#include "Core/ceExceptions.h" 
#include "VFSystem/ceFile.h" 
#include "Core/ceMemManager.h" 
#include "Core/ceTFreeList.h" 
 
namespace ZFXCE { 
	//////////////////////////////////////////////////////////////////////////////// 
	using namespace std; 
 
	//////////////////////////////////////////////////////////////////////////////// 
	ceResource::ceResource() 
	{ 
		Init(); 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::Init() 
	{ 
		m_uiLocked   = 0; 
		m_ID         = 0; 
		m_Priority   = CE_RES_MED_PRIO; 
		m_pFile = NULL; 
		m_bIsLoaded = false; 
		m_pResTypeName = NULL; 
		m_pScratchFile = NULL; 
		m_pResMgr = NULL; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::Release() 
	{ 
		m_stResName.clear(); 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::Clear() 
	{ 
		Release(); 
		Init(); 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::SetPriority(cePriorityType Prio) 
	{ 
		m_Priority = Prio; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	cePriorityType ceResource::GetPriority() const 
	{ 
		return m_Priority; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::SetResName(const string &strName) 
	{ 
		if (0 == strName.size()) { 
			CE_EXCEPTION("Invalid resource name!", CELS_ERROR); 
		} 
		 
		m_stResName = strName; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	string ceResource::GetResName() const 
	{ 
		return m_stResName; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::SetFile(ceFile *pFile) 
	{ 
		ce_assert (NULL != pFile); 
		m_pFile = pFile; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	ceFile *ceResource::GetFile() const  
	{ 
		return m_pFile; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	inline ceResTypeID ceResource::GetResTypeID() const  
	{ 
		return m_ResID; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::SetResTypeID(const ceResTypeID ResID) 
	{ 
		m_ResID = ResID; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	void ceResource::SetScratchFile(ceScratchFile *pScratchFile) 
	{ 
		ce_assert (NULL != pScratchFile); 
		m_pScratchFile = pScratchFile; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	ceScratchFile *ceResource::GetScratchFile() const 
	{ 
		return m_pScratchFile; 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
	ceResource::~ceResource() 
	{ 
		Release(); 
	} 
	//////////////////////////////////////////////////////////////////////////////// 
} // Namespace ZFXCE