コード例 #1
0
 public void AddNotificationListener(object token, ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     using (TemporarySecurityContext tsc = new TemporarySecurityContext(Authorize(token)))
      {
     _server.AddNotificationListener(name, listener, filterCallback, handback);
      }
 }
コード例 #2
0
ファイル: MBeanServer.cs プロジェクト: SzymonPobiega/NetMX
 public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     name = GetNameWithDomain(name);
     IDynamicMBean bean;
     INotificationEmitter emitter = GetEmitterMBean(name, out bean);
     TestPermissions(bean.GetMBeanInfo().ClassName, null, name, MBeanPermissionAction.AddNotificationListener);
     emitter.AddNotificationListener(callback, filterCallback, handback);
 }
コード例 #3
0
        public PullSubscriptionListener(IPullSubscriptionClient<TargetedNotificationType> client, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            _token = new CallbackThreadPoolPullSubscriptionClient<TargetedNotificationType>(
            HandleEvent, client, true);

             _filterCallback = filterCallback;
             _handback = handback;
             _callback = callback;
        }
コード例 #4
0
        public PullSubscriptionListener(IPullSubscriptionClient <TargetedNotificationType> client, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            _token = new CallbackThreadPoolPullSubscriptionClient <TargetedNotificationType>(
                HandleEvent, client, true);

            _filterCallback = filterCallback;
            _handback       = handback;
            _callback       = callback;
        }
コード例 #5
0
 public int AddNotificationListener(object token, ObjectName name, NotificationFilterCallback filterCallback)
 {
     using (TemporarySecurityContext tsc = new TemporarySecurityContext(Authorize(token)))
     {
         int listenerId = GetNextListenerId();
         ListenerProxy proxy = new ListenerProxy(name, _buffer, listenerId, filterCallback);
         _listenerProxys.Add(listenerId, proxy);
         _server.AddNotificationListener(name, proxy.NotificationCallback, filterCallback, listenerId);
         return listenerId;
     }
 }
コード例 #6
0
 public int AddNotificationListener(object token, ObjectName name, NotificationFilterCallback filterCallback)
 {
     using (TemporarySecurityContext tsc = new TemporarySecurityContext(Authorize(token)))
     {
         int           listenerId = GetNextListenerId();
         ListenerProxy proxy      = new ListenerProxy(name, _buffer, listenerId, filterCallback);
         _listenerProxys.Add(listenerId, proxy);
         _server.AddNotificationListener(name, proxy.NotificationCallback, filterCallback, listenerId);
         return(listenerId);
     }
 }
コード例 #7
0
 public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     var key = new NotificationSubscriptionKey(name, callback, filterCallback, handback);
     if (_subscriptions.ContainsKey(key))
     {
         throw new InvalidOperationException("Subscription already exists.");
     }
     var pullDeliverySubscription = _eventingClient.SubscribeUsingPullDelivery<TargetedNotificationType>(new Filter(Schema.NotificationDialect, null), new Mandatory(name.CreateSelectorSetHeader()));
     var listener = new PullSubscriptionListener(pullDeliverySubscription, callback, filterCallback, handback);
     _subscriptions.Add(key, listener);
 }
コード例 #8
0
 public void RemoveNotificationListener(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     if (callback == null)
     {
         throw new ArgumentNullException("callback");
     }
     NotificationSubscription subscr = new NotificationSubscription(callback, filterCallback, handback);
     if (!_subscriptions.Remove(subscr))
     {
         throw new ListenerNotFoundException(_objectName);
     }
 }
コード例 #9
0
        public void RemoveNotificationListener(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            NotificationSubscription subscr = new NotificationSubscription(callback, filterCallback, handback);

            if (!_subscriptions.Remove(subscr))
            {
                throw new ListenerNotFoundException(_objectName);
            }
        }
コード例 #10
0
        public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
        {
            name     = GetNameWithDomain(name);
            listener = GetNameWithDomain(listener);
            IDynamicMBean        bean;
            INotificationEmitter emitter = GetEmitterMBean(name, out bean);

            TestPermissions(bean.GetMBeanInfo().ClassName, null, name, MBeanPermissionAction.RemoveNotificationListener);
            INotificationListener listenerBean = GetListenerMBean(name, out bean);
            NotificationCallback  callback     = new NotificationCallback(listenerBean.HandleNotification);

            emitter.RemoveNotificationListener(callback, filterCallback, handback);
        }
コード例 #11
0
 public NotificationSubscriptionKey(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     if (name == null)
     {
         throw new ArgumentNullException("name");
     }
     if (callback == null)
     {
         throw new ArgumentNullException("callback");
     }
     _name           = name;
     _callback       = callback;
     _filterCallback = filterCallback;
     _handback       = handback;
 }
コード例 #12
0
 public NotificationSubscriptionKey(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     if (name == null)
      {
     throw new ArgumentNullException("name");
      }
      if (callback == null)
      {
     throw new ArgumentNullException("callback");
      }
      _name = name;
      _callback = callback;
      _filterCallback = filterCallback;
      _handback = handback;
 }
コード例 #13
0
 public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     int listenerId = _connection.AddNotificationListener(_token, name, filterCallback);
     NotificationSubscription subscr = new NotificationSubscription(callback, filterCallback, handback);
     _listenerProxys[subscr] = listenerId;
     _reverseListenerProxys[listenerId] = subscr;
     List<int> listenerGroup;
     if (_listenerGroupProxys.TryGetValue(callback, out listenerGroup))
     {
         listenerGroup.Add(listenerId);
     }
     else
     {
         listenerGroup = new List<int>();
         listenerGroup.Add(listenerId);
         _listenerGroupProxys[callback] = listenerGroup;
     }
 }
コード例 #14
0
 public void AddNotificationListener(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     if (callback == null)
     {
         throw new ArgumentNullException("callback");
     }
     NotificationSubscription subscr = new NotificationSubscription(callback, filterCallback, handback);
     List<NotificationSubscription> subscrList;
     if (_subscriptions.TryGetValue(subscr, out subscrList))
     {
         subscrList.Add(subscr);
     }
     else
     {
         subscrList = new List<NotificationSubscription>();
         subscrList.Add(subscr);
         _subscriptions.Add(subscr, subscrList);
     }
 }
コード例 #15
0
        public void AddNotificationListener(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            NotificationSubscription        subscr = new NotificationSubscription(callback, filterCallback, handback);
            List <NotificationSubscription> subscrList;

            if (_subscriptions.TryGetValue(subscr, out subscrList))
            {
                subscrList.Add(subscr);
            }
            else
            {
                subscrList = new List <NotificationSubscription>();
                subscrList.Add(subscr);
                _subscriptions.Add(subscr, subscrList);
            }
        }
コード例 #16
0
        public void RemoveNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            int listenerId;
            NotificationSubscription key = new NotificationSubscription(callback, filterCallback, handback);

            if (_listenerProxys.TryGetValue(key, out listenerId))
            {
                _connection.RemoveNotificationListener(_token, name, listenerId);

                _reverseListenerProxys.Remove(listenerId);
                _listenerProxys.Remove(key);

                List <int> listenerGroup = _listenerGroupProxys[callback];
                listenerGroup.Remove(listenerId);
                if (listenerGroup.Count == 0)
                {
                    _listenerGroupProxys.Remove(callback);
                }
            }
            else
            {
                throw new ListenerNotFoundException(name.ToString());
            }
        }
コード例 #17
0
 public NotificationSubscription(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     _callback = callback;
     _filterCallback = filterCallback;
     _handback = handback;
 }
コード例 #18
0
 public ListenerProxy(ObjectName name, NotificationBuffer buffer, int listenerId, NotificationFilterCallback filterCallback)
 {
     _name       = name;
     _buffer     = buffer;
     _listenerId = listenerId;
 }
コード例 #19
0
        public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            int listenerId = _connection.AddNotificationListener(_token, name, filterCallback);
            NotificationSubscription subscr = new NotificationSubscription(callback, filterCallback, handback);

            _listenerProxys[subscr]            = listenerId;
            _reverseListenerProxys[listenerId] = subscr;
            List <int> listenerGroup;

            if (_listenerGroupProxys.TryGetValue(callback, out listenerGroup))
            {
                listenerGroup.Add(listenerId);
            }
            else
            {
                listenerGroup = new List <int>();
                listenerGroup.Add(listenerId);
                _listenerGroupProxys[callback] = listenerGroup;
            }
        }
コード例 #20
0
        public void RemoveNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            var key = new NotificationSubscriptionKey(name, callback, filterCallback, handback);

            PullSubscriptionListener listener;

            if (_subscriptions.TryGetValue(key, out listener))
            {
                _subscriptions.Remove(key);
                listener.Dispose();
            }
        }
コード例 #21
0
ファイル: MBeanServer.cs プロジェクト: SzymonPobiega/NetMX
 public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     name = GetNameWithDomain(name);
     listener = GetNameWithDomain(listener);
     IDynamicMBean bean;
     INotificationEmitter emitter = GetEmitterMBean(name, out bean);
     TestPermissions(bean.GetMBeanInfo().ClassName, null, name, MBeanPermissionAction.RemoveNotificationListener);
     INotificationListener listenerBean = GetListenerMBean(name, out bean);
     NotificationCallback callback = new NotificationCallback(listenerBean.HandleNotification);
     emitter.RemoveNotificationListener(callback, filterCallback, handback);
 }
コード例 #22
0
 public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     throw new InvalidOperationException("This operation is not supported by ServiceModel connector.");
 }
コード例 #23
0
ファイル: StandardMBean.cs プロジェクト: yuzukwok/NetMX
 public void RemoveNotificationListener(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     _notifEmitter.RemoveNotificationListener(callback, filterCallback, handback);
 }
コード例 #24
0
 public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     Delegate(name, (s, n) => s.RemoveNotificationListener(n, listener, filterCallback, handback));
 }
コード例 #25
0
 public void AddNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     throw new NotImplementedException();
 }
コード例 #26
0
 public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     throw new InvalidOperationException("This operation is not supported by ServiceModel connector.");
 }
コード例 #27
0
ファイル: StandardMBean.cs プロジェクト: SzymonPobiega/NetMX
 public void AddNotificationListener(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     _notifEmitter.AddNotificationListener(callback, filterCallback, handback);
 }
コード例 #28
0
 public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     _connection.RemoveNotificationListener(_token, name, listener, filterCallback, handback);
 }
コード例 #29
0
 public void RemoveNotificationListener(object token, ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     using (TemporarySecurityContext tsc = new TemporarySecurityContext(Authorize(token)))
     {
         _server.RemoveNotificationListener(name, listener, filterCallback, handback);
     }
 }
コード例 #30
0
 public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     Delegate(name, (s, n) => s.AddNotificationListener(n, callback, filterCallback, handback));
 }
コード例 #31
0
        public void RemoveNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            int listenerId;
            NotificationSubscription key = new NotificationSubscription(callback, filterCallback, handback);
            if (_listenerProxys.TryGetValue(key, out listenerId))
            {
                _connection.RemoveNotificationListener(_token, name, listenerId);

                _reverseListenerProxys.Remove(listenerId);
                _listenerProxys.Remove(key);

                List<int> listenerGroup = _listenerGroupProxys[callback];
                listenerGroup.Remove(listenerId);
                if (listenerGroup.Count == 0)
                {
                    _listenerGroupProxys.Remove(callback);
                }
            }
            else
            {
                throw new ListenerNotFoundException(name.ToString());
            }
        }
コード例 #32
0
        public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            name = GetNameWithDomain(name);
            IDynamicMBean        bean;
            INotificationEmitter emitter = GetEmitterMBean(name, out bean);

            TestPermissions(bean.GetMBeanInfo().ClassName, null, name, MBeanPermissionAction.AddNotificationListener);
            emitter.AddNotificationListener(callback, filterCallback, handback);
        }
コード例 #33
0
 public void AddNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     _connection.AddNotificationListener(_token, name, listener, filterCallback, handback);
 }
コード例 #34
0
 public NotificationSubscription(NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
 {
     _callback       = callback;
     _filterCallback = filterCallback;
     _handback       = handback;
 }
コード例 #35
0
        public void AddNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            var key = new NotificationSubscriptionKey(name, callback, filterCallback, handback);

            if (_subscriptions.ContainsKey(key))
            {
                throw new InvalidOperationException("Subscription already exists.");
            }
            var pullDeliverySubscription = _eventingClient.SubscribeUsingPullDelivery <TargetedNotificationType>(new Filter(Schema.NotificationDialect, null), new Mandatory(name.CreateSelectorSetHeader()));
            var listener = new PullSubscriptionListener(pullDeliverySubscription, callback, filterCallback, handback);

            _subscriptions.Add(key, listener);
        }
コード例 #36
0
        public void RemoveNotificationListener(ObjectName name, NotificationCallback callback, NotificationFilterCallback filterCallback, object handback)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            var key = new NotificationSubscriptionKey(name, callback, filterCallback, handback);

            PullSubscriptionListener listener;
            if (_subscriptions.TryGetValue(key, out listener))
            {
                _subscriptions.Remove(key);
                listener.Dispose();
            }
        }
コード例 #37
0
 public void RemoveNotificationListener(ObjectName name, ObjectName listener, NotificationFilterCallback filterCallback, object handback)
 {
     throw new NotImplementedException();
 }
コード例 #38
0
 public ListenerProxy(ObjectName name, NotificationBuffer buffer, int listenerId, NotificationFilterCallback filterCallback)
 {
     _name = name;
     _buffer = buffer;
     _listenerId = listenerId;
 }