// Ami Bar
// amibar@gmail.com
namespace Amib.Threading
{
///
/// Summary description for WIGStartInfo.
///
public class WIGStartInfo
{
///
/// Use the caller's security context
///
private bool _useCallerCallContext;
///
/// Use the caller's HTTP context
///
private bool _useCallerHttpContext;
///
/// Dispose of the state object of a work item
///
private bool _disposeOfStateObjects;
///
/// The option to run the post execute
///
private CallToPostExecute _callToPostExecute;
///
/// A post execute callback to call when none is provided in
/// the QueueWorkItem method.
///
private PostExecuteWorkItemCallback _postExecuteWorkItemCallback;
///
/// Indicate the WorkItemsGroup to suspend the handling of the work items
/// until the Start() method is called.
///
private bool _startSuspended;
public WIGStartInfo()
{
_useCallerCallContext = SmartThreadPool.DefaultUseCallerCallContext;
_useCallerHttpContext = SmartThreadPool.DefaultUseCallerHttpContext;
_disposeOfStateObjects = SmartThreadPool.DefaultDisposeOfStateObjects;
_callToPostExecute = SmartThreadPool.DefaultCallToPostExecute;
_postExecuteWorkItemCallback = SmartThreadPool.DefaultPostExecuteWorkItemCallback;
_startSuspended = SmartThreadPool.DefaultStartSuspended;
}
public WIGStartInfo(WIGStartInfo wigStartInfo)
{
_useCallerCallContext = wigStartInfo._useCallerCallContext;
_useCallerHttpContext = wigStartInfo._useCallerHttpContext;
_disposeOfStateObjects = wigStartInfo._disposeOfStateObjects;
_callToPostExecute = wigStartInfo._callToPostExecute;
_postExecuteWorkItemCallback = wigStartInfo._postExecuteWorkItemCallback;
_startSuspended = wigStartInfo._startSuspended;
}
public bool UseCallerCallContext
{
get { return _useCallerCallContext; }
set { _useCallerCallContext = value; }
}
public bool UseCallerHttpContext
{
get { return _useCallerHttpContext; }
set { _useCallerHttpContext = value; }
}
public bool DisposeOfStateObjects
{
get { return _disposeOfStateObjects; }
set { _disposeOfStateObjects = value; }
}
public CallToPostExecute CallToPostExecute
{
get { return _callToPostExecute; }
set { _callToPostExecute = value; }
}
public PostExecuteWorkItemCallback PostExecuteWorkItemCallback
{
get { return _postExecuteWorkItemCallback; }
set { _postExecuteWorkItemCallback = value; }
}
public bool StartSuspended
{
get { return _startSuspended; }
set { _startSuspended = value; }
}
}
}