opensim – Rev 1

Subversion Repositories:
Rev:
namespace Amib.Threading
{
        #region WorkItemInfo class

        /// <summary>
        /// Summary description for WorkItemInfo.
        /// </summary>
        public class WorkItemInfo
        {
            public WorkItemInfo()
                {
                        UseCallerCallContext = SmartThreadPool.DefaultUseCallerCallContext;
                        UseCallerHttpContext = SmartThreadPool.DefaultUseCallerHttpContext;
                        DisposeOfStateObjects = SmartThreadPool.DefaultDisposeOfStateObjects;
                        CallToPostExecute = SmartThreadPool.DefaultCallToPostExecute;
                        PostExecuteWorkItemCallback = SmartThreadPool.DefaultPostExecuteWorkItemCallback;
                        WorkItemPriority = SmartThreadPool.DefaultWorkItemPriority;
                }

                public WorkItemInfo(WorkItemInfo workItemInfo)
                {
                        UseCallerCallContext = workItemInfo.UseCallerCallContext;
                        UseCallerHttpContext = workItemInfo.UseCallerHttpContext;
                        DisposeOfStateObjects = workItemInfo.DisposeOfStateObjects;
                        CallToPostExecute = workItemInfo.CallToPostExecute;
                        PostExecuteWorkItemCallback = workItemInfo.PostExecuteWorkItemCallback;
                        WorkItemPriority = workItemInfo.WorkItemPriority;
            Timeout = workItemInfo.Timeout;
                }

            /// <summary>
            /// Get/Set if to use the caller's security context
            /// </summary>
            public bool UseCallerCallContext { get; set; }

            /// <summary>
            /// Get/Set if to use the caller's HTTP context
            /// </summary>
            public bool UseCallerHttpContext { get; set; }

            /// <summary>
            /// Get/Set if to dispose of the state object of a work item
            /// </summary>
            public bool DisposeOfStateObjects { get; set; }

            /// <summary>
            /// Get/Set the run the post execute options
            /// </summary>
        public CallToPostExecute CallToPostExecute { get; set; }

            /// <summary>
            /// Get/Set the post execute callback
            /// </summary>
        public PostExecuteWorkItemCallback PostExecuteWorkItemCallback { get; set; }

            /// <summary>
            /// Get/Set the work item's priority
            /// </summary>
            public WorkItemPriority WorkItemPriority { get; set; }

            /// <summary>
            /// Get/Set the work item's timout in milliseconds.
        /// This is a passive timout. When the timout expires the work item won't be actively aborted!
            /// </summary>
            public long Timeout { get; set; }
        }

        #endregion
}