public virtual void TestDefaultActivationNonTAAware() { IActivationDepth depth = NonTAAwareDepth(); Assert.IsTrue(depth.RequiresActivation()); IActivationDepth child = depth.Descend(ClassMetadataFor(typeof(TransparentActivationDepthTestCase.NonTAAware ))); Assert.IsTrue(child.RequiresActivation()); }
public virtual void Deactivate(Db4objects.Db4o.Internal.Transaction trans, IActivationDepth depth) { if (!depth.RequiresActivation()) { return; } object obj = GetObject(); if (obj == null) { return; } ObjectContainerBase container = trans.Container(); LogActivation(container, "deactivate"); SetStateDeactivated(); _class.Deactivate(trans, this, depth); }
public virtual void Deactivate(Transaction trans, IActivationDepth depth) { if (!depth.RequiresActivation()) { return; } var obj = GetObject(); if (obj == null) { return; } var container = trans.Container(); LogActivation(container, "deactivate"); SetStateDeactivated(); _class.Deactivate(trans, this, depth); }
private void AssertDescendingDepth(int expectedDepth, IActivationDepth depth, Type clazz) { if (expectedDepth < 1) { Assert.IsFalse(depth.RequiresActivation()); return; } Assert.IsTrue(depth.RequiresActivation()); AssertDescendingDepth(expectedDepth - 1, depth.Descend(ClassMetadataFor(clazz)), clazz); }
// overridden to do nothing in YapObjectCarrier internal List4 StillTo1(Transaction trans, List4 still, object obj, IActivationDepth depth) { if (obj == null || !depth.RequiresActivation()) { return still; } ObjectReference @ref = trans.ReferenceForObject(obj); if (@ref != null) { if (HandledInCurrentTopLevelCall(@ref)) { return still; } FlagAsHandled(@ref); return new List4(still, new ObjectContainerBase.PendingActivation(@ref, depth)); } IReflectClass clazz = ReflectorForObject(obj); if (clazz.IsArray()) { if (!clazz.GetComponentType().IsPrimitive()) { IEnumerator arr = ArrayHandler.Iterator(clazz, obj); while (arr.MoveNext()) { object current = arr.Current; if (current == null) { continue; } ClassMetadata classMetadata = ClassMetadataForObject(current); still = StillTo1(trans, still, current, depth.Descend(classMetadata)); } } return still; } else { if (obj is Entry) { still = StillTo1(trans, still, ((Entry)obj).key, depth); still = StillTo1(trans, still, ((Entry)obj).value, depth); } else { if (depth.Mode().IsDeactivate()) { // Special handling to deactivate .net structs ClassMetadata metadata = ClassMetadataForObject(obj); if (metadata != null && metadata.IsStruct()) { metadata.ForceDeactivation(trans, depth, obj); } } } } return still; }
public virtual void Deactivate(Db4objects.Db4o.Internal.Transaction trans, IActivationDepth depth) { if (!depth.RequiresActivation()) { return; } object obj = GetObject(); if (obj == null) { return; } ObjectContainerBase container = trans.Container(); LogActivation(container, "deactivate"); SetStateDeactivated(); _class.Deactivate(trans, this, depth); }
public virtual void TestDefaultActivationTAAware() { IActivationDepth depth = TAAwareDepth(); Assert.IsFalse(depth.RequiresActivation()); }
public virtual void Deactivate(Transaction trans, IActivationDepth depth) { if (!depth.RequiresActivation()) { return; } var obj = GetObject(); if (obj == null) { return; } var container = trans.Container(); LogActivation(container, "deactivate"); SetStateDeactivated(); _class.Deactivate(trans, this, depth); }