Ejemplo n.º 1
0
        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}");
 }
Ejemplo n.º 5
0
        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}");
            }
        }