internal virtual ReturnCode Take(IntPtr sampleList) { uint mask = DataReader.StateMask(sampleState, viewState, instanceState); return(SacsSuperClass.uResultToReturnCode( User.Reader.Take( dataReader.rlReq_UserPeer, mask, Common.SampleList.ReaderAction, sampleList, DDS.Duration.Zero.OsDuration))); }
public ReturnCode GetDataReaders( ref IDataReader[] readers, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates) { ReturnCode result = DDS.ReturnCode.AlreadyDeleted; ReportStack.Start(); if (this.rlReq_isAlive) { IntPtr iterp = IntPtr.Zero; uint mask = DataReader.StateMask(sampleStates, viewStates, instanceStates); result = uResultToReturnCode(User.Subscriber.GetDataReaders(this.rlReq_UserPeer, mask, ref iterp)); if (result == ReturnCode.Ok) { int length = Database.c.iterLength(iterp); if (readers == null || readers.Length != length) { readers = new IDataReader[length]; } for (int i = 0; i < length; i++) { IntPtr ureader = Database.c.iterTakeFirst(iterp); readers [i] = SacsSuperClass.fromUserData(ureader) as IDataReader; } Database.c.iterFree(iterp); } } ReportStack.Flush(this, result != ReturnCode.Ok); return(result); }