daemon parameter '--retries' (number retries send ebus command) added.

This commit is contained in:
Roland Jax
2014-05-13 18:58:10 +02:00
parent 820b4dd6be
commit 92a3f7fbc5
3 changed files with 19 additions and 2 deletions
+14 -2
View File
@@ -35,6 +35,8 @@ EBusLoop::EBusLoop() : m_stop(false)
A.getParam<long>("p_dumpsize"),
A.getParam<bool>("p_dump"));
m_retries = A.getParam<int>("p_retries");
m_bus->connect();
if (m_bus->isConnected() == false)
@@ -54,6 +56,7 @@ EBusLoop::~EBusLoop()
void* EBusLoop::run()
{
int busResult;
int retries = 0;
bool busCommandActive = false;
for (;;) {
@@ -85,8 +88,17 @@ void* EBusLoop::run()
m_bus->sendCommand();
BusCommand* busCommand = m_bus->recvCommand();
L.log(bus, trace, " %s", busCommand->getResult().c_str());
m_recvBuffer.add(busCommand);
busCommandActive = false;
if (busCommand->getResult().c_str()[0] == '-' && retries < m_retries) {
retries++;
L.log(bus, trace, " retry number: %d", retries);
busCommand->setResult(std::string());
m_bus->addCommand(busCommand);
} else {
retries = 0;
m_recvBuffer.add(busCommand);
busCommandActive = false;
}
}
if (busResult == 0)
+1
View File
@@ -51,6 +51,7 @@ private:
bool m_stop;
WQueue<BusCommand*> m_sendBuffer;
WQueue<BusCommand*> m_recvBuffer;
int m_retries;
};
+4
View File
@@ -60,6 +60,10 @@ void define_args()
"disable valid ebus device test\n",
Appl::type_bool, Appl::opt_none);
A.addItem("p_retries", Appl::Param(2), "r", "retries",
"\tnumber retries send ebus command (default: 2)\n",
Appl::type_int, Appl::opt_mandatory);
A.addItem("p_ebusconfdir", Appl::Param("/etc/ebus-daemon"), "e", "ebusconfdir",
"directory for ebus configuration (default: /etc/ebus-daemon)\n",
Appl::type_string, Appl::opt_mandatory);