softwarecontainer  0.18.0-739e8d7 2017-05-04
devicenodelogic.h
1 /*
2  * Copyright (C) 2016-2017 Pelagicore AB
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
9  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
10  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
11  * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
12  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
13  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
14  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
15  * SOFTWARE.
16  *
17  * For further information see LICENSE
18  */
19 
20 #pragma once
21 
22 #include "softwarecontainer-common.h"
23 #include "devicenode.h"
24 
25 namespace softwarecontainer {
26 
32 {
33  LOG_DECLARE_CLASS_CONTEXT("DNL", "Device node logic");
34 
35 public:
36  DeviceNodeLogic() {};
37 
38  /*
39  * @brief Find device node which has the same name with the argument
40  *
41  * @return Iterator to the founded device node element or end of the list
42  * if no such element is found.
43  */
44  std::shared_ptr<Device> findDeviceByName(const std::string name);
45 
46  /*
47  * @brief Update the device node list due to white-listing policy
48  * i.e. if the device name does not exist new device node will be added
49  * then update the mode of device node
50  *
51  * @return either true or false due to state of operation
52  */
53  bool updateDeviceList(Device &dev);
54 
55  /*
56  * @brief Get the list of device nodes
57  *
58  * @return A list of well-formed device nodes ready to be applied
59  */
60  const std::vector<std::shared_ptr<Device>> &getDevList();
61 
62 private:
63  std::vector<std::shared_ptr<Device>> m_devList;
64 };
65 
66 } // namespace softwarecontainer
Developers guide to adding a config item:
This class is responsible for storing all device node configurations in a well-formed list...