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); }
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); }
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); }
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); }
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); }
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); }