1 //******************************************************************
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
24 * This file contains the resource container APIs provided to the developers.
27 #ifndef RCSRESOURCECONTAINER_H_
28 #define RCSRESOURCECONTAINER_H_
36 #include "RCSBundleInfo.h"
44 * @class ResourceContainer
45 * @brief This class provides APIs for managing the container and bundles in the container.
48 class RCSResourceContainer
54 RCSResourceContainer();
59 virtual ~RCSResourceContainer();
62 * API for starting the Container
64 * @details This API start the container with the provided Configuration file.
66 * @param configFile - configuration File that contains the Bundle/Bundles information.
69 virtual void startContainer(const std::string &configFile) = 0;
71 * API for stopping the Container
73 virtual void stopContainer() = 0;
77 * API for getting the list of all bundles in the container
79 * @return list<BundleInfo*> -List of BundleInfo pointer each associated with a bundle
82 virtual std::list<RCSBundleInfo *> listBundles() = 0;
84 * API for starting the bundle.
86 * @param bundleId - Id of the Bundle
89 virtual void startBundle(const std::string &bundleId) = 0;
91 * API for Stopping the bundle
93 * @param bundleId - Id of the Bundle
96 virtual void stopBundle(const std::string &bundleId) = 0;
98 // dynamic configuration
100 * API for adding the bundle to the Container
102 * @param bundleId - Id of the Bundle
103 * @param bundleUri - Uri of the bundle
104 * @param bundlePath - Path of the bundle
105 * @param params - key-value pairs in string form for other Bundle parameters
108 virtual void addBundle(const std::string &bundleId, const std::string &bundleUri, const std::string &bundlePath,
109 std::map<std::string, std::string> params) = 0;
111 * API for removing the bundle from the container
113 * @param bundleId - Id of the Bundle
116 virtual void removeBundle(const std::string &bundleId) = 0;
119 * API for adding the Resource configuration information to the bundle
121 * @param bundleId - Id of the Bundle
122 * @param resourceUri - URI of the resource
123 * @param params - key-value pairs in string form for other Bundle parameters
126 virtual void addResourceConfig(const std::string &bundleId, const std::string &esourceUri,
127 std::map<std::string, std::string> params) = 0;
129 * API for removing the Resource configuration information from the bundle
131 * @param bundleId - Id of the Bundle
132 * @param resourceUri - URI of the resource
135 virtual void removeResourceConfig(const std::string &bundleId, const std::string &resourceUri) = 0;
138 * API for getting the list of Bundle Resources
140 * @param bundleId - Id of the Bundle
143 virtual std::list<std::string> listBundleResources(const std::string &bundleId) = 0;
146 * API for getting the Instance of ResourceContainer class
148 * @return RCSResourceContainer - Instance of the "RCSResourceContainer" class
151 static RCSResourceContainer *getInstance();
156 #endif /* RCSRESOURCECONTAINER_H_ */