Collections Activation

For built-in db4o collections:

c#: IDb4oCollection.ActivationDepth(activationDepth)

VB: IDb4oCollection.ActivationDepth(activationDepth)

configures the activation depth for the objects returned from this collection. Default activation depth value for collections is 1, for hashmaps - 2.

ActivationExample.cs: testCollectionDef
01private static void TestCollectionDef() 02 { 03 StoreCollection(); 04 IConfiguration configuration = Db4oFactory.NewConfiguration(); 05 configuration.ActivationDepth(5); 06 IObjectContainer db = Db4oFactory.OpenFile(configuration, Db4oFileName); 07 try 08 { 09 IObjectSet result = db.Get(typeof(IList)); 10 ListResult(result); 11 IDb4oList list = (IDb4oList)result[0]; 12 for (int i = 0; i < list.Count; i++) 13 { 14 Console.WriteLine("List element: " + list[i]); 15 } 16 } 17 finally 18 { 19 db.Close(); 20 } 21 }

ActivationExample.vb: testCollectionDef
01Private Shared Sub TestCollectionDef() 02 StoreCollection() 03 Dim db As IObjectContainer = Db4oFactory.OpenFile(Db4oFileName) 04 db.Ext().Configure().ActivationDepth(5) 05 Try 06 Dim result As IObjectSet = db.Get(GetType(IList)) 07 ListResult(result) 08 Dim list As IDb4oList = CType(result(0), IDb4oList) 09 Dim i As Integer 10 For i = 0 To list.Count - 1 Step i + 1 11 Console.WriteLine("List element: " + list(i).ToString()) 12 Next 13 Finally 14 db.Close() 15 End Try 16 End Sub

Let's change the activation depth:

ActivationExample.cs: TestCollectionActivation
01private static void TestCollectionActivation() 02 { 03 StoreCollection(); 04 IConfiguration configuration = Db4oFactory.NewConfiguration(); 05 configuration.ActivationDepth(0); 06 IObjectContainer db = Db4oFactory.OpenFile(configuration, Db4oFileName); 07 try 08 { 09 IObjectSet result = db.Get(typeof(IList)); 10 ListResult(result); 11 12 IDb4oList list = (IDb4oList)result[0]; 13 Console.WriteLine("Setting list activation depth to 0 "); 14 list.ActivationDepth(0); 15 for (int i = 0; i < list.Count; i++) 16 { 17 Console.WriteLine("List element: " + list[i]); 18 } 19 } 20 finally 21 { 22 db.Close(); 23 } 24 }

ActivationExample.vb: TestCollectionActivation
01Private Shared Sub TestCollectionActivation() 02 StoreCollection() 03 Dim db As IObjectContainer = Db4oFactory.OpenFile(Db4oFileName) 04 db.Ext().Configure().ActivationDepth(0) 05 Try 06 Dim result As IObjectSet = db.Get(GetType(IList)) 07 ListResult(result) 08 09 Dim list As IDb4oList = CType(result(0), IDb4oList) 10 Console.WriteLine("Setting list activation depth to 0 ") 11 list.ActivationDepth(0) 12 Dim i As Integer 13 For i = 0 To list.Count - 1 Step i + 1 14 Console.WriteLine("List element: " + list(i).ToString()) 15 Next 16 Finally 17 db.Close() 18 End Try 19 End Sub

Specify a value less than zero to use the default activation depth configured for the ObjectContainer or for individual objects.