summaryrefslogtreecommitdiff
path: root/CopyListener.h
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2013-01-04 14:50:19 +0100
committerThomas Preud'homme <robotux@celest.fr>2013-01-04 14:50:19 +0100
commit8f9f382e1c97cab2e72e97495650c73ac4b97314 (patch)
tree78510a0d81368c09b56f444fb19bb132c8bc3009 /CopyListener.h
Imported Upstream version 0.3.0.5
Diffstat (limited to 'CopyListener.h')
-rwxr-xr-xCopyListener.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/CopyListener.h b/CopyListener.h
new file mode 100755
index 0000000..c5cd84e
--- /dev/null
+++ b/CopyListener.h
@@ -0,0 +1,113 @@
+/** \file CopyListener.h
+\brief Define the class to load the plugin and lunch it
+\author alpha_one_x86
+\version 0.3
+\date 2010
+\licence GPL3, see the file COPYING */
+
+#ifndef COPYLISTENER_H
+#define COPYLISTENER_H
+
+#include <QObject>
+#include <QList>
+#include <QPluginLoader>
+
+#include "interface/PluginInterface_Listener.h"
+#include "Environment.h"
+#include "GlobalClass.h"
+#include "PluginLoader.h"
+
+/** \brief to load all the listener and parse all event */
+class CopyListener : public QObject, public GlobalClass
+{
+ Q_OBJECT
+ public:
+ explicit CopyListener(QObject *parent = 0);
+ ~CopyListener();
+ /** \brief send of one listener is loaded */
+ bool oneListenerIsLoaded();
+ /** \brief to resend the state */
+ void resendState();
+ private slots:
+ //void newPlugin();
+ void newPluginCopy(const quint32 &orderId,const QStringList &sources);
+ void newPluginCopy(const quint32 &orderId,const QStringList &sources,const QString &destination);
+ void newPluginMove(const quint32 &orderId,const QStringList &sources);
+ void newPluginMove(const quint32 &orderId,const QStringList &sources,const QString &destination);
+ void onePluginAdded(const PluginsAvailable &plugin);
+ void onePluginWillBeRemoved(const PluginsAvailable &plugin);
+ void newState(const ListeningState &state);
+ #ifdef ULTRACOPIER_DEBUG
+ void debugInformation(DebugLevel level,const QString& fonction,const QString& text,const QString& file,const int& ligne);
+ #endif // ULTRACOPIER_DEBUG
+ void allPluginIsloaded();
+ public slots:
+ /** \brief the copy is finished
+ \param orderId id used when it have send the copy
+ \param withError true if it have found error
+ \see newCopy()
+ \see newMove()
+ */
+ void copyFinished(const quint32 & orderId,const bool &withError);
+ /** \brief the copy is canceled by the user
+ \param orderId id used when it have send the copy
+ \see newCopy()
+ \see newMove()
+ */
+ void copyCanceled(const quint32 & orderId);
+ /** \brief try listen, to get copy/move from external source (mainly the file manager)
+ \see close()
+ */
+ void listen();
+ /** \brief stop listen, to get copy/move from external source (mainly the file manager)
+ \see listen()
+ */
+ void close();
+ /** new copy without destination have been pased by the CLI */
+ void newCopy(QStringList sources);
+ /** new copy with destination have been pased by the CLI */
+ void newCopy(QStringList sources,QString destination);
+ /** new move without destination have been pased by the CLI */
+ void newMove(QStringList sources);
+ /** new move with destination have been pased by the CLI */
+ void newMove(QStringList sources,QString destination);
+ signals:
+ void newCopy(quint32 orderId,QStringList protocolsUsedForTheSources,QStringList sources);
+ void newCopy(quint32 orderId,QStringList protocolsUsedForTheSources,QStringList sources,QString protocolsUsedForTheDestination,QString destination);
+ void newMove(quint32 orderId,QStringList protocolsUsedForTheSources,QStringList sources);
+ void newMove(quint32 orderId,QStringList protocolsUsedForTheSources,QStringList sources,QString protocolsUsedForTheDestination,QString destination);
+ void listenerReady(ListeningState state,bool havePlugin,bool someAreInWaitOfReply);
+ void pluginLoaderReady(CatchState state,bool havePlugin,bool someAreInWaitOfReply);
+ private:
+ struct PluginListener
+ {
+ PluginInterface_Listener *listenInterface;
+ QPluginLoader *pluginLoader;
+ QString path;
+ ListeningState state;
+ bool inWaitOfReply;
+ LocalPluginOptions *options;
+ };
+ QList<PluginListener> pluginList;
+ //for the options
+ quint32 nextOrderId;
+ QList<quint32> orderList;
+ //for the copy as suspend
+ struct CopyRunning
+ {
+ PluginInterface_Listener *listenInterface;
+ quint32 pluginOrderId;
+ quint32 orderId;
+ };
+ QList<CopyRunning> copyRunningList;
+ quint32 incrementOrderId();
+ bool tryListen;
+ PluginLoader pluginLoader;
+ ListeningState last_state;
+ bool last_have_plugin,last_inWaitOfReply;
+ void sendState(bool force=false);
+ QStringList parseWildcardSources(QStringList sources);
+ QStringList stripSeparator(QStringList sources);
+};
+
+#endif // COPYLISTENER_H