29 #include <arcs/arcsgenerallogger.h>
32 #include <arcs/arcsfactory.h>
36 void ARCSGeneralLoggerBase::setFilename(QString s)
38 if (logFile.is_open())
41 logFile.open(qPrintable(s));
45 bool ARCSGeneralLoggerBase::canLog()
47 if (!logFile.is_open())
48 logFile.open(
"arcs_log.log");
50 return logFile.is_open();
79 QString signature = objectName +
"." + actualSignal +
"." + sigName ;
82 if (map.contains(signature))
102 if (metaObject()->indexOfSlot(qPrintable(sltName)) != -1)
104 return metaObject()->indexOfSlot(qPrintable(sltName));
108 QString signature = objectName +
"." + actualSignal +
"." + sigName ;
109 LogDetails ld(signature);
111 QStringList paramTypes = sigName.section(
"(",1,1).section(
")", 0,0).split(
",");
113 for (
int i=0; i < paramTypes.count(); i++)
114 ld.addType(QMetaType::type(qPrintable(paramTypes.at(i))));
116 map.insert(signature,idx);
117 invertMap.insert(idx,ld);
120 return idx-1 + metaObject()->methodCount();
131 QMutexLocker lock(&mutex);
132 id = ARCSGeneralLoggerBase::qt_metacall(call,
id, arguments);
133 if (
id < 0 || call != QMetaObject::InvokeMetaMethod)
139 std::cerr <<
"Log file not opened" << std::endl;
145 if (!invertMap.contains(
id))
147 std::cerr <<
"Map does not contain id " <<
id << std::endl;
151 LogDetails ld = invertMap[id];
154 for (
int i =0; i < ld.count(); i++)
156 int it = ld.getArgument(i);
158 if (it != QMetaType::Void)
160 QVariant v(it, arguments[i+1]);
162 logFile << qPrintable(s) << qPrintable(separator) ;
176 ARCSGeneralLogger::LogDetails::LogDetails(
const LogDetails& ld)
178 signature = ld.signature;
179 typeIds = ld.typeIds;
182 ARCSGeneralLogger::LogDetails::LogDetails(QString sn)
virtual int prepareSlotConnect(QString sigName, QString sltName, QString objectName=QString::null, QString actualSignal=QString::null, bool simulate=false)
Prepares a connection with a slot which is belonging to this object.
virtual QStringList getSignalList()
virtual int cleanSlotConnect(QString sigName, QString sltName, QString objectName, QString actualSignal)
virtual int qt_metacall(QMetaObject::Call call, int id, void **arguments)
Method performing the actual callback task.
static ARCSFactory * getInstance()
Returns the instance of the singleton ARCSFactory.
virtual QStringList getSlotList()
QString dataSerialize(QVariant var)
Serializes data from their QVariant counterpart.
virtual int prepareSignalConnect(QString sigName, QString sltName, QString objectName=QString::null, QString actualSlot=QString::null, bool simulate=false)
Prepares a connection with a slot which does not belong to this object.
virtual int cleanSignalConnect(QString sigName, QString sltName, QString objectName, QString actualSlot)
Base class for ARCSGeneralLogger.