Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Metadata"/> class.
        /// </summary>
        internal Metadata(
            Uri name,
            Type type,
            IStateProvider2 stateProvider,
            byte[] initializationParameters,
            long stateProviderId,
            long parentId,
            long createLsn,
            long deleteLsn,
            MetadataMode metadataMode,
            bool transientCreate)
        {
            Utility.Assert(name != null, "Name cannot be empty in metadata.");
            Utility.Assert(type != null, "type cannot be null.");
            Utility.Assert(stateProvider != null, "state provider cannot be null.");
            Utility.Assert(
                stateProviderId != DynamicStateManager.EmptyStateProviderId,
                "state provider id cannot be empty.");

            // Parent Id can be empty so do not assert on it.
            this.Initialize(
                name,
                type,
                stateProvider,
                initializationParameters,
                stateProviderId,
                parentId,
                createLsn,
                deleteLsn,
                metadataMode,
                transientCreate);
        }
Exemple #2
0
        /// <summary>
        /// Initializes metadata.
        /// </summary>
        private void Initialize(
            Uri name,
            Type type,
            IStateProvider2 stateProvider,
            byte[] initializationParameters,
            long stateProviderId,
            long parentId,
            long createLsn,
            long deleteLsn,
            MetadataMode metadataMode,
            bool transientCreate)
        {
            this.Name            = name;
            this.Type            = type;
            this.StateProvider   = stateProvider;
            this.StateProviderId = stateProviderId;

            this.InitializationContext = initializationParameters;
            this.CreateLsn             = createLsn;
            this.DeleteLsn             = deleteLsn;
            this.TransientCreate       = transientCreate;
            this.TransientDelete       = false;
            this.checkpointFlag        = 1;
            this.MetadataMode          = metadataMode;
            this.TransactionId         = 0;
            this.ParentStateProviderId = parentId;
        }
 /// <summary>
 /// Registers state provider with the state manager.
 /// </summary>
 /// <param name="transaction">Transaction that this operation is a part of.</param>
 /// <param name="stateProviderName">Name of the state provider that needs to be registered.</param>
 /// <param name="stateProvider">State provider that needs to be registered.</param>
 /// <exception cref="System.ArgumentException">Not supported state provider type or state provider is already present or state provider name is a reserved name.</exception>
 /// <exception cref="System.ArgumentNullException">StateProviderName is null or StateProvider is null or transaction is null.</exception>
 /// <exception cref="System.TimeoutException">Specified timeout has expired.</exception>
 /// <exception cref="System.Fabric.FabricNotPrimaryException">Replica was transitioned out of primary role.</exception>
 /// <exception cref="System.Fabric.FabricObjectClosedException">Replica was closed.</exception>
 /// <returns>Task that represents the asynchronous operation.</returns>
 public async Task AddStateProviderAsync(
     Transaction transaction,
     Uri stateProviderName,
     IStateProvider2 stateProvider)
 {
     await
     this.stateManager.AddStateProviderAsync(
         transaction,
         stateProviderName,
         stateProvider,
         this.DefaultTimeout,
         this.DefaultCancellationToken).ConfigureAwait(false);
 }