Stop.cpp
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5 *
6 * ArmarX is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * ArmarX is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * @package ArmarXCore::core
19 * @author Nicola Miskowiec
20 * @date 2016
21 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22 * GNU General Public License
23 */
24
25
26#include "Stop.h"
27
28using namespace ScenarioManager;
29using namespace Exec;
30using namespace Data_Structure;
31
35
36void
38{
39 const int signalledPid = application->getPid();
40 stopper->stop(application);
41 awaitTermination(application, signalledPid);
42}
43
46{
47 return this->stopper;
48}
void awaitTermination(const Data_Structure::ApplicationInstancePtr &application, int signalledPid)
Waits until the process that was signalled has terminated, then clears the application's pid.
StopStrategy(ApplicationStopperPtr stopper)
Stop(ApplicationStopperPtr stopper)
Constructor that sets the ApplicationStopper used by this StopStrategy.
Definition Stop.cpp:32
ApplicationStopperPtr getStopper()
Returns the stopper used by this StopStrategy.
Definition Stop.cpp:45
void stop(Data_Structure::ApplicationInstancePtr application) override
Stops an application.
Definition Stop.cpp:37
std::shared_ptr< ApplicationInstance > ApplicationInstancePtr
std::shared_ptr< ApplicationStopper > ApplicationStopperPtr