File: System\Runtime\IPersistencePipelineModule.cs
Project: ndp\cdf\src\NetFx40\System.Runtime.DurableInstancing\System.Runtime.DurableInstancing.csproj (System.Runtime.DurableInstancing)
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
 
namespace System.Runtime
{
    using System;
    using System.Collections.Generic;
    using System.Xml.Linq;
 
    interface IPersistencePipelineModule
    {
        bool IsIOParticipant { get; }
        bool IsSaveTransactionRequired { get; }
        bool IsLoadTransactionRequired { get; }
 
        void CollectValues(out IDictionary<XName, object> readWriteValues, out IDictionary<XName, object> writeOnlyValues);
        IDictionary<XName, object> MapValues(IDictionary<XName, object> readWriteValues, IDictionary<XName, object> writeOnlyValues);
        void PublishValues(IDictionary<XName, object> readWriteValues);
 
        IAsyncResult BeginOnSave(IDictionary<XName, object> readWriteValues, IDictionary<XName, object> writeOnlyValues, TimeSpan timeout, AsyncCallback callback, object state);
        void EndOnSave(IAsyncResult result);
 
        IAsyncResult BeginOnLoad(IDictionary<XName, object> readWriteValues, TimeSpan timeout, AsyncCallback callback, object state);
        void EndOnLoad(IAsyncResult result);
 
        void Abort();
    }
}