1 21 package com.db4o.cs.messages; 22 23 import com.db4o.*; 24 import com.db4o.cs.ClassMeta; 25 import com.db4o.cs.YapServerThread; 26 import com.db4o.reflect.generic.GenericClass; 27 28 public class MClassMeta extends MsgObject { 29 public boolean processAtServer(YapServerThread serverThread) { 30 YapStream stream = stream(); 31 unmarshall(); 32 try{ 33 ClassMeta classMeta = (ClassMeta) stream().unmarshall(_payLoad); 34 GenericClass genericClass = stream.getClassMetaHelper().classMetaToGenericClass(stream().reflector(), classMeta); 35 if (genericClass != null) { 36 synchronized (streamLock()) { 37 Transaction trans = stream.getSystemTransaction(); 38 YapWriter returnBytes = new YapWriter(trans, 0); 39 40 YapClass yapClass = stream.produceYapClass(genericClass); 41 if (yapClass != null) { 42 stream.checkStillToSet(); 43 yapClass.setStateDirty(); 44 yapClass.write(trans); 45 trans.commit(); 46 returnBytes = stream 47 .readWriterByID(trans, yapClass.getID()); 48 serverThread.write(Msg.OBJECT_TO_CLIENT.getWriter(returnBytes)); 49 return true; 50 } 51 } 52 } 53 }catch(Exception e){ 54 if(Debug.atHome){ 55 e.printStackTrace(); 56 } 57 } 58 serverThread.write(Msg.FAILED); 59 return true; 60 } 61 62 } 63 | Popular Tags |