summaryrefslogtreecommitdiff
path: root/LocalListener.h
diff options
context:
space:
mode:
Diffstat (limited to 'LocalListener.h')
-rw-r--r--LocalListener.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/LocalListener.h b/LocalListener.h
new file mode 100644
index 0000000..9f91a95
--- /dev/null
+++ b/LocalListener.h
@@ -0,0 +1,65 @@
+/** \file LocalListener.h
+\brief The have local server, to have unique instance, and send arguments to the current running instance
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#ifndef LOCALLISTENER_H
+#define LOCALLISTENER_H
+
+#include <QObject>
+#include <QLocalServer>
+#include <QLocalSocket>
+#include <QStringList>
+#include <QString>
+#include <QCoreApplication>
+#include <QMessageBox>
+#include <QTimer>
+#include <QList>
+#include <QByteArray>
+
+#include "Environment.h"
+#include "ExtraSocket.h"
+
+/** \brief To have unique instance, and pass arguments to the existing instance if needed */
+class LocalListener : public QObject
+{
+ Q_OBJECT
+public:
+ explicit LocalListener(QObject *parent = 0);
+ ~LocalListener();
+public slots:
+ /// try connect to existing server
+ bool tryConnect();
+ /// the listen server
+ void listenServer();
+private:
+ QLocalServer localServer;
+ QTimer TimeOutQLocalSocket;/// \todo by client
+ typedef struct {
+ QLocalSocket * socket;
+ QByteArray data;
+ int size;
+ bool haveData;
+ } ComposedData;
+ std::vector<ComposedData> clientList;
+private slots:
+ //the time is done
+ void timeoutDectected();
+ /// \brief Data is incomming
+ void dataIncomming();
+ /// \brief Deconnexion client
+ void deconnectClient();
+ /// LocalListener New connexion
+ void newConnexion();
+ #ifdef ULTRACOPIER_DEBUG
+ /** \brief If error occured at socket
+ \param theErrorDefine The error define */
+ void error(const QLocalSocket::LocalSocketError &theErrorDefine);
+ #endif
+ /// can now parse the cli
+ void allPluginIsloaded();
+signals:
+ void cli(const std::vector<std::string> &ultracopierArguments,const bool &external,const bool &onlyCheck) const;
+};
+
+#endif // LOCALLISTENER_H