示例#1
0
        public static void Test()
        {
            AdapterProperties ap       = new AdapterProperties(queuenmae, ".");
            QListener         listener = new QListener(ap);

            listener.Start();
        }
示例#2
0
        /// <summary>
        /// Initializes a new <see cref="SocketSubmissionAdapter"/>.
        /// </summary>
        /// <param name="apiClient">The <see cref="DblClient"/> for this <see cref="SocketSubmissionAdapter"/> to use.</param>
        /// <param name="client">The <see cref="BaseDiscordClient"/> for this <see cref="SocketSubmissionAdapter"/> to use.</param>
        /// <param name="properties">The properties of this <see cref="SocketSubmissionAdapter"/>.</param>
        public SocketSubmissionAdapter(DblClient apiClient, BaseSocketClient client, AdapterProperties properties = null)
        {
            if (apiClient.CurrentUserId != client.CurrentUser.Id)
            {
                throw new ArgumentException("The DblClient must reference the specified current user in the IDiscordClient");
            }

            ApiClient  = apiClient;
            Client     = client;
            properties = properties ?? AdapterProperties.Default;

            Interval = properties.Interval;
            RunMode  = properties.RunMode;
            Message  = properties.Message;

            if (RunMode == AdapterRunMode.Async)
            {
                Timer = new Timer(UpdateInternal, this, Interval, Interval);
            }
            else
            {
                Client.JoinedGuild += UpdateAsync;
                Client.LeftGuild   += UpdateAsync;
            }
        }
示例#3
0
        ///// <summary>
        ///// Initialize the listener handler for multiple adapters using <see cref="AdapterProperties"/> properties.
        ///// </summary>
        ///// <param name="lpArray"></param>
        //public ListenerHandler(AdapterProperties[] lpArray)
        //{
        //    if (lpArray == null)
        //    {
        //        throw new ArgumentNullException("ListenerProperties.lpArray");
        //    }

        //    listeners = new List<Listener>();
        //    foreach (var lp in lpArray)
        //    {
        //        listeners.Add(CreateListener(lp));
        //    }
        //}

        /// <summary>
        /// Initialize the listener handler using <see cref="AdapterProperties"/> property.
        /// </summary>
        /// <param name="lp"></param>
        public ListenerHandler(AdapterProperties adapter)
        {
            if (adapter == null)
            {
                throw new ArgumentNullException("ListenerProperties.adapter");
            }
            //if (adapter.IsTopic)
            //    SessionManager.TopicDispatcher.Add(new TopicListener(adapter));
            //else
            //    SessionManager.QueueDispatcher.Add(new QueueListener(adapter));
            listeners = new List <Listener>();
            listeners.Add(CreateListener(adapter));
        }
        /// <summary>
        /// Initializes a new <see cref="SubmissionAdapter"/>.
        /// </summary>
        /// <param name="apiClient">The <see cref="DblClient"/> for this <see cref="SubmissionAdapter"/> to use.</param>
        /// <param name="client">The <see cref="BaseDiscordClient"/> for this <see cref="SubmissionAdapter"/> to use.</param>
        /// <param name="properties">The properties of this <see cref="SubmissionAdapter"/> (<see cref="AdapterProperties.RunMode"/> is omitted).</param>
        public SubmissionAdapter(DblClient apiClient, IDiscordClient client, AdapterProperties properties = null)
        {
            if (apiClient.CurrentUserId != client.CurrentUser.Id)
            {
                throw new ArgumentException("The DblClient must reference the specified current user in the IDiscordClient");
            }

            ApiClient  = apiClient;
            Client     = client;
            properties = properties ?? AdapterProperties.Default;

            Interval = properties.Interval;
            Message  = properties.Message;
            Timer    = new Timer(UpdateInternal, this, Interval, Interval);
        }
示例#5
0
文件: Listener.cs 项目: nistec/MQueue
        internal Listener(IListenerHandler owner, AdapterProperties channel)
        {
            if (channel == null)
            {
                throw new ArgumentNullException("channel");
            }
            if (channel.Source == null)
            {
                throw new ArgumentNullException("channel.Source");
            }
            _Owner      = owner;
            _Source     = channel.Source;
            _TransferTo = channel.TransferTo;

            //_ServerName = channel.ServerName;
            //_QueueName = channel.Source;
            _Interval         = channel.Interval;
            _ConnectTimeout   = channel.ConnectTimeout;
            _WorkerCount      = channel.WorkerCount;
            _Action           = channel.TargetAction;
            _AdapterOperation = channel.OperationType;
        }
示例#6
0
        ///// <summary>
        ///// Initialize the listener handler for local queue.
        ///// </summary>
        ///// <param name="queueName"></param>
        ///// <param name="serverName"></param>
        //public ListenerHandler(string queueName, string serverName = ".")
        //{
        //    if (string.IsNullOrEmpty(queueName))
        //    {
        //        throw new ArgumentNullException("queueName");
        //    }
        //    AdapterProperties lp = new AdapterProperties(queueName, serverName);
        //    listeners.Add(CreateListener(lp));
        //}

        #endregion

        /// <summary>
        /// Create a new listener using <see cref="AdapterProperties"/> properties.
        /// </summary>
        /// <param name="adapter"></param>
        /// <returns></returns>
        protected abstract Listener CreateListener(AdapterProperties adapter);
示例#7
0
 public QListener(AdapterProperties lp)
     : base(lp)
 {
 }
示例#8
0
 internal ListenerQ(IListenerHandler owner, AdapterProperties properties)
     : base(owner, properties)
 {
     _Adapter = properties.GetAdapter();
     _Adapter.ConnectTimeout = properties.ConnectTimeout;
 }
示例#9
0
        //public QueueListener(string queueName, string serverName = ".")
        //    : base(queueName, serverName)
        //{
        //    _adapter = new AdapterProperties()
        //    {

        //    };
        //}

        #endregion

        #region override

        protected override Listener CreateListener(AdapterProperties lp)
        {
            return(new ListenerQ(this, lp));
        }
示例#10
0
        //public QueueListener(AdapterProperties[] queues)
        //    : base(queues)
        //{

        //}

        public QueueListener(AdapterProperties adapter)
            : base(adapter)
        {
            _adapter  = adapter;
            _Listener = new ListenerQ(this, adapter);
        }
示例#11
0
 /// <summary>
 /// Initialize a new instance of db adapter.
 /// </summary>
 /// <param name="db"></param>
 public DbListener(AdapterProperties db)
     : base(db)
 {
 }