#ifndef __MISC_ZIP_LOADER_H__
#define __MISC_ZIP_LOADER_H__

/*--------------------------------------------------------------------------*/

#include <SFML/System/NonCopyable.hpp>
#include <string>

/*--------------------------------------------------------------------------*/
// Loads files from zip - or in directory if it exists
// 
namespace Zip
	{
	// Storage class for file loaded from zip
	class File : public sf::NonCopyable
		{
	public:
		// Creates empty file
		File();
		// Construct file from filename, loads file
		File(const std::string &FileName);
		// Destructor
		~File();
		
		// Load file
		void Load(const std::string &FileName);
		
		// Close file, free allocated memory
		void Close(void);
		
		// Return pointer to data
		operator const char *() const
			{ return myData; }
		
		// Return size
		unsigned int Size(void) const
			{ return mySize; }
		
	private:
		// File data pointer and size
		char *myData;
		unsigned int mySize;
		};	
	};

/*--------------------------------------------------------------------------*/

#endif // __MISC_ZIP_LOADER_H__
