static void Main(string[] args) { OsplConfiguration.SetOsplConfiguration(); DDSEntityManager mgr = new DDSEntityManager("HelloWorld"); String partitionName = "HelloWorld example"; // create Domain Participant mgr.createParticipant(partitionName); // create Type MsgTypeSupport msgTS = new MsgTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("HelloWorldData_Msg"); // create Subscriber mgr.createSubscriber(); // create DataReader mgr.createReader(false); IDataReader dreader = mgr.getReader(); MsgDataReader HelloWorldDataReader = dreader as MsgDataReader; Msg[] msgSeq = null; DDS.SampleInfo[] infoSeq = null; Boolean terminate = false; ReturnCode status; Console.WriteLine("=== [Subscriber] Ready ..."); int count = 0; while (!terminate && count < 1500) { status = HelloWorldDataReader.Take(ref msgSeq, ref infoSeq, Length.Unlimited, SampleStateKind.Any, ViewStateKind.Any, InstanceStateKind.Any); ErrorHandler.checkStatus(status, "DataReader.Take"); for (int i = 0; i < msgSeq.Length; i++) { if (infoSeq[i].ValidData) { Console.WriteLine("=== [Subscriber] message received :"); Console.WriteLine(" userID : {0}", msgSeq[i].userID); Console.WriteLine(" Message : \"" + msgSeq[i].message + "\""); terminate = true; } } status = HelloWorldDataReader.ReturnLoan(ref msgSeq, ref infoSeq); ErrorHandler.checkStatus(status, "DataReader.ReturnLoan"); Thread.Sleep(200); ++count; } Thread.Sleep(2); // clean up mgr.getSubscriber().DeleteDataReader(HelloWorldDataReader); mgr.deleteSubscriber(); mgr.deleteTopic(); mgr.deleteParticipant(); }
static void Main(string[] args) { OsplConfiguration.SetOsplConfiguration(); DDSEntityManager mgr = new DDSEntityManager("HelloWorld"); String partitionName = "HelloWorld example"; // create Domain Participant mgr.createParticipant(partitionName); mgr.setAutoDispose(false); // create Type MsgTypeSupport msgTS = new MsgTypeSupport(); mgr.registerType(msgTS); // create Topic mgr.createTopic("HelloWorldData_Msg"); // create Publisher mgr.createPublisher(); // create DataWriter mgr.createWriter(); // Publish Events IDataWriter dwriter = mgr.getWriter(); MsgDataWriter helloWorldWriter = dwriter as MsgDataWriter; Msg msgInstance = new Msg(); msgInstance.userID = 1; msgInstance.message = "Hello World"; InstanceHandle handle = helloWorldWriter.RegisterInstance(msgInstance); ErrorHandler.checkHandle(handle, "MsgDataWriter.RegisterInstance"); Console.WriteLine("=== [Publisher] writing a message containing :"); Console.WriteLine(" userID : {0}", msgInstance.userID); Console.WriteLine(" Message : \" {0} \"", msgInstance.message); ReturnCode status = helloWorldWriter.Write(msgInstance, handle); ErrorHandler.checkStatus(status, "MsgDataWriter.Write"); try { Thread.Sleep(2); } catch (ArgumentOutOfRangeException ex) { Console.WriteLine(ex.ToString()); Console.WriteLine(ex.StackTrace); } status = helloWorldWriter.UnregisterInstance(msgInstance, handle); // Clean up mgr.getPublisher().DeleteDataWriter(helloWorldWriter); mgr.deletePublisher(); mgr.deleteTopic(); mgr.deleteParticipant(); }