package senseiTests.concurrency.corba; import senseiTests.concurrency.Factory; import sensei.middleware.gms.Message; import sensei.middleware.util.ORBcentral; import org.omg.CORBA.portable.ValueFactory; import org.omg.CORBA_2_3.ORB; import org.omg.CORBA_2_3.portable.InputStream; public class CorbaFactory implements Factory { public Message createStringMessage(String content) { return new StringMessageImpl(content); } public String getContentOnStringMessage(Message message) { return ((StringMessage)message).content; } //*************************************************************************************// //**************************** INNER CLASSES *******************************************// //*************************************************************************************// //message is not queued on state transfers, but it is transactionable! static class StringMessageImpl extends StringMessage { public StringMessageImpl (String content) {this.content=content;unqueuedOnST=true;} } //*************************************************************************************// //**************************** ORB REGISTERING ****************************************// //*************************************************************************************// static void register(){} static { ORB orb = ((ORB)(ORBcentral.getORB())); orb.register_value_factory ( StringMessageHelper.id(), new ValueFactory(){public java.io.Serializable read_value(InputStream in){return in.read_value(new StringMessage(){});}} ); } }