public static Db4objects.Drs.Db4o.ReplicationRecord QueryForReplicationRecord(ObjectContainerBase
                                                                               container, Transaction trans, Db4oDatabase younger, Db4oDatabase older)
 {
     container.ShowInternalClasses(true);
     try
     {
         IQuery q = container.Query(trans);
         q.Constrain(typeof(Db4objects.Drs.Db4o.ReplicationRecord));
         q.Descend("_youngerPeer").Constrain(younger).Identity();
         q.Descend("_olderPeer").Constrain(older).Identity();
         IObjectSet objectSet = q.Execute();
         if (objectSet.HasNext())
         {
             Db4objects.Drs.Db4o.ReplicationRecord replicationRecord = (Db4objects.Drs.Db4o.ReplicationRecord
                                                                        )objectSet.Next();
             container.Activate(replicationRecord, int.MaxValue);
             return(replicationRecord);
         }
         return(null);
     }
     finally
     {
         container.ShowInternalClasses(false);
     }
 }
示例#2
0
        private Db4objects.Db4o.Ext.Db4oDatabase Query(Transaction trans, bool constrainByUUID
                                                       )
        {
            ObjectContainerBase stream = trans.Container();
            IQuery q = stream.Query(trans);

            q.Constrain(GetType());
            if (constrainByUUID)
            {
                q.Descend(CreationtimeField).Constrain(i_uuid);
            }
            IObjectSet objectSet = q.Execute();

            while (objectSet.HasNext())
            {
                Db4objects.Db4o.Ext.Db4oDatabase storedDatabase = (Db4objects.Db4o.Ext.Db4oDatabase
                                                                   )objectSet.Next();
                stream.Activate(null, storedDatabase, new FixedActivationDepth(4));
                if (storedDatabase.Equals(this))
                {
                    return(storedDatabase);
                }
            }
            return(null);
        }
示例#3
0
 private void ReadThis(bool a_activate)
 {
     Read();
     ObjectContainerBase container = Transaction().Container();
     _member = container.TryGetByID(Transaction(), _key);
     if (_member != null && (a_activate || _member is ICompare))
     {
         container.Activate(Transaction(), _member);
         CheckInstanceOfCompare();
     }
 }
        /// <exception cref="Db4objects.Db4o.Ext.Db4oIOException"></exception>
        private void CollectIDsByInstantiatingCollection(QueryingReadContext context)
        {
            int id = context.CollectionID();

            if (id == 0)
            {
                return;
            }
            Transaction         transaction = context.Transaction();
            ObjectContainerBase container   = context.Container();
            object obj = container.GetByID(transaction, id);

            if (obj == null)
            {
                return;
            }
            // FIXME: [TA] review activation depth
            int depth = DepthUtil.AdjustDepthToBorders(2);

            container.Activate(transaction, obj, container.ActivationDepthProvider().ActivationDepth
                                   (depth, ActivationMode.Activate));
            Platform4.ForEachCollectionElement(obj, new _IVisitor4_390(context));
        }