view API/Loading/ILoadableObject.cs @ 482:1ed2f3ab5e35

Re #419: Remove assumptions of a file-based install * Swap API to using new "loadable object" and "loadable object source" wrappers to allow file-based or memory-based loading
author IBBoard <dev@ibboard.co.uk>
date Sat, 07 Jul 2012 21:01:32 +0100
parents
children
line wrap: on
line source

// This file (ILoadableObject.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2012 IBBoard
//
// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
using System;
using System.IO;

namespace IBBoard.WarFoundry.API.Loading
{
	/// <summary>
	/// Interface for objects that are the source of WarFoundryObjects that can be loaded by a Factory.
	/// Examples include files and streams.
	/// </summary>
	public interface ILoadableObject
	{
		string Name { get; }

		/// <summary>
		/// Gets the stream for the loadable object that the WarFoundryObject can be loaded from. This stream will be
		/// created each time the method is called and must be disposed of by the calling function.
		/// </summary>
		/// <returns>
		/// The stream for the source.
		/// </returns>
		Stream GetStream();
	}
}