Example #1
0
        public Messaging.Subscription Subscribe(string channelName, int pollingInterval, AsyncCallback <List <Message> > callback,
                                                Messaging.SubscriptionOptions subscriptionOptions)
        {
            checkChannelName(channelName);

            if (pollingInterval < 0)
            {
                throw new ArgumentException(ExceptionMessage.WRONG_POLLING_INTERVAL);
            }

            string subscriptionId = subscribeForPollingAccess(channelName, subscriptionOptions);

            Messaging.Subscription subscription = new Messaging.Subscription();

            subscription.ChannelName    = channelName;
            subscription.SubscriptionId = subscriptionId;

            if (pollingInterval != 0)
            {
                subscription.PollingInterval = pollingInterval;
            }

            subscription.OnSubscribe(callback);

            return(subscription);
        }
Example #2
0
        public void Subscribe(string channelName, int pollingInterval, AsyncCallback <List <Message> > callback,
                              Messaging.SubscriptionOptions subscriptionOptions,
                              AsyncCallback <Subscription> subscriptionCallback)
        {
            checkChannelName(channelName);
            if (pollingInterval < 0)
            {
                throw new ArgumentException(ExceptionMessage.WRONG_POLLING_INTERVAL);
            }

            var responder = new AsyncCallback <string>(r =>
            {
                Messaging.Subscription subscription = new Messaging.Subscription();
                subscription.ChannelName            = channelName;
                subscription.SubscriptionId         = r;

                if (pollingInterval != 0)
                {
                    subscription.PollingInterval = pollingInterval;
                }

                subscription.OnSubscribe(callback);

                if (subscriptionCallback != null)
                {
                    subscriptionCallback.ResponseHandler.Invoke(subscription);
                }
            }, f =>
            {
                if (subscriptionCallback != null)
                {
                    subscriptionCallback.ErrorHandler.Invoke(f);
                }
                else
                {
                    throw new BackendlessException(f);
                }
            });

            subscribeForPollingAccess(channelName, subscriptionOptions, responder);
        }
Example #3
0
    public void Subscribe( string channelName, int pollingInterval, AsyncCallback<List<Message>> callback,
                           Messaging.SubscriptionOptions subscriptionOptions,
                           AsyncCallback<Subscription> subscriptionCallback )
    {
      checkChannelName( channelName );
      if( pollingInterval < 0 )
        throw new ArgumentException( ExceptionMessage.WRONG_POLLING_INTERVAL );

      var responder = new AsyncCallback<string>( r =>
        {
          Messaging.Subscription subscription = new Messaging.Subscription();
          subscription.ChannelName = channelName;
          subscription.SubscriptionId = r;

          if( pollingInterval != 0 )
            subscription.PollingInterval = pollingInterval;

          subscription.OnSubscribe( callback );

          if( subscriptionCallback != null )
            subscriptionCallback.ResponseHandler.Invoke( subscription );
        }, f =>
          {
            if( subscriptionCallback != null )
              subscriptionCallback.ErrorHandler.Invoke( f );
            else
              throw new BackendlessException( f );
          } );
      subscribeForPollingAccess( channelName, subscriptionOptions, responder );
    }
Example #4
0
    public Messaging.Subscription Subscribe( string channelName, int pollingInterval, AsyncCallback<List<Message>> callback,
                                      Messaging.SubscriptionOptions subscriptionOptions )
    {
      checkChannelName( channelName );

      if( pollingInterval < 0 )
        throw new ArgumentException( ExceptionMessage.WRONG_POLLING_INTERVAL );

      string subscriptionId = subscribeForPollingAccess( channelName, subscriptionOptions );
      Messaging.Subscription subscription = new Messaging.Subscription();

      subscription.ChannelName = channelName;
      subscription.SubscriptionId = subscriptionId;

      if( pollingInterval != 0 )
        subscription.PollingInterval = pollingInterval;

      subscription.OnSubscribe( callback );

      return subscription;
    }