DatabaseLogger *DatabaseLogger::create(QString table, QMutex *mutex) { QByteArray ba = table.toLocal8Bit(); const char *tble = ba.constData(); DatabaseLogger *logger = dynamic_cast<DatabaseLogger *>(loggerMap.value(table, NULL)); if (logger) return logger; // Need to add a new FileLogger mutex->unlock(); // inserts into loggerMap logger = new DatabaseLogger(tble); mutex->lock(); if (!logger->setupZMQSocket()) { delete logger; return NULL; } ClientList *clients = new ClientList; logRevClientMap.insert(logger, clients); return logger; }
SyslogLogger *SyslogLogger::create(QMutex *mutex, bool open) { SyslogLogger *logger = dynamic_cast<SyslogLogger *>(loggerMap.value("", NULL)); if (logger) return logger; // Need to add a new FileLogger mutex->unlock(); // inserts into loggerMap logger = new SyslogLogger(open); mutex->lock(); if (!logger->setupZMQSocket()) { delete logger; return NULL; } ClientList *clients = new ClientList; logRevClientMap.insert(logger, clients); return logger; }