//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: dfile.hpp
//      Краткое описание: класс - файл. Обертка над менеджером файлов
//

#ifndef DSE_KERNEL_FILESYSTEM_DFILE_HPP
#define DSE_KERNEL_FILESYSTEM_DFILE_HPP

#include <Darkstar/common.hpp>
#include <Darkstar/Kernel/FileSystem/fileManager.hpp>

namespace ker
{
	class DFile
	{
	private:
		FileData data;
		unsigned int cur_file_pointer;
	public:
		DFile();
		DFile(const std::string& filename);
		~DFile();

		bool open(const std::string& filename);
		bool close();
		bool skip(const unsigned int num_bytes);
		bool read(const unsigned int num_bytes, void* data);

		unsigned int getSize() const;
		const std::string& getFilename() const;
		bool getIsLoaded() const;
		bool getIsEOF() const;
		const shared_ptr<SystemTime>& getLastWriteTime() const;
		const std::string& getFullPath() const;
		const std::string& getPath() const;
	};
};

#include <Darkstar/Kernel/FileSystem/dfile.inl>

#endif
