The MAUVE Toolchain
Service.hpp
1 /*
2  * Copyright 2017 ONERA
3  *
4  * This file is part of the MAUVE Runtime project.
5  *
6  * MAUVE Runtime is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License version 3 as
8  * published by the Free Software Foundation.
9  *
10  * MAUVE Runtime is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with MAUVE. If not, see <https://www.gnu.org/licenses/lgpl-3.0>.
17  */
18 #ifndef MAUVE_RUNTIME_SERVICE_HPP
19 #define MAUVE_RUNTIME_SERVICE_HPP
20 
21 #include <string>
22 #include "AbstractPort.hpp"
23 
24 namespace mauve {
25  namespace runtime {
26 
27  class AbstractInterface;
28 
30  class Service {
31  public:
32  Service() = delete;
34  Service(std::string const & name);
36  Service(const Service & other) = delete;
37  virtual ~Service() noexcept;
38 
40  const std::string name;
42  std::string type_name() const;
43 
44  virtual connection_type get_type() const = 0;
45 
46  virtual std::string get_resource_name() const = 0;
47  };
48 
49  }
50 } /* namespace mauve */
51 
52 #endif
The MAUVE namespace.
Definition: tracing.hpp:24
const std::string name
Service name.
Definition: Service.hpp:40
A Service.
Definition: Service.hpp:30
connection_type
Port types.
Definition: AbstractPort.hpp:28
std::string type_name() const
Service type name.