view api/Objects/IWarFoundryStagedLoadObject.cs @ 150:b36cc4af435b

Re #176: Bug when saving recently edited army * Try to make sure that we clear up more of our open streams Bug seems to be state related in some way since I can only trigger it when loading the file as the first action, but doesn't seem to be related to file loading of other data files since a diagnostic hard-coded "LoadFiles()" call in the FrmMain constructor doesn't change the behaviour
author IBBoard <dev@ibboard.co.uk>
date Sat, 26 Sep 2009 10:43:28 +0000
parents 2f3cafb69799
children
line wrap: on
line source

// This file (IWarFoundryStagedLoadObject.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2007, 2008, 2009 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 ICSharpCode.SharpZipLib.Zip;
using IBBoard.WarFoundry.API.Factories;

namespace IBBoard.WarFoundry.API.Objects
{
	public interface IWarFoundryStagedLoadObject : IWarFoundryObject
	{	
		/// <summary>
		/// Checks whether the object has been fully loaded or whether only the first stage of loading has been performed.
		/// If the object is not fully loaded then the method must finish loading the object.
		/// </summary>
		void EnsureFullyLoaded();
		
		/// <value>
		/// Gets the <code>AbstractNativeWarFoundryFactory</code> that created the object.
		/// </value>
		IWarFoundryFactory Factory	{ get; }
		
		/// <value>
		/// Returns <code>true</code> if the object has been fully loaded with all data, else returns <code>false</code>
		/// </value>
		bool IsFullyLoaded { get; }
		
		/// <value>
		/// Returns <code>true</code> if the object is in the process of being fully loaded with all data, else returns <code>false</code>
		/// </value>
		bool IsLoading { get; }
		
		/// <summary>
		/// Marks the object as fully loaded so that no more load checking is required.
		/// </summary>
		void SetAsFullyLoaded();
		
		/// <summary>
		/// Markes the object as being in the process of being fully loaded.
		/// </summary>
		void SetAsLoading();
	}
}