oidentd config parsing + implicit mutexes
[quassel.git] / src / core / oidentdconfiggenerator.h
index dbc58d1..81ee21c 100644 (file)
 #include <QFile>
 #include <QDateTime>
 #include <QHostAddress>
+#include <QMutex>
 
 #include "quassel.h"
 #include "coreidentity.h"
-#include <QDebug>
 
 class OidentdConfigGenerator : public QObject
 {
     Q_OBJECT
 public:
   explicit OidentdConfigGenerator(QObject *parent = 0);
+  ~OidentdConfigGenerator();
 
 signals:
     
 public slots:
   bool addSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);
+  bool removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort);
 
 private:
   bool init();
   bool writeConfig();
-  bool parseConfig(bool stripQuasselStanzas = false);
-  bool checkLine(const QByteArray &line);
+  bool parseConfig(bool readQuasselStanzas = false);
+  bool lineByUs(const QByteArray &line);
 
   bool _initialized;
   QDateTime _lastSync;
   QFile *_configFile;
-  QByteArray _config;
+  QByteArray _parsedConfig;
+  QByteArray _quasselConfig;
+  // Mutex isn't strictly necessary at the moment, since with the current invocation in Core only one instance at a time exists
+  QMutex _mutex;
 
   QDir configDir;
   QString configFileName;
   QString configPath;
   QString configTag;
-  QRegExp quasselStanza;
+  QRegExp quasselStanzaRx;
+  QString quasselStanzaTemplate;
 };
 
 #endif // OIDENTDCONFIGGENERATOR_H