public ReturnCode GetOfferedDeadlineMissedStatus( ref OfferedDeadlineMissedStatus status) { ReturnCode result; ReportStack.Start(); if (this.rlReq_isAlive) { if (status == null) { status = new OfferedDeadlineMissedStatus(); } GCHandle statusGCHandle = GCHandle.Alloc(status, GCHandleType.Normal); result = uResultToReturnCode( User.Writer.GetDeadlineMissedStatus( rlReq_UserPeer, 1, OfferedDeadlineMissedStatusMarshaler.CopyOut, GCHandle.ToIntPtr(statusGCHandle))); status = statusGCHandle.Target as OfferedDeadlineMissedStatus; statusGCHandle.Free(); } else { result = DDS.ReturnCode.AlreadyDeleted; } ReportStack.Flush(this, result != ReturnCode.Ok); return(result); }
private void PrivateOfferedDeadlineMissed(IntPtr entityData, IntPtr writerPtr, OfferedDeadlineMissedStatus status) { if (listener != null) { IDataWriter dataWriter = (IDataWriter)OpenSplice.SacsSuperClass.fromUserData(writerPtr); listener.OnOfferedDeadlineMissed(dataWriter, status); } }
public ReturnCode GetOfferedDeadlineMissedStatus( ref OfferedDeadlineMissedStatus status) { if (status == null) { status = new OfferedDeadlineMissedStatus(); } return(Gapi.DataWriter.get_offered_deadline_missed_status(GapiPeer, status)); }
// IDataWriterListener private void PrivateOfferedDeadlineMissed( IntPtr entityData, IntPtr writerPtr, OfferedDeadlineMissedStatus status) { if (listener != null) { IDataWriter dataWriter = (IDataWriter)OpenSplice.SacsSuperClass.fromUserData(writerPtr); listener.OnOfferedDeadlineMissed(dataWriter, status); } }
internal static V_RESULT CopyOut(IntPtr fromPtr, IntPtr toPtr) { v_deadlineMissedInfo from = (v_deadlineMissedInfo)Marshal.PtrToStructure(fromPtr, type); GCHandle toGCHandle = GCHandle.FromIntPtr(toPtr); OfferedDeadlineMissedStatus to = toGCHandle.Target as OfferedDeadlineMissedStatus; V_RESULT result = CopyOut(ref from, to); toGCHandle.Target = to; return(result); }
public void TestGetOfferedDeadlineMissedStatus() { // Initialize entities DataWriterQos qos = new DataWriterQos(); qos.Deadline.Period = new Duration { Seconds = 1, }; DataWriter writer = _publisher.CreateDataWriter(_topic, qos); Assert.IsNotNull(writer); TestStructDataWriter dataWriter = new TestStructDataWriter(writer); Subscriber subscriber = _participant.CreateSubscriber(); Assert.IsNotNull(subscriber); DataReader reader = subscriber.CreateDataReader(_topic); Assert.IsNotNull(reader); // Wait for discovery and write an instance bool found = writer.WaitForSubscriptions(1, 1000); Assert.IsTrue(found); dataWriter.Write(new TestStruct { Id = 1, }); // After half second deadline should not be lost yet System.Threading.Thread.Sleep(500); OfferedDeadlineMissedStatus status = default; ReturnCode result = writer.GetOfferedDeadlineMissedStatus(ref status); Assert.AreEqual(ReturnCode.Ok, result); Assert.AreEqual(0, status.TotalCount); Assert.AreEqual(0, status.TotalCountChange); Assert.AreEqual(InstanceHandle.HandleNil, status.LastInstanceHandle); // After one second and a half one deadline should be lost System.Threading.Thread.Sleep(1000); result = writer.GetOfferedDeadlineMissedStatus(ref status); Assert.AreEqual(ReturnCode.Ok, result); Assert.AreEqual(1, status.TotalCount); Assert.AreEqual(1, status.TotalCountChange); Assert.AreNotEqual(InstanceHandle.HandleNil, status.LastInstanceHandle); }
public override void OnOfferedDeadlineMissed(DataWriter writer, OfferedDeadlineMissedStatus status) { OfferedDeadlineMissed?.Invoke(writer, status); }
/*! This event is raised when the DataWriter failed to write data * within the time period set in its DeadlineQosPolicy */ public void OnOfferedDeadlineMissedHendler(DataWriter dataWriter, OfferedDeadlineMissedStatus status) { Console.WriteLine("In DataWriter " + dataWriter.Name + " missed its offered deadline " + status.TotalCountChanged + " times."); }
public static extern ReturnCode get_offered_deadline_missed_status( IntPtr _this, OfferedDeadlineMissedStatus status );
internal static V_RESULT CopyOut(ref v_deadlineMissedInfo from, OfferedDeadlineMissedStatus to) { to.TotalCount = from.totalCount; to.TotalCountChange = from.totalChanged; return(v_handleToInstanceHandleMarshaler.CopyOut(ref from.instanceHandle, ref to.LastInstanceHandle)); }