public static EventDetails GetEventDetails(this PublishOptions options, string match = WampMatchPattern.Exact)
        {
            EventDetails result = new EventDetails();

            PublishOptionsExtended extendedOptions =
                options as PublishOptionsExtended;

            bool disclosePublisher = options.DiscloseMe ?? false;

            if (extendedOptions != null)
            {
                if (disclosePublisher)
                {
                    result.Publisher = extendedOptions.PublisherId;

                    result.PublisherAuthenticationId   = extendedOptions.AuthenticationId;
                    result.PublisherAuthenticationRole = extendedOptions.AuthenticationRole;
                }

                if (match != WampMatchPattern.Exact)
                {
                    result.Topic = extendedOptions.TopicUri;
                }
            }

            return(result);
        }
Example #2
0
        private EventDetails GetDetails(PublishOptions options)
        {
            EventDetails result = new EventDetails();

            PublishOptionsExtended extendedOptions =
                options as PublishOptionsExtended;

            bool disclosePublisher = options.DiscloseMe ?? false;

            if (extendedOptions != null)
            {
                if (disclosePublisher)
                {
                    result.Publisher = extendedOptions.PublisherId;

                    result.AuthenticationId     = extendedOptions.AuthenticationId;
                    result.AuthenticationMethod = extendedOptions.AuthenticationMethod;
                    result.AuthenticationRole   = extendedOptions.AuthenticationRole;
                }

                string match = mSubscribeOptions.Match;

                if (match != WampMatchPattern.Exact)
                {
                    result.Topic = extendedOptions.TopicUri;
                }
            }

            return(result);
        }
Example #3
0
            public IEnumerable <RemoteObserver> GetRelevantSubscribers(PublishOptions options)
            {
                ImmutableHashSet <RemoteObserver> result = mRemoteObservers;

                if (options.Eligible != null)
                {
                    var eligibleObservers =
                        GetRemoteObservers(options.Eligible)
                        .ToArray();

                    result = ImmutableHashSet.Create(eligibleObservers);
                }

                bool excludeMe = options.ExcludeMe ?? true;

                PublishOptionsExtended casted = options as PublishOptionsExtended;

                if (excludeMe && casted != null)
                {
                    result = result.Remove(new RemoteObserver(casted.PublisherId));
                }

                if (options.Exclude != null)
                {
                    var excludedObservers =
                        options.Exclude.Select
                            (sessionId => new RemoteObserver(sessionId));

                    result = result.Except(excludedObservers);
                }

                return(result);
            }
Example #4
0
        private PublishOptions GetPublishOptions(IWampPublisher publisher, string topicUri, PublishOptions options)
        {
            IWampClientProxy casted = publisher as IWampClientProxy;

            PublishOptionsExtended result = new PublishOptionsExtended(options);

            result.PublisherId = casted.Session;

            WelcomeDetails welcomeDetails = casted.WelcomeDetails;

            result.AuthenticationId   = welcomeDetails.AuthenticationId;
            result.AuthenticationRole = welcomeDetails.AuthenticationRole;

            result.TopicUri = topicUri;

            return(result);
        }
Example #5
0
            private static PublishOptions GetPublishOptions(InvocationDetails invocationDetails, PublishOptions publishOptions)
            {
                PublishOptions result = publishOptions ?? mDefaultPublishOptions;

                if (result.DiscloseMe == true)
                {
                    PublishOptionsExtended extended = new PublishOptionsExtended(result);
                    result = extended;
                    extended.PublisherId        = (long)invocationDetails.Caller;
                    extended.AuthenticationId   = invocationDetails.CallerAuthenticationId;
                    extended.AuthenticationRole = invocationDetails.CallerAuthenticationRole;
                }

                result.Acknowledge = null;
                result.ExcludeMe   = null;

                return(result);
            }
Example #6
0
            public IEnumerable <RemoteObserver> GetRelevantSubscribers(PublishOptions options)
            {
                ImmutableHashSet <RemoteObserver> result = mRemoteObservers;

                result = GetEligibleObservers(result, options);

                bool excludeMe = options.ExcludeMe ?? true;

                PublishOptionsExtended casted = options as PublishOptionsExtended;

                if (excludeMe && casted != null)
                {
                    result = result.Remove(new RemoteObserver(casted.PublisherId));
                }

                result = RemoveExcludedObservers(result, options);

                return(result);
            }