コード例 #1
0
        /// <summary>
        /// Отправка данных на исполнение.
        /// </summary>
        /// <param name="invoked_data">Данные для исполнения.</param>
        public void Invoke(DataInvoke invoked_data)
        {
            switch (InvokeType)
            {
            case InvokeType.Manual:
                break;

            case InvokeType.Local:
            case InvokeType.Remote:
                invoked_data.InvokeType = InvokeType;
                break;

            case InvokeType.Auto:
                invoked_data.InvokeType = GetAutoInvokeType();
                break;
            }

            _queueInvoker.Enqueue(invoked_data);
        }
コード例 #2
0
        /// <summary>
        /// Возвращает подходящий сервис для исполнения.
        /// </summary>
        /// <param name="invoked_data">Исполняемые данные.</param>
        /// <param name="invoke_type">Тип исполнения.</param>
        /// <returns>Серис исполнения.</returns>
        public IInvokeService GetInvokeService(DataInvoke invoked_data, InvokeType invoke_type = InvokeType.Manual)
        {
            switch (invoke_type)
            {
            case InvokeType.Manual:
                switch (invoked_data.InvokeType)
                {
                case InvokeType.Remote:
                    return(_remoteInvokeService);

                case InvokeType.Local:
                    return(_serviceDictionary[invoked_data.Method.MethodType]);
                }
                break;

            case InvokeType.Remote:
                return(_remoteInvokeService);

            case InvokeType.Local:
                return(_serviceDictionary[invoked_data.Method.MethodType]);
            }

            throw new Exception(string.Format("InvokeServiceFactory.GetInvokeService -> Тип {0} недопустим.", invoked_data.InvokeType));
        }
コード例 #3
0
 /// <summary>
 /// Событие при извлечении из очереди.
 /// </summary>
 /// <param name="invoked_data">Данные для исполнения.</param>
 private void OnDequeue(DataInvoke invoked_data)
 {
     InvokeMethod(invoked_data, OnAfterInvoke);
 }
コード例 #4
0
 /// <summary>
 /// Исполнение метода.
 /// </summary>
 /// <param name="invoked_data">Исполняемые данные.</param>
 /// <param name="callback">Функция, вызываемая по окончанию исполнения.</param>
 protected abstract void InvokeMethod(DataInvoke invoked_data, Action <DataInvoke> callback);