fix logger quirks; many cosmetic changes.
This commit is contained in:
@@ -39,7 +39,7 @@ BaseLoop::BaseLoop()
|
||||
m_ebusloop->start("ebusloop");
|
||||
|
||||
// create network
|
||||
m_network = new Network(A.getOptVal<bool>("localhost"), &m_msgQueue);
|
||||
m_network = new Network(A.getOptVal<bool>("localhost"), &m_netQueue);
|
||||
m_network->start("network");
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ void BaseLoop::start()
|
||||
std::string result;
|
||||
|
||||
// recv new message from client
|
||||
NetMessage* message = m_msgQueue.remove();
|
||||
NetMessage* message = m_netQueue.remove();
|
||||
std::string data = message->getData();
|
||||
|
||||
data.erase(std::remove(data.begin(), data.end(), '\r'), data.end());
|
||||
@@ -400,7 +400,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
|
||||
<< " reload - reload ebus configuration 'reload'" << std::endl << std::endl
|
||||
<< " stop - stop daemon 'stop'" << std::endl
|
||||
<< " quit - close connection 'quit'" << std::endl << std::endl
|
||||
<< " help - print this page 'help";
|
||||
<< " help - print this page 'help'";
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -36,14 +36,14 @@ public:
|
||||
|
||||
void start();
|
||||
|
||||
void addMessage(NetMessage* message) { m_msgQueue.add(message); }
|
||||
void addMessage(NetMessage* message) { m_netQueue.add(message); }
|
||||
|
||||
private:
|
||||
Commands* m_commands;
|
||||
EBusLoop* m_ebusloop;
|
||||
Network* m_network;
|
||||
|
||||
WQueue<NetMessage*> m_msgQueue;
|
||||
WQueue<NetMessage*> m_netQueue;
|
||||
|
||||
enum ClientCommand {
|
||||
get, // get ebus data
|
||||
|
||||
@@ -29,7 +29,7 @@ int Connection::m_sum = 0;
|
||||
void Connection::addResult(NetMessage message)
|
||||
{
|
||||
NetMessage* tmp = new NetMessage(NetMessage(message));
|
||||
m_result.add(tmp);
|
||||
m_netQueueResult.add(tmp);
|
||||
}
|
||||
|
||||
void* Connection::run()
|
||||
@@ -80,11 +80,11 @@ void* Connection::run()
|
||||
|
||||
// send data
|
||||
data[datalen] = '\0';
|
||||
m_data->add(new NetMessage(data, this));
|
||||
m_netQueueData->add(new NetMessage(data, this));
|
||||
|
||||
// wait for result
|
||||
L.log(net, debug, "[%05d] wait for result", getID());
|
||||
NetMessage* message = m_result.remove();
|
||||
NetMessage* message = m_netQueueResult.remove();
|
||||
|
||||
L.log(net, debug, "[%05d] result added", getID());
|
||||
std::string result(message->getData());
|
||||
|
||||
@@ -30,8 +30,8 @@ class Connection : public Thread
|
||||
{
|
||||
|
||||
public:
|
||||
Connection(TCPSocket* socket, WQueue<NetMessage*>* data)
|
||||
: m_socket(socket), m_data(data), m_running(false) { m_sum++; m_id = m_sum;}
|
||||
Connection(TCPSocket* socket, WQueue<NetMessage*>* netQueue)
|
||||
: m_socket(socket), m_netQueueData(netQueue), m_running(false) { m_sum++; m_id = m_sum;}
|
||||
|
||||
void addResult(NetMessage message);
|
||||
|
||||
@@ -43,8 +43,8 @@ public:
|
||||
|
||||
private:
|
||||
TCPSocket* m_socket;
|
||||
WQueue<NetMessage*>* m_data;
|
||||
WQueue<NetMessage*> m_result;
|
||||
WQueue<NetMessage*>* m_netQueueData;
|
||||
WQueue<NetMessage*> m_netQueueResult;
|
||||
Notify m_notify;
|
||||
bool m_running;
|
||||
int m_id;
|
||||
|
||||
@@ -26,35 +26,35 @@
|
||||
class Connection;
|
||||
|
||||
/**
|
||||
* @brief class for data/message transfer between connection and baseloop
|
||||
* @brief class for data/message transfer between connection and baseloop.
|
||||
*/
|
||||
class NetMessage
|
||||
{
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief constructs a new instance with message and source client address
|
||||
* @param data from client
|
||||
* @param connection to return result to correct client
|
||||
* @brief constructs a new instance with message and source client address.
|
||||
* @param data from client.
|
||||
* @param connection to return result to correct client.
|
||||
*/
|
||||
NetMessage(const std::string data, Connection* connection=NULL)
|
||||
: m_data(data), m_connection(connection) {}
|
||||
|
||||
/**
|
||||
* @brief copy constructor.
|
||||
* @param src message object for copy
|
||||
* @param src message object for copy.
|
||||
*/
|
||||
NetMessage(const NetMessage& src) : m_data(src.m_data), m_connection(src.m_connection) {}
|
||||
|
||||
/**
|
||||
* @brief data from client
|
||||
* @return data string
|
||||
* @brief get the data string.
|
||||
* @return the data string.
|
||||
*/
|
||||
std::string getData() const { return m_data; }
|
||||
|
||||
/**
|
||||
* @brief original connection
|
||||
* @return pointer to connection
|
||||
* @brief original connection.
|
||||
* @return pointer to connection.
|
||||
*/
|
||||
Connection* getConnection() const { return m_connection; }
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ extern Logger& L;
|
||||
extern Appl& A;
|
||||
|
||||
|
||||
Network::Network(const bool localhost, WQueue<NetMessage*>* msgQueue)
|
||||
: m_msgQueue(msgQueue), m_listening(false), m_running(false)
|
||||
Network::Network(const bool localhost, WQueue<NetMessage*>* netQueue)
|
||||
: m_netQueue(netQueue), m_listening(false), m_running(false)
|
||||
{
|
||||
if (localhost == true)
|
||||
m_tcpServer = new TCPServer(A.getOptVal<int>("port"), "127.0.0.1");
|
||||
@@ -99,7 +99,7 @@ void* Network::run()
|
||||
if (socket == NULL)
|
||||
continue;
|
||||
|
||||
Connection* connection = new Connection(socket, m_msgQueue);
|
||||
Connection* connection = new Connection(socket, m_netQueue);
|
||||
if (connection == NULL)
|
||||
continue;
|
||||
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ class Network : public Thread
|
||||
{
|
||||
|
||||
public:
|
||||
Network(const bool localhost, WQueue<NetMessage*>* msgQueue);
|
||||
Network(const bool localhost, WQueue<NetMessage*>* netQueue);
|
||||
~Network();
|
||||
|
||||
void* run();
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
|
||||
private:
|
||||
std::list<Connection*> m_connections;
|
||||
WQueue<NetMessage*>* m_msgQueue;
|
||||
WQueue<NetMessage*>* m_netQueue;
|
||||
TCPServer* m_tcpServer;
|
||||
Notify m_notify;
|
||||
bool m_listening;
|
||||
|
||||
+13
-12
@@ -28,10 +28,10 @@
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/** */
|
||||
/** static char array with logging area names */
|
||||
static const char* AreaNames[Size_of_Areas] = { "bas", "net", "bus" };
|
||||
|
||||
/** */
|
||||
/** static char array with logging level names */
|
||||
static const char* LevelNames[Size_of_Level] = { "error", "event", "trace", "debug" };
|
||||
|
||||
int calcAreas(const std::string areas)
|
||||
@@ -92,17 +92,17 @@ LogMessage::LogMessage(const int area, const int level, const std::string text,
|
||||
void LogSink::addMessage(const LogMessage& message)
|
||||
{
|
||||
LogMessage* tmp = new LogMessage(LogMessage(message));
|
||||
m_logMessages.add((tmp));
|
||||
m_logQueue.add((tmp));
|
||||
}
|
||||
|
||||
void* LogSink::run()
|
||||
{
|
||||
while (1) {
|
||||
LogMessage* message = m_logMessages.remove();
|
||||
LogMessage* message = m_logQueue.remove();
|
||||
if (message->isRunning() == false) {
|
||||
delete message;
|
||||
while (m_logMessages.size() == true) {
|
||||
LogMessage* message = m_logMessages.remove();
|
||||
while (m_logQueue.size() == true) {
|
||||
LogMessage* message = m_logQueue.remove();
|
||||
write(*message);
|
||||
delete message;
|
||||
}
|
||||
@@ -189,7 +189,7 @@ void Logger::log(const int area, const int level, const std::string& data, ...)
|
||||
|
||||
if (vasprintf(&tmp, data.c_str(), ap) != -1) {
|
||||
std::string buffer(tmp);
|
||||
m_logMessages.add(new LogMessage(LogMessage(area, level, buffer)));
|
||||
m_logQueue.add(new LogMessage(LogMessage(area, level, buffer)));
|
||||
}
|
||||
|
||||
va_end(ap);
|
||||
@@ -203,7 +203,7 @@ void* Logger::run()
|
||||
m_running = true;
|
||||
|
||||
while (m_running == true) {
|
||||
LogMessage* message = m_logMessages.remove();
|
||||
LogMessage* message = m_logQueue.remove();
|
||||
|
||||
sinkCI_t iter = m_sinks.begin();
|
||||
|
||||
@@ -212,12 +212,13 @@ void* Logger::run()
|
||||
|
||||
if (((*iter)->getAreas() & message->getArea()
|
||||
&& (*iter)->getLevel() >= message->getLevel())
|
||||
&& message->isRunning() == true)
|
||||
&& message->isRunning() == true) {
|
||||
(*iter)->addMessage(*message);
|
||||
|
||||
else if (message->isRunning() == false)
|
||||
}
|
||||
else if (message->isRunning() == false) {
|
||||
(*iter)->addMessage(*message);
|
||||
m_running = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -231,6 +232,6 @@ void* Logger::run()
|
||||
|
||||
void Logger::stop()
|
||||
{
|
||||
m_logMessages.add(new LogMessage(LogMessage(bas, error, "", false)));
|
||||
m_logQueue.add(new LogMessage(LogMessage(bas, error, "", false)));
|
||||
usleep(100000);
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ public:
|
||||
|
||||
protected:
|
||||
/** queue for logging messages */
|
||||
WQueue<LogMessage*> m_logMessages;
|
||||
WQueue<LogMessage*> m_logQueue;
|
||||
|
||||
private:
|
||||
/** the logging areas */
|
||||
@@ -328,7 +328,7 @@ private:
|
||||
sink_t m_sinks;
|
||||
|
||||
/** queue for logging messages */
|
||||
WQueue<LogMessage*> m_logMessages;
|
||||
WQueue<LogMessage*> m_logQueue;
|
||||
|
||||
/** true if this instance is running */
|
||||
bool m_running;
|
||||
|
||||
Reference in New Issue
Block a user