private void OnNewParticipant(AnyDataReader _) { // Take all the data about new participants using LoanedSamples <ParticipantBuiltinTopicData> samples = participantReader .Select() .WithState(ViewState.New.And(InstanceState.Alive)) .Take(); foreach (var sample in samples) { if (!sample.Info.ValidData) { continue; } Console.WriteLine($"Discovered participant: {sample.Data}"); if (!IsAuthorized(sample.Data.UserData)) { // Disallow communication with participants that don't // provide the correct password participant.IgnoreParticipant(sample.Info.InstanceHandle); Console.WriteLine(" * Authorization DENIED"); } else { Console.WriteLine(" * Authorization OK"); } } }
private static void OnRequestedIncompatibleQos( AnyDataReader _, RequestedIncompatibleQosStatus status) { // Exercise #3.1 add a message to print when this DataReader discovers an // incompatible DataWriter }
private void OnSampleLost(AnyDataReader reader, SampleLostStatus status) { if (status.LastReason == SampleLostStatusKind.LostByIncompleteCoherentSet) { Console.WriteLine( $"Lost {status.TotalCount.Change} samples of topic {reader.TopicDescription.Name} in an incomplete coherent set."); } }
private static void OnRequestedIncompatibleQos( AnyDataReader _, RequestedIncompatibleQosStatus status) { // Print when this DataReader discovers an incompatible DataWriter Console.WriteLine( $"Requested incompatible policy: {status.LastPolicy.Name}"); }
private void OnNewSubscription(AnyDataReader _) { // Take all the data about new subscriptions using LoanedSamples <SubscriptionBuiltinTopicData> samples = subscriptionReader .Select() .WithState(ViewState.New.And(InstanceState.Alive)) .Take(); foreach (var sample in samples) { if (!sample.Info.ValidData) { continue; } Console.WriteLine($"Discovered subscription: {sample.Data}"); } }