TYPE3
[iec.git] / src / type3_AndroidCloud / anbox-master / src / anbox / container / management_api_skeleton.h
1 /*
2  * Copyright (C) 2016 Simon Fels <morphis@gravedo.de>
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3, as published
6  * by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranties of
10  * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11  * PURPOSE.  See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  */
17
18 #ifndef ANBOX_CONTAINER_MANAGEMENT_API_SKELETON_H_
19 #define ANBOX_CONTAINER_MANAGEMENT_API_SKELETON_H_
20
21 #include <memory>
22
23 namespace google {
24 namespace protobuf {
25 class Closure;
26 }  // namespace protobuf
27 }  // namespace google
28
29 namespace anbox {
30 namespace protobuf {
31 namespace rpc {
32 class Void;
33 }  // namespace rpc
34 namespace container {
35 class StartContainer;
36 class StopContainer;
37 }  // namespace container
38 }  // namespace protobuf
39 namespace rpc {
40 class PendingCallCache;
41 }  // namespace rpc
42 namespace container {
43 class Container;
44 class ManagementApiSkeleton {
45  public:
46   ManagementApiSkeleton(
47       const std::shared_ptr<rpc::PendingCallCache> &pending_calls,
48       const std::shared_ptr<Container> &container);
49   ~ManagementApiSkeleton();
50
51   void start_container(
52       anbox::protobuf::container::StartContainer const *request,
53       anbox::protobuf::rpc::Void *response, google::protobuf::Closure *done);
54
55   void stop_container(
56       anbox::protobuf::container::StopContainer const *request,
57       anbox::protobuf::rpc::Void *response, google::protobuf::Closure *done);
58
59  private:
60   std::shared_ptr<rpc::PendingCallCache> pending_calls_;
61   std::shared_ptr<Container> container_;
62 };
63 }  // namespace container
64 }  // namespace anbox
65
66 #endif