tools/runonphone/symbianutils/launcher.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
--- a/tools/runonphone/symbianutils/launcher.h	Wed Jun 23 19:07:03 2010 +0300
+++ b/tools/runonphone/symbianutils/launcher.h	Tue Jul 06 15:10:48 2010 +0300
@@ -69,6 +69,7 @@
         ActionInstall = 0x2,
         ActionCopyInstall = ActionCopy | ActionInstall,
         ActionRun = 0x4,
+        ActionDownload = 0x8,
         ActionCopyRun = ActionCopy | ActionRun,
         ActionInstallRun = ActionInstall | ActionRun,
         ActionCopyInstallRun = ActionCopy | ActionInstall | ActionRun
@@ -94,10 +95,11 @@
     QString trkServerName() const;
     void setFileName(const QString &name);
     void setCopyFileName(const QString &srcName, const QString &dstName);
+    void setDownloadFileName(const QString &srcName, const QString &dstName);
     void setInstallFileName(const QString &name);
     void setCommandLineArgs(const QStringList &args);
     bool startServer(QString *errorMessage);
-    void setVerbose(int v);    
+    void setVerbose(int v);
     void setSerialFrame(bool b);
     bool serialFrame() const;
     // Close device or leave it open
@@ -109,6 +111,15 @@
     // becomes valid after successful execution of ActionPingOnly
     QString deviceDescription(unsigned verbose = 0u) const;
 
+    // Acquire a device from SymbianDeviceManager, return 0 if not available.
+    // The device will be released on destruction.
+    static Launcher *acquireFromDeviceManager(const QString &serverName,
+                                              QObject *parent,
+                                              QString *errorMessage);
+    // Preliminary release of device, disconnecting the signal.
+    static void releaseToDeviceManager(Launcher *l);
+
+    // Create Trk message to start a process.
     static QByteArray startProcessMessage(const QString &executable,
                                           const QStringList &arguments);
     // Parse a TrkNotifyStopped message
@@ -119,9 +130,12 @@
     static QString msgStopped(uint pid, uint tid, uint address, const QString &why);
 
 signals:
+    void deviceDescriptionReceived(const QString &port, const QString &description);
     void copyingStarted();
     void canNotConnect(const QString &errorMessage);
     void canNotCreateFile(const QString &filename, const QString &errorMessage);
+    void canNotOpenFile(const QString &filename, const QString &errorMessage);
+    void canNotOpenLocalFile(const QString &filename, const QString &errorMessage);
     void canNotWriteFile(const QString &filename, const QString &errorMessage);
     void canNotCloseFile(const QString &filename, const QString &errorMessage);
     void installingStarted();
@@ -135,6 +149,8 @@
     void copyProgress(int percent);
     void stateChanged(int);
     void processStopped(uint pc, uint pid, uint tid, const QString& reason);
+    // Emitted by the destructor, for releasing devices of SymbianDeviceManager by name
+    void destroyed(const QString &serverName);
 
 public slots:
     void terminate();
@@ -152,8 +168,11 @@
     void handleRemoteProcessKilled(const TrkResult &result);
     void handleConnect(const TrkResult &result);
     void handleFileCreation(const TrkResult &result);
+    void handleFileOpened(const TrkResult &result);
     void handleCopy(const TrkResult &result);
+    void handleRead(const TrkResult &result);
     void continueCopying(uint lastCopiedBlockSize = 0);
+    void continueReading();
     void closeRemoteFile(bool failed = false);
     void handleFileCopied(const TrkResult &result);
     void handleInstallPackageFinished(const TrkResult &result);
@@ -165,8 +184,10 @@
     void handleTrkVersion(const TrkResult &result);
 
     void copyFileToRemote();
+    void copyFileFromRemote();
     void installRemotePackageSilently();
     void startInferiorIfNeeded();
+    void handleFinished();
 
     void logMessage(const QString &msg);
     void setState(State s);