LightningDB.LightningTransaction.LightningTransaction C# (CSharp) Method

LightningTransaction() private method

Created new instance of LightningTransaction
private LightningTransaction ( LightningEnvironment environment, LightningTransaction parent, TransactionBeginFlags flags ) : System
environment LightningEnvironment Environment.
parent LightningTransaction Parent transaction or null.
flags TransactionBeginFlags Transaction open options.
return System
        internal LightningTransaction(LightningEnvironment environment, LightningTransaction parent, TransactionBeginFlags flags)
        {
            if (environment == null)
                throw new ArgumentNullException(nameof(environment));

            Environment = environment;
            ParentTransaction = parent;
            IsReadOnly = (flags & TransactionBeginFlags.ReadOnly) == TransactionBeginFlags.ReadOnly;
            State = LightningTransactionState.Active;
            Environment.Disposing += Dispose;
            if (parent != null)
            {
                parent.Disposing += Dispose;
                parent.StateChanging += OnParentStateChanging;
            }

            var parentHandle = parent?.Handle() ?? IntPtr.Zero;
            mdb_txn_begin(environment.Handle(), parentHandle, flags, out _handle);
            _originalHandle = _handle;
        }