using System;
using System.Collections.Generic;
namespace AppLimit.CloudComputing.SharpBox
{
///
/// This interface defines all methods which has to be implemented
/// to support asynchoniously I/O, e.g. for WP7
///
public interface ICloudStorageAsyncInterface
{
///
/// The BeginOpenRequest-Method starts the authentication process of a given user with the
/// configured cloud storage service. After finishing this process in the background
/// the callback delegate will be executed. Please use EndOpenRequest in the callback
/// delegate
///
/// Delegate which will be called when the background action is finished
/// The configuration information of the cloud storage service
/// The credential token of the user which has to be authenticated
/// The asyncresult is the entry point to all generated results
IAsyncResult BeginOpenRequest(AsyncCallback callback, ICloudStorageConfiguration configuration, ICloudStorageAccessToken token);
///
/// The EndOpenRequest method will finish a started async call. Please use this
/// method in the callback delegate.
///
/// The result reference generated by BeginOpenRequest
/// The generated cloud access token
ICloudStorageAccessToken EndOpenRequest(IAsyncResult asyncResult);
///
/// The BeginGetChildsRequest-Method starts retrieving the list of childs of a given
/// parent container. This procedure can take a while if some information has to
/// be requested from the network
///
///
///
///
IAsyncResult BeginGetChildsRequest(AsyncCallback callback, ICloudDirectoryEntry parent);
///
/// The EndGetChildsRequest-Method will finish a started async call. Please use this
/// method in the callback delegate.
///
///
///
List EndGetChildsRequest(IAsyncResult asyncResult);
///
/// The begin routine the receive the root element from cloud storage
///
///
///
IAsyncResult BeginGetRootRequest(AsyncCallback callback);
///
/// The end routine the receive the root element
///
///
///
ICloudDirectoryEntry EndGetRootRequest(IAsyncResult asyncResult);
}
}