public void TestLookupInstance() { ReturnCode ret; DomainParticipant otherParticipant = null; Topic topic = null; try { TopicBuiltinTopicData data = default; SampleInfo info = new SampleInfo(); otherParticipant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.INFOREPO_DOMAIN); Assert.IsNotNull(otherParticipant); otherParticipant.BindRtpsUdpTransportConfig(); TestStructTypeSupport support = new TestStructTypeSupport(); string typeName = support.GetTypeName(); ReturnCode result = support.RegisterType(otherParticipant, typeName); Assert.AreEqual(ReturnCode.Ok, result); TopicQos qos = TestHelper.CreateNonDefaultTopicQos(); topic = otherParticipant.CreateTopic(TestContext.TestName, typeName, qos); Assert.IsNotNull(topic); int count = 200; ret = ReturnCode.NoData; while (ret != ReturnCode.Ok && count > 0) { Thread.Sleep(100); ret = _dr.ReadNextSample(ref data, info); count--; } Assert.AreEqual(ReturnCode.Ok, ret); Assert.AreEqual(typeName, data.TypeName); Assert.IsNotNull(data.Key); TestHelper.TestNonDefaultTopicData(data); // Lookup for an existing instance var handle = _dr.LookupInstance(data); Assert.AreNotEqual(InstanceHandle.HandleNil, handle); } finally { ret = otherParticipant.DeleteTopic(topic); Assert.AreEqual(ReturnCode.Ok, ret); ret = otherParticipant.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, ret); ret = AssemblyInitializer.Factory.DeleteParticipant(otherParticipant); Assert.AreEqual(ReturnCode.Ok, ret); } }
public void TestGetKeyValue() { // Call GetKeyValue with HandleNil TopicBuiltinTopicData data = default; SampleInfo info = new SampleInfo(); ReturnCode ret = _dr.GetKeyValue(ref data, InstanceHandle.HandleNil); Assert.AreEqual(ReturnCode.BadParameter, ret); DomainParticipant otherParticipant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.INFOREPO_DOMAIN); Assert.IsNotNull(otherParticipant); otherParticipant.BindTcpTransportConfig(); TestStructTypeSupport support = new TestStructTypeSupport(); string typeName = support.GetTypeName(); ReturnCode result = support.RegisterType(otherParticipant, typeName); Assert.AreEqual(ReturnCode.Ok, result); TopicQos qos = TestHelper.CreateNonDefaultTopicQos(); var topic = otherParticipant.CreateTopic(TestContext.TestName, typeName, qos); Assert.IsNotNull(topic); Thread.Sleep(500); // Get the for an existing instance ret = _dr.ReadNextSample(ref data, info); Assert.AreEqual(ReturnCode.Ok, ret); Assert.AreEqual(typeName, data.TypeName); Assert.IsNotNull(data.Key); TestHelper.TestNonDefaultTopicData(data); TopicBuiltinTopicData aux = default; ret = _dr.GetKeyValue(ref aux, info.InstanceHandle); Assert.AreEqual(ReturnCode.Ok, ret); for (int i = 0; i < 3; i++) { Assert.AreEqual(data.Key.Value[i], aux.Key.Value[i]); } ret = otherParticipant.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, ret); ret = AssemblyInitializer.Factory.DeleteParticipant(otherParticipant); Assert.AreEqual(ReturnCode.Ok, ret); }
public static void TestNonDefaultTopicData(TopicBuiltinTopicData data) { Assert.IsNotNull(data); Assert.IsNotNull(data.Deadline); Assert.IsNotNull(data.DestinationOrder); Assert.IsNotNull(data.Durability); Assert.IsNotNull(data.DurabilityService); Assert.IsNotNull(data.History); Assert.IsNotNull(data.LatencyBudget); Assert.IsNotNull(data.Lifespan); Assert.IsNotNull(data.Liveliness); Assert.IsNotNull(data.Ownership); Assert.IsNotNull(data.Reliability); Assert.IsNotNull(data.ResourceLimits); Assert.IsNotNull(data.TopicData); Assert.IsNotNull(data.TransportPriority); Assert.AreEqual(5, data.Deadline.Period.Seconds); Assert.AreEqual(Duration.ZeroNanoseconds, data.Deadline.Period.NanoSeconds); Assert.AreEqual(DestinationOrderQosPolicyKind.BySourceTimestampDestinationOrderQos, data.DestinationOrder.Kind); Assert.AreEqual(DurabilityQosPolicyKind.TransientLocalDurabilityQos, data.Durability.Kind); Assert.AreEqual(HistoryQosPolicyKind.KeepAllHistoryQos, data.DurabilityService.HistoryKind); Assert.AreEqual(5, data.DurabilityService.HistoryDepth); Assert.AreEqual(5, data.DurabilityService.MaxInstances); Assert.AreEqual(5, data.DurabilityService.MaxSamples); Assert.AreEqual(5, data.DurabilityService.MaxSamplesPerInstance); Assert.IsNotNull(data.DurabilityService.ServiceCleanupDelay); Assert.AreEqual(5, data.DurabilityService.ServiceCleanupDelay.Seconds); Assert.AreEqual((uint)5, data.DurabilityService.ServiceCleanupDelay.NanoSeconds); Assert.AreEqual(HistoryQosPolicyKind.KeepAllHistoryQos, data.History.Kind); Assert.AreEqual(5, data.History.Depth); Assert.AreEqual(5, data.LatencyBudget.Duration.Seconds); Assert.AreEqual((uint)5, data.LatencyBudget.Duration.NanoSeconds); Assert.AreEqual(5, data.Lifespan.Duration.Seconds); Assert.AreEqual((uint)5, data.Lifespan.Duration.NanoSeconds); Assert.AreEqual(LivelinessQosPolicyKind.ManualByParticipantLivelinessQos, data.Liveliness.Kind); Assert.AreEqual(5, data.Liveliness.LeaseDuration.Seconds); Assert.AreEqual((uint)5, data.Liveliness.LeaseDuration.NanoSeconds); Assert.AreEqual(OwnershipQosPolicyKind.ExclusiveOwnershipQos, data.Ownership.Kind); Assert.AreEqual(ReliabilityQosPolicyKind.ReliableReliabilityQos, data.Reliability.Kind); Assert.AreEqual(5, data.Reliability.MaxBlockingTime.Seconds); Assert.AreEqual((uint)5, data.Reliability.MaxBlockingTime.NanoSeconds); Assert.AreEqual(5, data.ResourceLimits.MaxInstances); Assert.AreEqual(5, data.ResourceLimits.MaxSamples); Assert.AreEqual(5, data.ResourceLimits.MaxSamplesPerInstance); Assert.AreEqual(1, data.TopicData.Value.Count()); Assert.AreEqual(0x5, data.TopicData.Value.First()); Assert.AreEqual(5, data.TransportPriority.Value); }
public ReturnCode GetDiscoveredTopicData(ref TopicBuiltinTopicData data, InstanceHandle handle) { ReturnCode result; GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType.Normal); result = (ReturnCode)Gapi.DomainParticipant.get_discovered_topic_data( GapiPeer, GCHandle.ToIntPtr(dataHandle), handle, TopicDataMarshaler.CopyOutDelegate); data = dataHandle.Target as TopicBuiltinTopicData; dataHandle.Free(); return(result); }
public void TestTakeNextSample() { TopicBuiltinTopicData data = default; SampleInfo infos = new SampleInfo(); ReturnCode ret = _dr.TakeNextSample(ref data, infos); Assert.AreEqual(ReturnCode.NoData, ret); DomainParticipant otherParticipant = AssemblyInitializer.Factory.CreateParticipant(AssemblyInitializer.INFOREPO_DOMAIN); Assert.IsNotNull(otherParticipant); otherParticipant.BindTcpTransportConfig(); TestStructTypeSupport support = new TestStructTypeSupport(); string typeName = support.GetTypeName(); ReturnCode result = support.RegisterType(otherParticipant, typeName); Assert.AreEqual(ReturnCode.Ok, result); TopicQos qos = TestHelper.CreateNonDefaultTopicQos(); var topic = otherParticipant.CreateTopic(TestContext.TestName, typeName, qos); Assert.IsNotNull(topic); Thread.Sleep(500); ret = _dr.TakeNextSample(ref data, infos); Assert.AreEqual(ReturnCode.Ok, ret); Assert.AreEqual(typeName, data.TypeName); Assert.IsNotNull(data.Key); TestHelper.TestNonDefaultTopicData(data); ret = otherParticipant.DeleteContainedEntities(); Assert.AreEqual(ReturnCode.Ok, ret); ret = AssemblyInitializer.Factory.DeleteParticipant(otherParticipant); Assert.AreEqual(ReturnCode.Ok, ret); }
public override TopicBuiltinTopicData CopyFrom(TopicBuiltinTopicData other) { throw new NotImplementedException(); }
public ReturnCode GetDiscoveredTopicData(ref TopicBuiltinTopicData data, InstanceHandle handle) { ReturnCode result; GCHandle dataHandle = GCHandle.Alloc(data, GCHandleType.Normal); result = (ReturnCode) Gapi.DomainParticipant.get_discovered_topic_data( GapiPeer, GCHandle.ToIntPtr(dataHandle), handle, TopicDataMarshaler.CopyOutDelegate); data = dataHandle.Target as TopicBuiltinTopicData; dataHandle.Free(); return result; }
internal void CopyOut(ref TopicBuiltinTopicData to) { CopyOut(GapiPtr, ref to); }
internal DDS.ReturnCode CopyIn(TopicBuiltinTopicData from) { cleanupRequired = true; return CopyIn(from, GapiPtr); }
internal static void CopyOut(IntPtr from, ref TopicBuiltinTopicData to) { if (to == null) to = new TopicBuiltinTopicData(); BuiltinTopicKeyMarshaler.CopyOut(from, ref to.Key, offset_key); IntPtr namePtr = BaseMarshaler.ReadIntPtr(from, offset_name); to.Name = Marshal.PtrToStringAnsi(namePtr); IntPtr typeNamePtr = BaseMarshaler.ReadIntPtr(from, offset_type_name); to.TypeName = Marshal.PtrToStringAnsi(typeNamePtr); DurabilityQosPolicyMarshaler.CopyOut(from, ref to.Durability, offset_durability); DeadlineQosPolicyMarshaler.CopyOut(from, ref to.Deadline, offset_deadline); LatencyBudgetQosPolicyMarshaler.CopyOut(from, ref to.LatencyBudget, offset_latency_budget); LivelinessQosPolicyMarshaler.CopyOut(from, ref to.Liveliness, offset_liveliness); ReliabilityQosPolicyMarshaler.CopyOut(from, ref to.Reliability, offset_reliability); TransportPriorityQosPolicyMarshaler.CopyOut(from, ref to.TransportPriority, offset_transport_priority); LifespanQosPolicyMarshaler.CopyOut(from, ref to.Lifespan, offset_lifespan); DestinationOrderQosPolicyMarshaler.CopyOut(from, ref to.DestinationOrder, offset_destination_order); HistoryQosPolicyMarshaler.CopyOut(from, ref to.History, offset_history); ResourceLimitsQosPolicyMarshaler.CopyOut(from, ref to.ResourceLimits, offset_resource_limits); OwnershipQosPolicyMarshaler.CopyOut(from, ref to.Ownership, offset_ownership); TopicDataQosPolicyMarshaler.CopyOut(from, ref to.TopicData, offset_topic_data); }
internal static DDS.ReturnCode CopyIn(TopicBuiltinTopicData from, IntPtr to) { DDS.ReturnCode result; if (from != null) { result = BuiltinTopicKeyMarshaler.CopyIn(from.Key, to, offset_key); IntPtr namePtr = Marshal.StringToHGlobalAnsi(from.Name); BaseMarshaler.Write(to, offset_name, namePtr); IntPtr typeNamePtr = Marshal.StringToHGlobalAnsi(from.TypeName); BaseMarshaler.Write(to, offset_type_name, typeNamePtr); if (result == DDS.ReturnCode.Ok) { result = DurabilityQosPolicyMarshaler.CopyIn( from.Durability, to, offset_durability); } if (result == DDS.ReturnCode.Ok) { result = DurabilityServiceQosPolicyMarshaler.CopyIn( from.DurabilityService, to, offset_durability_service); } if (result == DDS.ReturnCode.Ok) { result = DeadlineQosPolicyMarshaler.CopyIn( from.Deadline, to, offset_deadline); } if (result == DDS.ReturnCode.Ok) { result = LatencyBudgetQosPolicyMarshaler.CopyIn( from.LatencyBudget, to, offset_latency_budget); } if (result == DDS.ReturnCode.Ok) { result = LivelinessQosPolicyMarshaler.CopyIn( from.Liveliness, to, offset_liveliness); } if (result == DDS.ReturnCode.Ok) { result = ReliabilityQosPolicyMarshaler.CopyIn( from.Reliability, to, offset_reliability); } if (result == DDS.ReturnCode.Ok) { result = DestinationOrderQosPolicyMarshaler.CopyIn( from.DestinationOrder, to, offset_destination_order); } if (result == DDS.ReturnCode.Ok) { result = TransportPriorityQosPolicyMarshaler.CopyIn( from.TransportPriority, to, offset_transport_priority); } if (result == DDS.ReturnCode.Ok) { result = LifespanQosPolicyMarshaler.CopyIn( from.Lifespan, to, offset_lifespan); } if (result == DDS.ReturnCode.Ok) { result = DestinationOrderQosPolicyMarshaler.CopyIn( from.DestinationOrder, to, offset_destination_order); } if (result == DDS.ReturnCode.Ok) { result = HistoryQosPolicyMarshaler.CopyIn( from.History, to, offset_history); } if (result == DDS.ReturnCode.Ok) { result = ResourceLimitsQosPolicyMarshaler.CopyIn( from.ResourceLimits, to, offset_resource_limits); } if (result == DDS.ReturnCode.Ok) { result = OwnershipQosPolicyMarshaler.CopyIn( from.Ownership, to, offset_ownership); } if (result == DDS.ReturnCode.Ok) { result = TopicDataQosPolicyMarshaler.CopyIn( from.TopicData, to, offset_topic_data); } } else { result = DDS.ReturnCode.BadParameter; DDS.OpenSplice.OS.Report( DDS.OpenSplice.ReportType.OS_ERROR, "DDS.OpenSplice.CustomMarshalers.TopicBulitinTopicDataMarshaler.CopyIn", "DDS/OpenSplice/CustomMarshalers/QosToplevelMarshalers.cs", DDS.ErrorCode.InvalidValue, "TopicBulitinTopicData attribute may not be a null pointer."); } return result; }