1 /***************************************************************************
3 * Copyright 2010,2011 BMW Car IT GmbH
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 ****************************************************************************/
19 #include "CommitCommand.h"
20 #include "ICommandExecutor.h"
24 ExecutionResult CommitCommand::execute(ICommandExecutor* executor)
29 Scene* scene = (executor->getScene());
31 CommandListIterator iter = scene->m_toBeCommittedList.begin();
32 CommandListIterator iterEnd = scene->m_toBeCommittedList.end();
34 for (; iter != iterEnd; ++iter)
36 ICommand* command = (*iter);
39 bool commandExecuteSuccess = true;
40 ExecutionResult result = command->execute(executor);
42 if (result == ExecutionFailed || result == ExecutionFailedRedraw)
45 commandExecuteSuccess = false;
48 if (result == ExecutionFailedRedraw || result == ExecutionSuccessRedraw)
53 unsigned int pid = command->getSenderPid();
54 LOG_INFO("CommitCommand", "executed " << command->getString()
55 << " from " << executor->getSenderName(pid) << "(" << pid << ")"
56 << (commandExecuteSuccess ? "+" : "-"));
60 scene->m_toBeCommittedList.clear();
62 ExecutionResult returnValue = ExecutionFailed;
68 returnValue = ExecutionSuccessRedraw;
72 returnValue = ExecutionSuccess;
79 returnValue = ExecutionFailedRedraw;
83 returnValue = ExecutionFailed;
89 const std::string CommitCommand::getString()
91 return "CommitCommand()";