Example #1
0
        private void RaiseRegistrationRemoved(IWampProcedureRegistration registration)
        {
            EventHandler <WampProcedureRegisterEventArgs> handler = RegistrationRemoved;

            if (handler != null)
            {
                handler(this, new WampProcedureRegisterEventArgs(registration));
            }
        }
Example #2
0
 private IObservable <IRemoteWampCalleeOperation> GetCalleeUnregistered
     (IWampProcedureRegistration registration,
     IObservable <IWampProcedureRegistration> registrationRemoved)
 {
     return(Observable.FromEventPattern <WampCalleeRemoveEventArgs>
                (x => registration.CalleeUnregistered += x,
                x => registration.CalleeUnregistered -= x)
            .Select(x => x.EventArgs.Operation)
            .OfType <IRemoteWampCalleeOperation>()
            .TakeUntil(registrationRemoved));
 }
Example #3
0
        public long?GetBestMatchingRegistrationId(string procedureUri)
        {
            IWampProcedureRegistration registration =
                mOperationCatalog.GetMatchingOperation(procedureUri)
                as IWampProcedureRegistration;

            if (registration == null)
            {
                return(null);
            }

            return(registration.RegistrationId);
        }
Example #4
0
        private RegistrationDetailsExtended GetRegistrationDetails(IWampProcedureRegistration registration, long sessionId)
        {
            string procedureUri = registration.Procedure;

            RegistrationDetailsExtended result = new RegistrationDetailsExtended()
            {
                Created        = DateTime.Now,
                Uri            = procedureUri,
                Match          = registration.RegisterOptions.Match,
                RegistrationId = registration.RegistrationId,
                Invoke         = registration.RegisterOptions.Invoke
            };

            // TODO: if we can ignore the session id, there is no need for the special
            // TODO: IRemoteWampCalleeOperation interface
            AddGroup(procedureUri, sessionId, result);

            return(result);
        }
 private void RaiseRegistrationRemoved(IWampProcedureRegistration registration)
 {
     RegistrationRemoved?.Invoke(this, new WampProcedureRegisterEventArgs(registration));
 }
Example #6
0
 private void OnRegistrationRemoved(IWampProcedureRegistration registration, IRemoteWampCalleeOperation operation)
 {
     RemovePeerFromGroup(registration.Procedure,
                         operation.SessionId,
                         registration.RegistrationId);
 }
Example #7
0
 private void OnRegistrationAdded(IWampProcedureRegistration registration, IRemoteWampCalleeOperation operation)
 {
     AddPeer(operation.SessionId, registration.RegistrationId,
             () => GetRegistrationDetails(registration, operation.SessionId));
 }
Example #8
0
 public WampProcedureRegisterEventArgs(IWampProcedureRegistration registration)
 {
     mRegistration = registration;
 }