public virtual void ActivateOn(Db4objects.Db4o.Internal.Transaction transaction, ActivationPurpose purpose) { if (Activating()) { return; } try { Activating(true); ObjectContainerBase container = transaction.Container(); if (!(container.ActivationDepthProvider() is ITransparentActivationDepthProvider)) { return; } ITransparentActivationDepthProvider provider = (ITransparentActivationDepthProvider )container.ActivationDepthProvider(); if (ActivationPurpose.Write == purpose) { lock (container.Lock()) { provider.AddModified(GetObject(), transaction); } } if (IsActive()) { return; } lock (container.Lock()) { Activate(transaction, GetObject(), new DescendingActivationDepth(provider, ActivationMode .Activate)); } } finally { Activating(false); } }
private IActivationDepthProvider ActivationDepthProvider() { return(_server.ActivationDepthProvider()); }