예제 #1
0
        public Msg ReplyFromServer()
        {
            long uuid = ReadLong();

            byte[]      signature = ReadBytes();
            int         id        = 0;
            Transaction trans     = Transaction();

            lock (ContainerLock())
            {
                try
                {
                    HardObjectReference hardRef = Container().GetHardReferenceBySignature(trans, uuid
                                                                                          , signature);
                    if (hardRef._reference != null)
                    {
                        id = hardRef._reference.GetID();
                    }
                }
                catch (Exception e)
                {
                }
            }
            return(Msg.ObjectByUuid.GetWriterForInt(trans, id));
        }
예제 #2
0
            private object ObjectFor(Transaction trans, IObjectInfo info)
            {
                int id = (int)info.GetInternalID();
                HardObjectReference @ref = HardObjectReference.PeekPersisted(trans, id, 1);

                return(@ref._object);
            }
예제 #3
0
        private ClassMetadata ClassMetadataForObjectId(int objectId)
        {
            // TODO: This method is *very* costly as is, since it reads
            //       the whole slot once and doesn't reuse it. Optimize.
            HardObjectReference hardRef = Container().GetHardObjectReferenceById(Transaction(
                                                                                     ), objectId);

            if (null == hardRef || hardRef._reference == null)
            {
                // com.db4o.db4ounit.common.querying.CascadeDeleteDeleted
                return(null);
            }
            return(hardRef._reference.ClassMetadata());
        }
 private HardObjectReference Peek(int id)
 {
     return(HardObjectReference.PeekPersisted(Trans(), id, 1));
 }