Exemplo n.º 1
0
 public Msg ReplyFromServer()
 {
     try
     {
         lock (ContainerLock())
         {
             var claxx = SystemTransaction().Reflector().ForName(ReadString());
             if (claxx != null)
             {
                 var classMetadata = Container().ProduceClassMetadata(claxx);
                 if (classMetadata != null)
                 {
                     Container().CheckStillToSet();
                     var returnBytes = Container().ReadStatefulBufferById(SystemTransaction
                                                                              (), classMetadata.GetID());
                     var createdClass = ObjectToClient.GetWriter(returnBytes);
                     return(createdClass);
                 }
             }
         }
     }
     catch (Db4oException)
     {
     }
     // TODO: send the exception to the client
     return(Failed);
 }
Exemplo n.º 2
0
 public virtual Msg ReplyFromServer()
 {
     Unmarshall();
     try
     {
         lock (ContainerLock())
         {
             var classInfo       = (ClassInfo)ReadObjectFromPayLoad();
             var classInfoHelper = ServerMessageDispatcher().ClassInfoHelper();
             var genericClass    = classInfoHelper.ClassMetaToGenericClass(Container().Reflector
                                                                               (), classInfo);
             if (genericClass != null)
             {
                 var trans         = Container().SystemTransaction();
                 var classMetadata = Container().ProduceClassMetadata(genericClass);
                 if (classMetadata != null)
                 {
                     Container().CheckStillToSet();
                     classMetadata.SetStateDirty();
                     classMetadata.Write(trans);
                     trans.Commit();
                     var returnBytes = Container().ReadStatefulBufferById(trans, classMetadata
                                                                          .GetID());
                     return(ObjectToClient.GetWriter(returnBytes));
                 }
             }
         }
     }
     catch (Exception e)
     {
     }
     return(Failed);
 }
Exemplo n.º 3
0
        public Msg ReplyFromServer()
        {
            StatefulBuffer bytes = null;
            // readWriterByID may fail in certain cases, for instance if
            // and object was deleted by another client
            var id            = _payLoad.ReadInt();
            var lastCommitted = _payLoad.ReadInt();

            lock (ContainerLock())
            {
                bytes = Container().ReadStatefulBufferById(Transaction(), id, lastCommitted == 1);
            }
            if (bytes == null)
            {
                bytes = new StatefulBuffer(Transaction(), 0, 0);
            }
            return(ObjectToClient.GetWriter(bytes));
        }