private void DoBiDirectionalReplication() { Db4objects.Db4o.IObjectContainer handheld = OpenDb(ConfigureDb4oForReplication(), "handheld.yap"); StoreSomePilots(handheld); Db4objects.Db4o.IObjectContainer desktop = OpenDb(ConfigureDb4oForReplication(), "desktop.yap"); StoreSomeMorePilots(desktop); DisplayContents("Bi-Directional", "Before", handheld, desktop); Db4objects.Drs.IReplicationSession replication = Db4objects.Drs.Replication.Begin(ProviderFor(handheld), ProviderFor(desktop)); Db4objects.Db4o.IObjectSet changed = replication.ProviderA().ObjectsChangedSinceLastReplication (); while (changed.HasNext()) { replication.Replicate(changed.Next()); } changed = replication.ProviderB().ObjectsChangedSinceLastReplication(); while (changed.HasNext()) { replication.Replicate(changed.Next()); } replication.Commit(); DisplayContents(string.Empty, "After", handheld, desktop); CloseDb(handheld); CloseDb(desktop); }
public virtual void DoSelectiveReplication() { Db4objects.Db4o.IObjectContainer handheld = OpenDb(ConfigureDb4oForReplication(), "handheld.yap"); StoreSomePilots(handheld); Db4objects.Db4o.IObjectContainer desktop = OpenDb(ConfigureDb4oForReplication(), "desktop.yap"); DisplayContents("Selective Replication", "Before", handheld, desktop); Db4objects.Drs.IReplicationSession replication = Db4objects.Drs.Replication.Begin(ProviderFor(handheld), ProviderFor(desktop)); Db4objects.Db4o.IObjectSet changed = replication.ProviderA().ObjectsChangedSinceLastReplication (); while (changed.HasNext()) { Db4objects.Drs.Quickstart.Simple.Pilot p = (Db4objects.Drs.Quickstart.Simple.Pilot )changed.Next(); if (p._name.StartsWith("S")) { replication.Replicate(p); } } replication.Commit(); DisplayContents(string.Empty, "After", handheld, desktop); CloseDb(handheld); CloseDb(desktop); }