AnCH Framework  0.1
Another C++ Hack Framework
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
network.hpp
1 /*
2  ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3  Copyright (C) 2012 Vincent Lachenal
4 
5  This file is part of ANCH Framework.
6 
7  ANCH Framework is free software: you can redistribute it and/or modify
8  it under the terms of the GNU Lesser General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  ANCH Framework is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU Lesser General Public License for more details.
16 
17  You should have received a copy of the GNU Lesser General Public License
18  along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19 */
20 #ifndef _ANCH_DEVICE_NETWORK_H_
21 #define _ANCH_DEVICE_NETWORK_H_
22 
23 #include <iostream>
24 #include <map>
25 #include <mutex>
26 
27 #include "device/networkInterface.hpp"
28 #include "device/deviceException.hpp"
29 
30 
31 namespace anch {
32  namespace device {
33 
39  class Network {
40 
41  private:
42  // Attributes +
44  static std::map<std::string,anch::device::NetworkInterface>* _interfaces;
45 
47  static std::mutex MUTEX;
48  // Attributes -
49 
50  private:
51  // Constructors +
55  Network();
56  // Constructors -
57 
58  public:
59  // Destructors +
63  virtual ~Network();
64  // Destructors -
65 
66  public:
67  // Methods +
77  static const anch::device::NetworkInterface* getInterface(const std::string& ifName)
79 
87  static const std::map<std::string,anch::device::NetworkInterface>& getInterfaces()
89 
95  static void reload() throw(anch::device::DeviceException);
96 
97  private:
103  static void load() throw(anch::device::DeviceException);
104  // Methods -
105 
106  };
107 
108  }
109 }
110 
111 #endif // _ANCH_DEVICE_NETWORK_H_
Definition: networkInterface.hpp:38
static void reload()
Definition: network.cpp:118
Definition: network.hpp:39
virtual ~Network()
Definition: network.cpp:65
Definition: deviceException.hpp:34
AnCH framework base namespace.
Definition: base64.hpp:28
static const anch::device::NetworkInterface * getInterface(const std::string &ifName)
Definition: network.cpp:83
static const std::map< std::string, anch::device::NetworkInterface > & getInterfaces()
Definition: network.cpp:104