981 lines
32 KiB
Diff
981 lines
32 KiB
Diff
|
From fab323320d5b955ed034b2eea390a9bbb549e8e5 Mon Sep 17 00:00:00 2001
|
||
|
From: Peter Klein <kleinpa00@gmail.com>
|
||
|
Date: Thu, 11 Jun 2020 02:32:13 +0000
|
||
|
Subject: [PATCH] Remove dynamic exception specifications from
|
||
|
clients/nutclient.cpp
|
||
|
|
||
|
These are invalid in c++17 and must be removed for compatibility with
|
||
|
modern compilers.
|
||
|
---
|
||
|
clients/nutclient.cpp | 146 +++++++++++++++----------------
|
||
|
clients/nutclient.h | 195 +++++++++++++++++++++---------------------
|
||
|
2 files changed, 167 insertions(+), 174 deletions(-)
|
||
|
|
||
|
diff --git a/clients/nutclient.cpp b/clients/nutclient.cpp
|
||
|
index b597e0e1e6c1..f5f0b70ef297 100644
|
||
|
--- a/clients/nutclient.cpp
|
||
|
+++ b/clients/nutclient.cpp
|
||
|
@@ -96,18 +96,18 @@
|
||
|
public:
|
||
|
Socket();
|
||
|
|
||
|
- void connect(const std::string& host, int port)throw(nut::IOException);
|
||
|
+ void connect(const std::string& host, int port);
|
||
|
void disconnect();
|
||
|
bool isConnected()const;
|
||
|
|
||
|
void setTimeout(long timeout);
|
||
|
bool hasTimeout()const{return _tv.tv_sec>=0;}
|
||
|
|
||
|
- size_t read(void* buf, size_t sz)throw(nut::IOException);
|
||
|
- size_t write(const void* buf, size_t sz)throw(nut::IOException);
|
||
|
+ size_t read(void* buf, size_t sz);
|
||
|
+ size_t write(const void* buf, size_t sz);
|
||
|
|
||
|
- std::string read()throw(nut::IOException);
|
||
|
- void write(const std::string& str)throw(nut::IOException);
|
||
|
+ std::string read();
|
||
|
+ void write(const std::string& str);
|
||
|
|
||
|
|
||
|
private:
|
||
|
@@ -129,7 +129,7 @@
|
||
|
_tv.tv_sec = timeout;
|
||
|
}
|
||
|
|
||
|
-void Socket::connect(const std::string& host, int port)throw(nut::IOException)
|
||
|
+void Socket::connect(const std::string& host, int port)
|
||
|
{
|
||
|
int sock_fd;
|
||
|
struct addrinfo hints, *res, *ai;
|
||
|
@@ -298,7 +298,7 @@
|
||
|
return _sock!=INVALID_SOCKET;
|
||
|
}
|
||
|
|
||
|
-size_t Socket::read(void* buf, size_t sz)throw(nut::IOException)
|
||
|
+size_t Socket::read(void* buf, size_t sz)
|
||
|
{
|
||
|
if(!isConnected())
|
||
|
{
|
||
|
@@ -325,7 +325,7 @@
|
||
|
return (size_t) res;
|
||
|
}
|
||
|
|
||
|
-size_t Socket::write(const void* buf, size_t sz)throw(nut::IOException)
|
||
|
+size_t Socket::write(const void* buf, size_t sz)
|
||
|
{
|
||
|
if(!isConnected())
|
||
|
{
|
||
|
@@ -352,7 +352,7 @@
|
||
|
return (size_t) res;
|
||
|
}
|
||
|
|
||
|
-std::string Socket::read()throw(nut::IOException)
|
||
|
+std::string Socket::read()
|
||
|
{
|
||
|
std::string res;
|
||
|
char buff[256];
|
||
|
@@ -383,7 +383,7 @@
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-void Socket::write(const std::string& str)throw(nut::IOException)
|
||
|
+void Socket::write(const std::string& str)
|
||
|
{
|
||
|
// write(str.c_str(), str.size());
|
||
|
// write("\n", 1);
|
||
|
@@ -408,13 +408,13 @@
|
||
|
{
|
||
|
}
|
||
|
|
||
|
-bool Client::hasDevice(const std::string& dev)throw(NutException)
|
||
|
+bool Client::hasDevice(const std::string& dev)
|
||
|
{
|
||
|
std::set<std::string> devs = getDeviceNames();
|
||
|
return devs.find(dev) != devs.end();
|
||
|
}
|
||
|
|
||
|
-Device Client::getDevice(const std::string& name)throw(NutException)
|
||
|
+Device Client::getDevice(const std::string& name)
|
||
|
{
|
||
|
if(hasDevice(name))
|
||
|
return Device(this, name);
|
||
|
@@ -422,7 +422,7 @@
|
||
|
return Device(NULL, "");
|
||
|
}
|
||
|
|
||
|
-std::set<Device> Client::getDevices()throw(NutException)
|
||
|
+std::set<Device> Client::getDevices()
|
||
|
{
|
||
|
std::set<Device> res;
|
||
|
|
||
|
@@ -435,13 +435,13 @@
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
-bool Client::hasDeviceVariable(const std::string& dev, const std::string& name)throw(NutException)
|
||
|
+bool Client::hasDeviceVariable(const std::string& dev, const std::string& name)
|
||
|
{
|
||
|
std::set<std::string> names = getDeviceVariableNames(dev);
|
||
|
return names.find(name) != names.end();
|
||
|
}
|
||
|
|
||
|
-std::map<std::string,std::vector<std::string> > Client::getDeviceVariableValues(const std::string& dev)throw(NutException)
|
||
|
+std::map<std::string,std::vector<std::string> > Client::getDeviceVariableValues(const std::string& dev)
|
||
|
{
|
||
|
std::map<std::string,std::vector<std::string> > res;
|
||
|
|
||
|
@@ -455,7 +455,7 @@
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
-bool Client::hasDeviceCommand(const std::string& dev, const std::string& name)throw(NutException)
|
||
|
+bool Client::hasDeviceCommand(const std::string& dev, const std::string& name)
|
||
|
{
|
||
|
std::set<std::string> names = getDeviceCommandNames(dev);
|
||
|
return names.find(name) != names.end();
|
||
|
@@ -477,7 +477,7 @@
|
||
|
// Do not connect now
|
||
|
}
|
||
|
|
||
|
-TcpClient::TcpClient(const std::string& host, int port)throw(IOException):
|
||
|
+TcpClient::TcpClient(const std::string& host, int port):
|
||
|
Client(),
|
||
|
_socket(new internal::Socket)
|
||
|
{
|
||
|
@@ -489,14 +489,14 @@
|
||
|
delete _socket;
|
||
|
}
|
||
|
|
||
|
-void TcpClient::connect(const std::string& host, int port)throw(IOException)
|
||
|
+void TcpClient::connect(const std::string& host, int port)
|
||
|
{
|
||
|
_host = host;
|
||
|
_port = port;
|
||
|
connect();
|
||
|
}
|
||
|
|
||
|
-void TcpClient::connect()throw(nut::IOException)
|
||
|
+void TcpClient::connect()
|
||
|
{
|
||
|
_socket->connect(_host, _port);
|
||
|
}
|
||
|
@@ -532,19 +532,18 @@
|
||
|
}
|
||
|
|
||
|
void TcpClient::authenticate(const std::string& user, const std::string& passwd)
|
||
|
- throw(NutException)
|
||
|
{
|
||
|
detectError(sendQuery("USERNAME " + user));
|
||
|
detectError(sendQuery("PASSWORD " + passwd));
|
||
|
}
|
||
|
|
||
|
-void TcpClient::logout()throw(NutException)
|
||
|
+void TcpClient::logout()
|
||
|
{
|
||
|
detectError(sendQuery("LOGOUT"));
|
||
|
_socket->disconnect();
|
||
|
}
|
||
|
|
||
|
-Device TcpClient::getDevice(const std::string& name)throw(NutException)
|
||
|
+Device TcpClient::getDevice(const std::string& name)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
@@ -560,7 +559,7 @@
|
||
|
return Device(this, name);
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> TcpClient::getDeviceNames()throw(NutException)
|
||
|
+std::set<std::string> TcpClient::getDeviceNames()
|
||
|
{
|
||
|
std::set<std::string> res;
|
||
|
|
||
|
@@ -576,12 +575,12 @@
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
-std::string TcpClient::getDeviceDescription(const std::string& name)throw(NutException)
|
||
|
+std::string TcpClient::getDeviceDescription(const std::string& name)
|
||
|
{
|
||
|
return get("UPSDESC", name)[0];
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> TcpClient::getDeviceVariableNames(const std::string& dev)throw(NutException)
|
||
|
+std::set<std::string> TcpClient::getDeviceVariableNames(const std::string& dev)
|
||
|
{
|
||
|
std::set<std::string> set;
|
||
|
|
||
|
@@ -594,7 +593,7 @@
|
||
|
return set;
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> TcpClient::getDeviceRWVariableNames(const std::string& dev)throw(NutException)
|
||
|
+std::set<std::string> TcpClient::getDeviceRWVariableNames(const std::string& dev)
|
||
|
{
|
||
|
std::set<std::string> set;
|
||
|
|
||
|
@@ -607,17 +606,17 @@
|
||
|
return set;
|
||
|
}
|
||
|
|
||
|
-std::string TcpClient::getDeviceVariableDescription(const std::string& dev, const std::string& name)throw(NutException)
|
||
|
+std::string TcpClient::getDeviceVariableDescription(const std::string& dev, const std::string& name)
|
||
|
{
|
||
|
return get("DESC", dev + " " + name)[0];
|
||
|
}
|
||
|
|
||
|
-std::vector<std::string> TcpClient::getDeviceVariableValue(const std::string& dev, const std::string& name)throw(NutException)
|
||
|
+std::vector<std::string> TcpClient::getDeviceVariableValue(const std::string& dev, const std::string& name)
|
||
|
{
|
||
|
return get("VAR", dev + " " + name);
|
||
|
}
|
||
|
|
||
|
-std::map<std::string,std::vector<std::string> > TcpClient::getDeviceVariableValues(const std::string& dev)throw(NutException)
|
||
|
+std::map<std::string,std::vector<std::string> > TcpClient::getDeviceVariableValues(const std::string& dev)
|
||
|
{
|
||
|
|
||
|
std::map<std::string,std::vector<std::string> > map;
|
||
|
@@ -634,13 +633,13 @@
|
||
|
return map;
|
||
|
}
|
||
|
|
||
|
-void TcpClient::setDeviceVariable(const std::string& dev, const std::string& name, const std::string& value)throw(NutException)
|
||
|
+void TcpClient::setDeviceVariable(const std::string& dev, const std::string& name, const std::string& value)
|
||
|
{
|
||
|
std::string query = "SET VAR " + dev + " " + name + " " + escape(value);
|
||
|
detectError(sendQuery(query));
|
||
|
}
|
||
|
|
||
|
-void TcpClient::setDeviceVariable(const std::string& dev, const std::string& name, const std::vector<std::string>& values)throw(NutException)
|
||
|
+void TcpClient::setDeviceVariable(const std::string& dev, const std::string& name, const std::vector<std::string>& values)
|
||
|
{
|
||
|
std::string query = "SET VAR " + dev + " " + name;
|
||
|
for(size_t n=0; n<values.size(); ++n)
|
||
|
@@ -650,7 +649,7 @@
|
||
|
detectError(sendQuery(query));
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> TcpClient::getDeviceCommandNames(const std::string& dev)throw(NutException)
|
||
|
+std::set<std::string> TcpClient::getDeviceCommandNames(const std::string& dev)
|
||
|
{
|
||
|
std::set<std::string> cmds;
|
||
|
|
||
|
@@ -663,32 +662,32 @@
|
||
|
return cmds;
|
||
|
}
|
||
|
|
||
|
-std::string TcpClient::getDeviceCommandDescription(const std::string& dev, const std::string& name)throw(NutException)
|
||
|
+std::string TcpClient::getDeviceCommandDescription(const std::string& dev, const std::string& name)
|
||
|
{
|
||
|
return get("CMDDESC", dev + " " + name)[0];
|
||
|
}
|
||
|
|
||
|
-void TcpClient::executeDeviceCommand(const std::string& dev, const std::string& name)throw(NutException)
|
||
|
+void TcpClient::executeDeviceCommand(const std::string& dev, const std::string& name)
|
||
|
{
|
||
|
detectError(sendQuery("INSTCMD " + dev + " " + name));
|
||
|
}
|
||
|
|
||
|
-void TcpClient::deviceLogin(const std::string& dev)throw(NutException)
|
||
|
+void TcpClient::deviceLogin(const std::string& dev)
|
||
|
{
|
||
|
detectError(sendQuery("LOGIN " + dev));
|
||
|
}
|
||
|
|
||
|
-void TcpClient::deviceMaster(const std::string& dev)throw(NutException)
|
||
|
+void TcpClient::deviceMaster(const std::string& dev)
|
||
|
{
|
||
|
detectError(sendQuery("MASTER " + dev));
|
||
|
}
|
||
|
|
||
|
-void TcpClient::deviceForcedShutdown(const std::string& dev)throw(NutException)
|
||
|
+void TcpClient::deviceForcedShutdown(const std::string& dev)
|
||
|
{
|
||
|
detectError(sendQuery("FSD " + dev));
|
||
|
}
|
||
|
|
||
|
-int TcpClient::deviceGetNumLogins(const std::string& dev)throw(NutException)
|
||
|
+int TcpClient::deviceGetNumLogins(const std::string& dev)
|
||
|
{
|
||
|
std::string num = get("NUMLOGINS", dev)[0];
|
||
|
return atoi(num.c_str());
|
||
|
@@ -696,7 +695,7 @@
|
||
|
|
||
|
|
||
|
std::vector<std::string> TcpClient::get
|
||
|
- (const std::string& subcmd, const std::string& params) throw(NutException)
|
||
|
+ (const std::string& subcmd, const std::string& params)
|
||
|
{
|
||
|
std::string req = subcmd;
|
||
|
if(!params.empty())
|
||
|
@@ -714,7 +713,7 @@
|
||
|
}
|
||
|
|
||
|
std::vector<std::vector<std::string> > TcpClient::list
|
||
|
- (const std::string& subcmd, const std::string& params) throw(NutException)
|
||
|
+ (const std::string& subcmd, const std::string& params)
|
||
|
{
|
||
|
std::string req = subcmd;
|
||
|
if(!params.empty())
|
||
|
@@ -748,13 +747,13 @@
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-std::string TcpClient::sendQuery(const std::string& req)throw(IOException)
|
||
|
+std::string TcpClient::sendQuery(const std::string& req)
|
||
|
{
|
||
|
_socket->write(req);
|
||
|
return _socket->read();
|
||
|
}
|
||
|
|
||
|
-void TcpClient::detectError(const std::string& req)throw(NutException)
|
||
|
+void TcpClient::detectError(const std::string& req)
|
||
|
{
|
||
|
if(req.substr(0,3)=="ERR")
|
||
|
{
|
||
|
@@ -954,47 +953,44 @@
|
||
|
return getName()<dev.getName();
|
||
|
}
|
||
|
|
||
|
-std::string Device::getDescription()throw(NutException)
|
||
|
+std::string Device::getDescription()
|
||
|
{
|
||
|
return getClient()->getDeviceDescription(getName());
|
||
|
}
|
||
|
|
||
|
std::vector<std::string> Device::getVariableValue(const std::string& name)
|
||
|
- throw(NutException)
|
||
|
{
|
||
|
return getClient()->getDeviceVariableValue(getName(), name);
|
||
|
}
|
||
|
|
||
|
std::map<std::string,std::vector<std::string> > Device::getVariableValues()
|
||
|
- throw(NutException)
|
||
|
{
|
||
|
return getClient()->getDeviceVariableValues(getName());
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> Device::getVariableNames()throw(NutException)
|
||
|
+std::set<std::string> Device::getVariableNames()
|
||
|
{
|
||
|
return getClient()->getDeviceVariableNames(getName());
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> Device::getRWVariableNames()throw(NutException)
|
||
|
+std::set<std::string> Device::getRWVariableNames()
|
||
|
{
|
||
|
return getClient()->getDeviceRWVariableNames(getName());
|
||
|
}
|
||
|
|
||
|
-void Device::setVariable(const std::string& name, const std::string& value)throw(NutException)
|
||
|
+void Device::setVariable(const std::string& name, const std::string& value)
|
||
|
{
|
||
|
getClient()->setDeviceVariable(getName(), name, value);
|
||
|
}
|
||
|
|
||
|
void Device::setVariable(const std::string& name, const std::vector<std::string>& values)
|
||
|
- throw(NutException)
|
||
|
{
|
||
|
getClient()->setDeviceVariable(getName(), name, values);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
-Variable Device::getVariable(const std::string& name)throw(NutException)
|
||
|
+Variable Device::getVariable(const std::string& name)
|
||
|
{
|
||
|
if(getClient()->hasDeviceVariable(getName(), name))
|
||
|
return Variable(this, name);
|
||
|
@@ -1002,7 +998,7 @@
|
||
|
return Variable(NULL, "");
|
||
|
}
|
||
|
|
||
|
-std::set<Variable> Device::getVariables()throw(NutException)
|
||
|
+std::set<Variable> Device::getVariables()
|
||
|
{
|
||
|
std::set<Variable> set;
|
||
|
|
||
|
@@ -1015,7 +1011,7 @@
|
||
|
return set;
|
||
|
}
|
||
|
|
||
|
-std::set<Variable> Device::getRWVariables()throw(NutException)
|
||
|
+std::set<Variable> Device::getRWVariables()
|
||
|
{
|
||
|
std::set<Variable> set;
|
||
|
|
||
|
@@ -1028,12 +1024,12 @@
|
||
|
return set;
|
||
|
}
|
||
|
|
||
|
-std::set<std::string> Device::getCommandNames()throw(NutException)
|
||
|
+std::set<std::string> Device::getCommandNames()
|
||
|
{
|
||
|
return getClient()->getDeviceCommandNames(getName());
|
||
|
}
|
||
|
|
||
|
-std::set<Command> Device::getCommands()throw(NutException)
|
||
|
+std::set<Command> Device::getCommands()
|
||
|
{
|
||
|
std::set<Command> cmds;
|
||
|
|
||
|
@@ -1046,7 +1042,7 @@
|
||
|
return cmds;
|
||
|
}
|
||
|
|
||
|
-Command Device::getCommand(const std::string& name)throw(NutException)
|
||
|
+Command Device::getCommand(const std::string& name)
|
||
|
{
|
||
|
if(getClient()->hasDeviceCommand(getName(), name))
|
||
|
return Command(this, name);
|
||
|
@@ -1054,26 +1050,26 @@
|
||
|
return Command(NULL, "");
|
||
|
}
|
||
|
|
||
|
-void Device::executeCommand(const std::string& name)throw(NutException)
|
||
|
+void Device::executeCommand(const std::string& name)
|
||
|
{
|
||
|
getClient()->executeDeviceCommand(getName(), name);
|
||
|
}
|
||
|
|
||
|
-void Device::login()throw(NutException)
|
||
|
+void Device::login()
|
||
|
{
|
||
|
getClient()->deviceLogin(getName());
|
||
|
}
|
||
|
|
||
|
-void Device::master()throw(NutException)
|
||
|
+void Device::master()
|
||
|
{
|
||
|
getClient()->deviceMaster(getName());
|
||
|
}
|
||
|
|
||
|
-void Device::forcedShutdown()throw(NutException)
|
||
|
+void Device::forcedShutdown()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
-int Device::getNumLogins()throw(NutException)
|
||
|
+int Device::getNumLogins()
|
||
|
{
|
||
|
return getClient()->deviceGetNumLogins(getName());
|
||
|
}
|
||
|
@@ -1141,22 +1137,22 @@
|
||
|
return getName()<var.getName();
|
||
|
}
|
||
|
|
||
|
-std::vector<std::string> Variable::getValue()throw(NutException)
|
||
|
+std::vector<std::string> Variable::getValue()
|
||
|
{
|
||
|
return getDevice()->getClient()->getDeviceVariableValue(getDevice()->getName(), getName());
|
||
|
}
|
||
|
|
||
|
-std::string Variable::getDescription()throw(NutException)
|
||
|
+std::string Variable::getDescription()
|
||
|
{
|
||
|
return getDevice()->getClient()->getDeviceVariableDescription(getDevice()->getName(), getName());
|
||
|
}
|
||
|
|
||
|
-void Variable::setValue(const std::string& value)throw(NutException)
|
||
|
+void Variable::setValue(const std::string& value)
|
||
|
{
|
||
|
getDevice()->setVariable(getName(), value);
|
||
|
}
|
||
|
|
||
|
-void Variable::setValues(const std::vector<std::string>& values)throw(NutException)
|
||
|
+void Variable::setValues(const std::vector<std::string>& values)
|
||
|
{
|
||
|
getDevice()->setVariable(getName(), values);
|
||
|
}
|
||
|
@@ -1225,12 +1221,12 @@
|
||
|
return getName()<cmd.getName();
|
||
|
}
|
||
|
|
||
|
-std::string Command::getDescription()throw(NutException)
|
||
|
+std::string Command::getDescription()
|
||
|
{
|
||
|
return getDevice()->getClient()->getDeviceCommandDescription(getDevice()->getName(), getName());
|
||
|
}
|
||
|
|
||
|
-void Command::execute()throw(NutException)
|
||
|
+void Command::execute()
|
||
|
{
|
||
|
getDevice()->executeCommand(getName());
|
||
|
}
|
||
|
--- a/clients/nutclient.h
|
||
|
+++ b/clients/nutclient.h
|
||
|
@@ -51,9 +51,9 @@
|
||
|
{
|
||
|
public:
|
||
|
NutException(const std::string& msg):_msg(msg){}
|
||
|
- virtual ~NutException() throw() {}
|
||
|
- virtual const char * what() const throw() {return this->_msg.c_str();}
|
||
|
- virtual std::string str() const throw() {return this->_msg;}
|
||
|
+ virtual ~NutException() {}
|
||
|
+ virtual const char * what() const noexcept {return this->_msg.c_str();}
|
||
|
+ virtual std::string str() const noexcept {return this->_msg;}
|
||
|
private:
|
||
|
std::string _msg;
|
||
|
};
|
||
|
@@ -65,7 +65,7 @@
|
||
|
{
|
||
|
public:
|
||
|
SystemException();
|
||
|
- virtual ~SystemException() throw() {}
|
||
|
+ virtual ~SystemException() {}
|
||
|
private:
|
||
|
static std::string err();
|
||
|
};
|
||
|
@@ -78,7 +78,7 @@
|
||
|
{
|
||
|
public:
|
||
|
IOException(const std::string& msg):NutException(msg){}
|
||
|
- virtual ~IOException() throw() {}
|
||
|
+ virtual ~IOException() {}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
@@ -88,7 +88,7 @@
|
||
|
{
|
||
|
public:
|
||
|
UnknownHostException():IOException("Unknown host"){}
|
||
|
- virtual ~UnknownHostException() throw() {}
|
||
|
+ virtual ~UnknownHostException() {}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
@@ -98,7 +98,7 @@
|
||
|
{
|
||
|
public:
|
||
|
NotConnectedException():IOException("Not connected"){}
|
||
|
- virtual ~NotConnectedException() throw() {}
|
||
|
+ virtual ~NotConnectedException() {}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
@@ -108,7 +108,7 @@
|
||
|
{
|
||
|
public:
|
||
|
TimeoutException():IOException("Timeout"){}
|
||
|
- virtual ~TimeoutException() throw() {}
|
||
|
+ virtual ~TimeoutException() {}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
@@ -132,13 +132,13 @@
|
||
|
* \todo Is his method is global to all connection protocol or is it specific to TCP ?
|
||
|
* \note Actually, authentication fails only if already set, not if bad values are sent.
|
||
|
*/
|
||
|
- virtual void authenticate(const std::string& user, const std::string& passwd)throw(NutException)=0;
|
||
|
+ virtual void authenticate(const std::string& user, const std::string& passwd)=0;
|
||
|
|
||
|
/**
|
||
|
* Disconnect from the NUTD server.
|
||
|
* \todo Is his method is global to all connection protocol or is it specific to TCP ?
|
||
|
*/
|
||
|
- virtual void logout()throw(NutException)=0;
|
||
|
+ virtual void logout()=0;
|
||
|
|
||
|
/**
|
||
|
* Device manipulations.
|
||
|
@@ -151,29 +151,29 @@
|
||
|
* \param name Name of the device.
|
||
|
* \return The device.
|
||
|
*/
|
||
|
- virtual Device getDevice(const std::string& name)throw(NutException);
|
||
|
+ virtual Device getDevice(const std::string& name);
|
||
|
/**
|
||
|
* Retrieve the list of all devices supported by UPSD server.
|
||
|
* \return The set of supported devices.
|
||
|
*/
|
||
|
- virtual std::set<Device> getDevices()throw(NutException);
|
||
|
+ virtual std::set<Device> getDevices();
|
||
|
/**
|
||
|
* Test if a device is supported by the NUTD server.
|
||
|
* \param dev Device name.
|
||
|
* \return true if supported, false otherwise.
|
||
|
*/
|
||
|
- virtual bool hasDevice(const std::string& dev)throw(NutException);
|
||
|
+ virtual bool hasDevice(const std::string& dev);
|
||
|
/**
|
||
|
* Retrieve names of devices supported by NUTD server.
|
||
|
* \return The set of names of supported devices.
|
||
|
*/
|
||
|
- virtual std::set<std::string> getDeviceNames()throw(NutException)=0;
|
||
|
+ virtual std::set<std::string> getDeviceNames()=0;
|
||
|
/**
|
||
|
* Retrieve the description of a device.
|
||
|
* \param name Device name.
|
||
|
* \return Device description.
|
||
|
*/
|
||
|
- virtual std::string getDeviceDescription(const std::string& name)throw(NutException)=0;
|
||
|
+ virtual std::string getDeviceDescription(const std::string& name)=0;
|
||
|
/** \} */
|
||
|
|
||
|
/**
|
||
|
@@ -186,54 +186,54 @@
|
||
|
* \param dev Device name
|
||
|
* \return Variable names
|
||
|
*/
|
||
|
- virtual std::set<std::string> getDeviceVariableNames(const std::string& dev)throw(NutException)=0;
|
||
|
+ virtual std::set<std::string> getDeviceVariableNames(const std::string& dev)=0;
|
||
|
/**
|
||
|
* Retrieve names of read/write variables supported by a device.
|
||
|
* \param dev Device name
|
||
|
* \return RW variable names
|
||
|
*/
|
||
|
- virtual std::set<std::string> getDeviceRWVariableNames(const std::string& dev)throw(NutException)=0;
|
||
|
+ virtual std::set<std::string> getDeviceRWVariableNames(const std::string& dev)=0;
|
||
|
/**
|
||
|
* Test if a variable is supported by a device.
|
||
|
* \param dev Device name
|
||
|
* \param name Variable name
|
||
|
* \return true if the variable is supported.
|
||
|
*/
|
||
|
- virtual bool hasDeviceVariable(const std::string& dev, const std::string& name)throw(NutException);
|
||
|
+ virtual bool hasDeviceVariable(const std::string& dev, const std::string& name);
|
||
|
/**
|
||
|
* Retrieve the description of a variable.
|
||
|
* \param dev Device name
|
||
|
* \param name Variable name
|
||
|
* \return Variable description if provided.
|
||
|
*/
|
||
|
- virtual std::string getDeviceVariableDescription(const std::string& dev, const std::string& name)throw(NutException)=0;
|
||
|
+ virtual std::string getDeviceVariableDescription(const std::string& dev, const std::string& name)=0;
|
||
|
/**
|
||
|
* Retrieve values of a variable.
|
||
|
* \param dev Device name
|
||
|
* \param name Variable name
|
||
|
* \return Variable values (usually one) if available.
|
||
|
*/
|
||
|
- virtual std::vector<std::string> getDeviceVariableValue(const std::string& dev, const std::string& name)throw(NutException)=0;
|
||
|
+ virtual std::vector<std::string> getDeviceVariableValue(const std::string& dev, const std::string& name)=0;
|
||
|
/**
|
||
|
* Retrieve values of all variables of a device.
|
||
|
* \param dev Device name
|
||
|
* \return Variable values indexed by variable names.
|
||
|
*/
|
||
|
- virtual std::map<std::string,std::vector<std::string> > getDeviceVariableValues(const std::string& dev)throw(NutException);
|
||
|
+ virtual std::map<std::string,std::vector<std::string> > getDeviceVariableValues(const std::string& dev);
|
||
|
/**
|
||
|
* Intend to set the value of a variable.
|
||
|
* \param dev Device name
|
||
|
* \param name Variable name
|
||
|
* \param value Variable value
|
||
|
*/
|
||
|
- virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::string& value)throw(NutException)=0;
|
||
|
+ virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::string& value)=0;
|
||
|
/**
|
||
|
* Intend to set the value of a variable.
|
||
|
* \param dev Device name
|
||
|
* \param name Variable name
|
||
|
* \param value Variable value
|
||
|
*/
|
||
|
- virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::vector<std::string>& values)throw(NutException)=0;
|
||
|
+ virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::vector<std::string>& values)=0;
|
||
|
/** \} */
|
||
|
|
||
|
/**
|
||
|
@@ -246,27 +246,27 @@
|
||
|
* \param dev Device name
|
||
|
* \return Command names
|
||
|
*/
|
||
|
- virtual std::set<std::string> getDeviceCommandNames(const std::string& dev)throw(NutException)=0;
|
||
|
+ virtual std::set<std::string> getDeviceCommandNames(const std::string& dev)=0;
|
||
|
/**
|
||
|
* Test if a command is supported by a device.
|
||
|
* \param dev Device name
|
||
|
* \param name Command name
|
||
|
* \return true if the command is supported.
|
||
|
*/
|
||
|
- virtual bool hasDeviceCommand(const std::string& dev, const std::string& name)throw(NutException);
|
||
|
+ virtual bool hasDeviceCommand(const std::string& dev, const std::string& name);
|
||
|
/**
|
||
|
* Retrieve the description of a command.
|
||
|
* \param dev Device name
|
||
|
* \param name Command name
|
||
|
* \return Command description if provided.
|
||
|
*/
|
||
|
- virtual std::string getDeviceCommandDescription(const std::string& dev, const std::string& name)throw(NutException)=0;
|
||
|
+ virtual std::string getDeviceCommandDescription(const std::string& dev, const std::string& name)=0;
|
||
|
/**
|
||
|
* Intend to execute a command.
|
||
|
* \param dev Device name
|
||
|
* \param name Command name
|
||
|
*/
|
||
|
- virtual void executeDeviceCommand(const std::string& dev, const std::string& name)throw(NutException)=0;
|
||
|
+ virtual void executeDeviceCommand(const std::string& dev, const std::string& name)=0;
|
||
|
/** \} */
|
||
|
|
||
|
/**
|
||
|
@@ -277,15 +277,15 @@
|
||
|
* Log the current user (if authenticated) for a device.
|
||
|
* \param dev Device name.
|
||
|
*/
|
||
|
- virtual void deviceLogin(const std::string& dev)throw(NutException)=0;
|
||
|
+ virtual void deviceLogin(const std::string& dev)=0;
|
||
|
/**
|
||
|
* Retrieve the number of user longged in the specified device.
|
||
|
* \param dev Device name.
|
||
|
* \return Number of logged-in users.
|
||
|
*/
|
||
|
- virtual int deviceGetNumLogins(const std::string& dev)throw(NutException)=0;
|
||
|
- virtual void deviceMaster(const std::string& dev)throw(NutException)=0;
|
||
|
- virtual void deviceForcedShutdown(const std::string& dev)throw(NutException)=0;
|
||
|
+ virtual int deviceGetNumLogins(const std::string& dev)=0;
|
||
|
+ virtual void deviceMaster(const std::string& dev)=0;
|
||
|
+ virtual void deviceForcedShutdown(const std::string& dev)=0;
|
||
|
|
||
|
protected:
|
||
|
Client();
|
||
|
@@ -309,7 +309,7 @@
|
||
|
* \param host Server host name.
|
||
|
* \param port Server port.
|
||
|
*/
|
||
|
- TcpClient(const std::string& host, int port = 3493)throw(nut::IOException);
|
||
|
+ TcpClient(const std::string& host, int port = 3493);
|
||
|
~TcpClient();
|
||
|
|
||
|
/**
|
||
|
@@ -317,13 +317,13 @@
|
||
|
* \param host Server host name.
|
||
|
* \param port Server port.
|
||
|
*/
|
||
|
- void connect(const std::string& host, int port = 3493)throw(nut::IOException);
|
||
|
+ void connect(const std::string& host, int port = 3493);
|
||
|
|
||
|
/**
|
||
|
* Connect to the server.
|
||
|
* Host name and ports must have already set (usefull for reconnection).
|
||
|
*/
|
||
|
- void connect()throw(nut::IOException);
|
||
|
+ void connect();
|
||
|
|
||
|
/**
|
||
|
* Test if the connection is active.
|
||
|
@@ -358,39 +358,37 @@
|
||
|
*/
|
||
|
int getPort()const;
|
||
|
|
||
|
- virtual void authenticate(const std::string& user, const std::string& passwd)throw(NutException);
|
||
|
- virtual void logout()throw(NutException);
|
||
|
+ virtual void authenticate(const std::string& user, const std::string& passwd);
|
||
|
+ virtual void logout();
|
||
|
|
||
|
- virtual Device getDevice(const std::string& name)throw(NutException);
|
||
|
- virtual std::set<std::string> getDeviceNames()throw(NutException);
|
||
|
- virtual std::string getDeviceDescription(const std::string& name)throw(NutException);
|
||
|
-
|
||
|
- virtual std::set<std::string> getDeviceVariableNames(const std::string& dev)throw(NutException);
|
||
|
- virtual std::set<std::string> getDeviceRWVariableNames(const std::string& dev)throw(NutException);
|
||
|
- virtual std::string getDeviceVariableDescription(const std::string& dev, const std::string& name)throw(NutException);
|
||
|
- virtual std::vector<std::string> getDeviceVariableValue(const std::string& dev, const std::string& name)throw(NutException);
|
||
|
- virtual std::map<std::string,std::vector<std::string> > getDeviceVariableValues(const std::string& dev)throw(NutException);
|
||
|
- virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::string& value)throw(NutException);
|
||
|
- virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::vector<std::string>& values)throw(NutException);
|
||
|
-
|
||
|
- virtual std::set<std::string> getDeviceCommandNames(const std::string& dev)throw(NutException);
|
||
|
- virtual std::string getDeviceCommandDescription(const std::string& dev, const std::string& name)throw(NutException);
|
||
|
- virtual void executeDeviceCommand(const std::string& dev, const std::string& name)throw(NutException);
|
||
|
-
|
||
|
- virtual void deviceLogin(const std::string& dev)throw(NutException);
|
||
|
- virtual void deviceMaster(const std::string& dev)throw(NutException);
|
||
|
- virtual void deviceForcedShutdown(const std::string& dev)throw(NutException);
|
||
|
- virtual int deviceGetNumLogins(const std::string& dev)throw(NutException);
|
||
|
+ virtual Device getDevice(const std::string& name);
|
||
|
+ virtual std::set<std::string> getDeviceNames();
|
||
|
+ virtual std::string getDeviceDescription(const std::string& name);
|
||
|
+
|
||
|
+ virtual std::set<std::string> getDeviceVariableNames(const std::string& dev);
|
||
|
+ virtual std::set<std::string> getDeviceRWVariableNames(const std::string& dev);
|
||
|
+ virtual std::string getDeviceVariableDescription(const std::string& dev, const std::string& name);
|
||
|
+ virtual std::vector<std::string> getDeviceVariableValue(const std::string& dev, const std::string& name);
|
||
|
+ virtual std::map<std::string,std::vector<std::string> > getDeviceVariableValues(const std::string& dev);
|
||
|
+ virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::string& value);
|
||
|
+ virtual void setDeviceVariable(const std::string& dev, const std::string& name, const std::vector<std::string>& values);
|
||
|
+
|
||
|
+ virtual std::set<std::string> getDeviceCommandNames(const std::string& dev);
|
||
|
+ virtual std::string getDeviceCommandDescription(const std::string& dev, const std::string& name);
|
||
|
+ virtual void executeDeviceCommand(const std::string& dev, const std::string& name);
|
||
|
+
|
||
|
+ virtual void deviceLogin(const std::string& dev);
|
||
|
+ virtual void deviceMaster(const std::string& dev);
|
||
|
+ virtual void deviceForcedShutdown(const std::string& dev);
|
||
|
+ virtual int deviceGetNumLogins(const std::string& dev);
|
||
|
|
||
|
protected:
|
||
|
- std::string sendQuery(const std::string& req)throw(nut::IOException);
|
||
|
- static void detectError(const std::string& req)throw(nut::NutException);
|
||
|
+ std::string sendQuery(const std::string& req);
|
||
|
+ static void detectError(const std::string& req);
|
||
|
|
||
|
- std::vector<std::string> get(const std::string& subcmd, const std::string& params = "")
|
||
|
- throw(nut::NutException);
|
||
|
+ std::vector<std::string> get(const std::string& subcmd, const std::string& params = "");
|
||
|
|
||
|
- std::vector<std::vector<std::string> > list(const std::string& subcmd, const std::string& params = "")
|
||
|
- throw(nut::NutException);
|
||
|
+ std::vector<std::vector<std::string> > list(const std::string& subcmd, const std::string& params = "");
|
||
|
|
||
|
static std::vector<std::string> explode(const std::string& str, size_t begin=0);
|
||
|
static std::string escape(const std::string& str);
|
||
|
@@ -455,92 +453,92 @@
|
||
|
/**
|
||
|
* Retrieve the description of the devce if specified.
|
||
|
*/
|
||
|
- std::string getDescription()throw(NutException);
|
||
|
+ std::string getDescription();
|
||
|
|
||
|
/**
|
||
|
* Intend to retrieve the value of a variable of the device.
|
||
|
* \param name Name of the variable to get.
|
||
|
* \return Value of the variable, if available.
|
||
|
*/
|
||
|
- std::vector<std::string> getVariableValue(const std::string& name)throw(NutException);
|
||
|
+ std::vector<std::string> getVariableValue(const std::string& name);
|
||
|
/**
|
||
|
* Intend to retrieve values of all variables of the devices.
|
||
|
* \return Map of all variables values indexed by their names.
|
||
|
*/
|
||
|
- std::map<std::string,std::vector<std::string> > getVariableValues()throw(NutException);
|
||
|
+ std::map<std::string,std::vector<std::string> > getVariableValues();
|
||
|
/**
|
||
|
* Retrieve all variables names supported by the device.
|
||
|
* \return Set of available variable names.
|
||
|
*/
|
||
|
- std::set<std::string> getVariableNames()throw(NutException);
|
||
|
+ std::set<std::string> getVariableNames();
|
||
|
/**
|
||
|
* Retrieve all Read/Write variables names supported by the device.
|
||
|
* \return Set of available Read/Write variable names.
|
||
|
*/
|
||
|
- std::set<std::string> getRWVariableNames()throw(NutException);
|
||
|
+ std::set<std::string> getRWVariableNames();
|
||
|
/**
|
||
|
* Intend to set the value of a variable of the device.
|
||
|
* \param name Variable name.
|
||
|
* \param value New variable value.
|
||
|
*/
|
||
|
- void setVariable(const std::string& name, const std::string& value)throw(NutException);
|
||
|
+ void setVariable(const std::string& name, const std::string& value);
|
||
|
/**
|
||
|
* Intend to set values of a variable of the device.
|
||
|
* \param name Variable name.
|
||
|
* \param value New variable values.
|
||
|
*/
|
||
|
- void setVariable(const std::string& name, const std::vector<std::string>& values)throw(NutException);
|
||
|
+ void setVariable(const std::string& name, const std::vector<std::string>& values);
|
||
|
|
||
|
/**
|
||
|
* Retrieve a Variable object representing the specified variable.
|
||
|
* \param name Variable name.
|
||
|
* \return Variable object.
|
||
|
*/
|
||
|
- Variable getVariable(const std::string& name)throw(NutException);
|
||
|
+ Variable getVariable(const std::string& name);
|
||
|
/**
|
||
|
* Retrieve Variable objects representing all variables available for the device.
|
||
|
* \return Set of Variable objects.
|
||
|
*/
|
||
|
- std::set<Variable> getVariables()throw(NutException);
|
||
|
+ std::set<Variable> getVariables();
|
||
|
/**
|
||
|
* Retrieve Variable objects representing all Read/Write variables available for the device.
|
||
|
* \return Set of Variable objects.
|
||
|
*/
|
||
|
- std::set<Variable> getRWVariables()throw(NutException);
|
||
|
+ std::set<Variable> getRWVariables();
|
||
|
|
||
|
/**
|
||
|
* Retrieve names of all commands supported by the device.
|
||
|
* \return Set of available command names.
|
||
|
*/
|
||
|
- std::set<std::string> getCommandNames()throw(NutException);
|
||
|
+ std::set<std::string> getCommandNames();
|
||
|
/**
|
||
|
* Retrieve objects for all commands supported by the device.
|
||
|
* \return Set of available Command objects.
|
||
|
*/
|
||
|
- std::set<Command> getCommands()throw(NutException);
|
||
|
+ std::set<Command> getCommands();
|
||
|
/**
|
||
|
* Retrieve an object representing a command of the device.
|
||
|
* \param name Command name.
|
||
|
* \return Command object.
|
||
|
*/
|
||
|
- Command getCommand(const std::string& name)throw(NutException);
|
||
|
+ Command getCommand(const std::string& name);
|
||
|
/**
|
||
|
* Intend to execute a command on the device.
|
||
|
* \param name Command name.
|
||
|
*/
|
||
|
- void executeCommand(const std::string& name)throw(NutException);
|
||
|
+ void executeCommand(const std::string& name);
|
||
|
|
||
|
/**
|
||
|
* Login current client's user for the device.
|
||
|
*/
|
||
|
- void login()throw(NutException);
|
||
|
- void master()throw(NutException);
|
||
|
- void forcedShutdown()throw(NutException);
|
||
|
+ void login();
|
||
|
+ void master();
|
||
|
+ void forcedShutdown();
|
||
|
/**
|
||
|
* Retrieve the number of logged user for the device.
|
||
|
* \return Number of users.
|
||
|
*/
|
||
|
- int getNumLogins()throw(NutException);
|
||
|
+ int getNumLogins();
|
||
|
|
||
|
protected:
|
||
|
Device(Client* client, const std::string& name);
|
||
|
@@ -603,23 +601,23 @@
|
||
|
* Intend to retrieve variable value.
|
||
|
* \return Value of the variable.
|
||
|
*/
|
||
|
- std::vector<std::string> getValue()throw(NutException);
|
||
|
+ std::vector<std::string> getValue();
|
||
|
/**
|
||
|
* Intend to retireve variable description.
|
||
|
* \return Variable description if provided.
|
||
|
*/
|
||
|
- std::string getDescription()throw(NutException);
|
||
|
+ std::string getDescription();
|
||
|
|
||
|
/**
|
||
|
* Intend to set a value to the variable.
|
||
|
* \param value New variable value.
|
||
|
*/
|
||
|
- void setValue(const std::string& value)throw(NutException);
|
||
|
+ void setValue(const std::string& value);
|
||
|
/**
|
||
|
* Intend to set (multiple) values to the variable.
|
||
|
* \param value New variable values.
|
||
|
*/
|
||
|
- void setValues(const std::vector<std::string>& values)throw(NutException);
|
||
|
+ void setValues(const std::vector<std::string>& values);
|
||
|
|
||
|
protected:
|
||
|
Variable(Device* dev, const std::string& name);
|
||
|
@@ -683,13 +681,13 @@
|
||
|
* Intend to retireve command description.
|
||
|
* \return Command description if provided.
|
||
|
*/
|
||
|
- std::string getDescription()throw(NutException);
|
||
|
+ std::string getDescription();
|
||
|
|
||
|
/**
|
||
|
* Intend to retrieve command description.
|
||
|
* \return Command description if provided.
|
||
|
*/
|
||
|
- void execute()throw(NutException);
|
||
|
+ void execute();
|
||
|
|
||
|
protected:
|
||
|
Command(Device* dev, const std::string& name);
|
||
|
--
|
||
|
2.33.0
|
||
|
|