示例#1
0
        private REInvokeStatus InvokeCommand(RECommand command, int instanceId, List <OSCValue> inputValues, ref List <OSCValue> outputValues)
        {
            if (command == RECommand.GetObjects)
            {
                return(InvokeGetObjectsCommand(instanceId, inputValues, ref outputValues));
            }
            else if (command == RECommand.GetComponents)
            {
                return(InvokeGetComponentsCommand(instanceId, inputValues, ref outputValues));
            }
            else if (command == RECommand.GetFields)
            {
                return(InvokeGetFieldsCommand(instanceId, inputValues, ref outputValues));
            }
            else if (command == RECommand.GetValue)
            {
                return(InvokeGetValueCommand(instanceId, inputValues, ref outputValues));
            }
            else if (command == RECommand.SetValue)
            {
                return(InvokeSetValueCommand(instanceId, inputValues, ref outputValues));
            }
            else if (command == RECommand.Clear)
            {
                RefreshRootObjects();

                return(REInvokeStatus.Complete);
            }

            return(REInvokeStatus.Cancel);
        }
        private Task CreateTask(RECommand command, int parentId, TaskProcess processCallback, TaskComplete completeCallback)
        {
            var taskId = string.Format("{0}_{1}", parentId, command);
            var task   = new Task(command, parentId, taskId);

            if (_tasksDictionary.ContainsKey(taskId))
            {
                _tasksDictionary.Remove(taskId);
            }

            _tasksDictionary.Add(taskId, task);

            task.ProcessCallback  = processCallback;
            task.CompleteCallback = completeCallback;

            return(task);
        }
 public Task(RECommand command, int parentId, string taskId)
 {
     _command  = command;
     _parentId = parentId;
     _taskId   = taskId;
 }