StopperFactory.h
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#pragma once
27
28#include <memory>
29
30#include <IceGrid/Admin.h>
31
32#include "ApplicationStopper.h"
33
35{
36 /**
37 * @class StopperFactory
38 * @ingroup exec
39 * @brief Abstract base class for factory classes that create ApplicationStopper.
40 * Should be implemented for each operating system.
41 */
43 {
44
45 public:
46 /**
47 * Returns a system-specific ApplicationStopper, which stops by using the pid.
48 * @return system-specific by pid stopper
49 */
51
52 /**
53 * Returns a system-specific ApplicationStopper, which stops by using the name.
54 * @return system-specific by name stopper
55 */
57
58 /**
59 * Returns the right StopperFactory for this operating system.
60 * @return StopperFactory depending on the operating system
61 */
62 static std::shared_ptr<StopperFactory> getFactory();
63 };
64
65 using StopperFactoryPtr = std::shared_ptr<ScenarioManager::Exec::StopperFactory>;
66} // namespace ScenarioManager::Exec
Abstract base class for factory classes that create ApplicationStopper.
virtual ApplicationStopperPtr getPidStopper()=0
Returns a system-specific ApplicationStopper, which stops by using the pid.
virtual ApplicationStopperPtr getByNameStopper()=0
Returns a system-specific ApplicationStopper, which stops by using the name.
static std::shared_ptr< StopperFactory > getFactory()
Returns the right StopperFactory for this operating system.
std::shared_ptr< ApplicationStopper > ApplicationStopperPtr
std::shared_ptr< ScenarioManager::Exec::StopperFactory > StopperFactoryPtr