networkservice
Public Member Functions | Private Attributes | List of all members
service::plugins::network::Network Class Reference

Configure the network (enable network interfaces, set IP addresses, add new network interfaces, ...) More...

#include "plugins/network/Network.h"

Inheritance diagram for service::plugins::network::Network:
Inheritance graph
[legend]
Collaboration diagram for service::plugins::network::Network:
Collaboration graph
[legend]

Public Member Functions

 Network (const utils::command::IExecutor &executor, const utils::file::IWriter &writer)
 
 ~Network () override
 
 Network (const Network &)=delete
 
Networkoperator= (const Network &)=delete
 
 Network (Network &&)=delete
 
Networkoperator= (Network &&)=delete
 
bool hasInterface (const std::string &interfaceName) const override
 
void applyInterfaceCommands (const std::vector< std::string > &interfaceCommands) const override
 Apply "interface commands". More...
 
void applyLayerCommands (const std::vector< service::plugins::config::ConfigData::Network::LayerCommand > &layerCommands) const override
 Apply "layer commands". More...
 
- Public Member Functions inherited from service::plugins::network::INetwork
 INetwork ()=default
 
virtual ~INetwork ()=default
 
 INetwork (const INetwork &)=delete
 
INetworkoperator= (const INetwork &)=delete
 
 INetwork (INetwork &&)=delete
 
INetworkoperator= (INetwork &&)=delete
 

Private Attributes

std::unique_ptr< Internal > m_internal
 

Detailed Description

Configure the network (enable network interfaces, set IP addresses, add new network interfaces, ...)

This class is the "low level class" that implements INetwork.h

Note
Copy contructor, copy-assignment operator, move constructor and move-assignment operator are defined to be compliant with the "Rule of five"
See also
https://en.cppreference.com/w/cpp/language/rule_of_three
Author
Boubacar DIENE bouba.nosp@m.car..nosp@m.diene.nosp@m.@gma.nosp@m.il.co.nosp@m.m
Date
April 2020

Constructor & Destructor Documentation

◆ Network() [1/3]

service::plugins::network::Network::Network ( const utils::command::IExecutor executor,
const utils::file::IWriter writer 
)
explicit

Class constructor

Parameters
executorCommand executor to use
writerWriter object to write into files

◆ ~Network()

service::plugins::network::Network::~Network ( )
override

Class destructor

Note
The override specifier aims at making the compiler warn if the base class's destructor is not virtual.

◆ Network() [2/3]

service::plugins::network::Network::Network ( const Network )
delete

Class copy constructor

◆ Network() [3/3]

service::plugins::network::Network::Network ( Network &&  )
delete

Class move constructor

Member Function Documentation

◆ applyInterfaceCommands()

void service::plugins::network::Network::applyInterfaceCommands ( const std::vector< std::string > &  interfaceCommands) const
overridevirtual

Apply "interface commands".

Parameters
interfaceCommandsThee list of interface commands to apply

Implements service::plugins::network::INetwork.

◆ applyLayerCommands()

void service::plugins::network::Network::applyLayerCommands ( const std::vector< service::plugins::config::ConfigData::Network::LayerCommand > &  layerCommands) const
overridevirtual

Apply "layer commands".

Parameters
layerCommandsThe list of layer commands to apply

Implements service::plugins::network::INetwork.

◆ hasInterface()

bool service::plugins::network::Network::hasInterface ( const std::string &  interfaceName) const
overridevirtual

Check if the network interface whose name is "interfaceName" exists

Implements service::plugins::network::INetwork.

◆ operator=() [1/2]

Network& service::plugins::network::Network::operator= ( const Network )
delete

Class copy-assignment operator

◆ operator=() [2/2]

Network& service::plugins::network::Network::operator= ( Network &&  )
delete

Class move-assignment operator

Member Data Documentation

◆ m_internal

std::unique_ptr<Internal> service::plugins::network::Network::m_internal
private

The documentation for this class was generated from the following file: