author | mickeyl <mickeyl> | 2004-03-24 00:20:42 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-03-24 00:20:42 (UTC) |
commit | cc2fd242ec29023784748e6c9d662cb1f89e83ec (patch) (side-by-side diff) | |
tree | 55fa7676f1c64607e9a9327c2b206dd3a95625a4 /core/qws/transferserver.cpp | |
parent | f08adf125dbaa2a411fad9fba22443c7364afca3 (diff) | |
download | opie-cc2fd242ec29023784748e6c9d662cb1f89e83ec.zip opie-cc2fd242ec29023784748e6c9d662cb1f89e83ec.tar.gz opie-cc2fd242ec29023784748e6c9d662cb1f89e83ec.tar.bz2 |
convert to libopie2
-rw-r--r-- | core/qws/transferserver.cpp | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/core/qws/transferserver.cpp b/core/qws/transferserver.cpp index daf63ec..d0fec89 100644 --- a/core/qws/transferserver.cpp +++ b/core/qws/transferserver.cpp @@ -43,49 +43,50 @@ extern "C" #define UUID_H_INCLUDED } #endif #endif // not defined linux #if defined(_OS_LINUX_) #include <shadow.h> #elif defined(Q_OS_MACX) #include <stdlib.h> #endif #include <qtextstream.h> #include <qmessagebox.h> //#include <qpe/qcopchannel_qws.h> #include <qpe/process.h> #include <qpe/global.h> #include <qpe/config.h> #include <qpe/contact.h> #include <qpe/version.h> #include <qpe/qcopenvelope_qws.h> #include "transferserver.h" -#include <opie/oprocess.h> +#include <opie2/oprocess.h> +using namespace Opie::Core; const int block_size = 51200; TransferServer::TransferServer( Q_UINT16 port, QObject *parent , const char* name ) : QServerSocket( port, 1, parent, name ) { if ( !ok() ) qWarning( "Failed to bind to port %d", port ); } TransferServer::~TransferServer() { } void TransferServer::newConnection( int socket ) { (void) new ServerPI( socket, this ); } /* * small class in anonymous namespace * to generate a QUUid for us */ @@ -1028,61 +1029,61 @@ QString ServerPI::absFilePath( const QString& file ) QString filepath( file ); if ( file[0] != "/" ) filepath = directory.path() + "/" + file; return filepath; } void ServerPI::timerEvent( QTimerEvent * ) { connectionClosed(); } ServerDTP::ServerDTP( QObject *parent, const char* name) : QSocket( parent, name ), mode( Idle ), createTargzProc( 0 ), retrieveTargzProc( 0 ), gzipProc( 0 ) { connect( this, SIGNAL( connected() ), SLOT( connected() ) ); connect( this, SIGNAL( connectionClosed() ), SLOT( connectionClosed() ) ); connect( this, SIGNAL( bytesWritten(int) ), SLOT( bytesWritten(int) ) ); connect( this, SIGNAL( readyRead() ), SLOT( readyRead() ) ); - gzipProc = new OProcess( this, "gzipProc" ); + gzipProc = new Opie::Core::OProcess( this, "gzipProc" ); - createTargzProc = new OProcess( QString("tar"), this, "createTargzProc"); + createTargzProc = new Opie::Core::OProcess( QString("tar"), this, "createTargzProc"); createTargzProc->setWorkingDirectory( QDir::rootDirPath() ); - connect( createTargzProc, SIGNAL( processExited(OProcess*) ), SLOT( targzDone() ) ); + connect( createTargzProc, SIGNAL( processExited(Opie::Core::OProcess*) ), SLOT( targzDone() ) ); QStringList args = "tar"; args += "-xv"; - retrieveTargzProc = new OProcess( args, this, "retrieveTargzProc" ); + retrieveTargzProc = new Opie::Core::OProcess( args, this, "retrieveTargzProc" ); retrieveTargzProc->setWorkingDirectory( QDir::rootDirPath() ); - connect( retrieveTargzProc, SIGNAL( processExited(OProcess*) ), + connect( retrieveTargzProc, SIGNAL( processExited(Opie::Core::OProcess*) ), SIGNAL( completed() ) ); - connect( retrieveTargzProc, SIGNAL( processExited(OProcess*) ), + connect( retrieveTargzProc, SIGNAL( processExited(Opie::Core::OProcess*) ), SLOT( extractTarDone() ) ); } ServerDTP::~ServerDTP() { buf.close(); file.close(); createTargzProc->kill(); } void ServerDTP::extractTarDone() { qDebug("extract done"); #ifndef QT_NO_COP QCopEnvelope e( "QPE/Desktop", "restoreDone(QString)" ); e << file.name(); #endif } void ServerDTP::connected() { // send file mode switch ( mode ) { @@ -1100,49 +1101,49 @@ void ServerDTP::connected() //make sure it doesn't hang on empty files file.close(); emit completed(); mode = Idle; } else { if ( !file.atEnd() ) { QCString s; s.resize( block_size ); int bytes = file.readBlock( s.data(), block_size ); writeBlock( s.data(), bytes ); } } break; case SendGzipFile: if ( createTargzProc->isRunning() ) { // SHOULDN'T GET HERE, BUT DOING A SAFETY CHECK ANYWAY qWarning("Previous tar --gzip process is still running; killing it..."); createTargzProc->kill(); } bytes_written = 0; qDebug("==>start send tar process"); - if ( !createTargzProc->start(OProcess::NotifyOnExit, OProcess::Stdout) ) + if ( !createTargzProc->start(Opie::Core::OProcess::NotifyOnExit, Opie::Core::OProcess::Stdout) ) qWarning("Error starting %s or %s", createTargzProc->args()[0].data(), gzipProc->args()[0].data()); break; case SendBuffer: if ( !buf.open( IO_ReadOnly) ) { emit failed(); mode = Idle; return ; } // qDebug( "Debug: Sending byte array" ); bytes_written = 0; while ( !buf.atEnd() ) putch( buf.getch() ); buf.close(); break; case RetrieveFile: // retrieve file mode if ( file.exists() && !file.remove() ) { emit failed(); mode = Idle; return ; } @@ -1235,154 +1236,154 @@ void ServerDTP::bytesWritten( int bytes ) } // send buffer mode if ( SendBuffer == mode ) { if ( bytes_written == buf.size() ) { // qDebug( "Debug: Sending complete: %d bytes", buf.size() ); emit completed(); mode = Idle; } } } void ServerDTP::readyRead() { // retrieve file mode if ( RetrieveFile == mode ) { QCString s; s.resize( bytesAvailable() ); readBlock( s.data(), bytesAvailable() ); file.writeBlock( s.data(), s.size() ); } else if ( RetrieveGzipFile == mode ) { if ( !gzipProc->isRunning() ) - gzipProc->start(OProcess::NotifyOnExit, (OProcess::Communication) ( OProcess::Stdin | OProcess::Stdout )); + gzipProc->start(Opie::Core::OProcess::NotifyOnExit, (Opie::Core::OProcess::Communication) ( Opie::Core::OProcess::Stdin | Opie::Core::OProcess::Stdout )); QByteArray s; s.resize( bytesAvailable() ); readBlock( s.data(), bytesAvailable() ); gzipProc->writeStdin( s.data(), s.size() ); qDebug("wrote %d bytes to ungzip ", s.size() ); } // retrieve buffer mode else if ( RetrieveBuffer == mode ) { QCString s; s.resize( bytesAvailable() ); readBlock( s.data(), bytesAvailable() ); buf.writeBlock( s.data(), s.size() ); } } -void ServerDTP::writeTargzBlock(OProcess *, char *buffer, int buflen) +void ServerDTP::writeTargzBlock(Opie::Core::OProcess *, char *buffer, int buflen) { writeBlock( buffer, buflen ); qDebug("writeTargzBlock %d", buflen); if ( !createTargzProc->isRunning() ) { qDebug("tar and gzip done"); emit completed(); mode = Idle; - disconnect( gzipProc, SIGNAL( receivedStdout(OProcess*,char*,int) ), - this, SLOT( writeTargzBlock(OProcess*,char*,int) ) ); + disconnect( gzipProc, SIGNAL( receivedStdout(Opie::Core::OProcess*,char*,int) ), + this, SLOT( writeTargzBlock(Opie::Core::OProcess*,char*,int) ) ); } } void ServerDTP::targzDone() { //qDebug("targz done"); - disconnect( createTargzProc, SIGNAL( receivedStdout(OProcess*,char*,int) ), - this, SLOT( gzipTarBlock(OProcess*,char*,int) ) ); + disconnect( createTargzProc, SIGNAL( receivedStdout(Opie::Core::OProcess*,char*,int) ), + this, SLOT( gzipTarBlock(Opie::Core::OProcess*,char*,int) ) ); gzipProc->closeStdin(); } -void ServerDTP::gzipTarBlock(OProcess *, char *buffer, int buflen) +void ServerDTP::gzipTarBlock(Opie::Core::OProcess *, char *buffer, int buflen) { //qDebug("gzipTarBlock"); if ( !gzipProc->isRunning() ) { //qDebug("auto start gzip proc"); - gzipProc->start(OProcess::NotifyOnExit, (OProcess::Communication) ( OProcess::Stdin | OProcess::Stdout )); + gzipProc->start(Opie::Core::OProcess::NotifyOnExit, (Opie::Core::OProcess::Communication) ( Opie::Core::OProcess::Stdin | Opie::Core::OProcess::Stdout )); } gzipProc->writeStdin( buffer, buflen ); } void ServerDTP::sendFile( const QString fn, const QHostAddress& host, Q_UINT16 port ) { file.setName( fn ); mode = SendFile; connectToHost( host.toString(), port ); } void ServerDTP::sendFile( const QString fn ) { file.setName( fn ); mode = SendFile; } void ServerDTP::sendGzipFile( const QString &fn, const QStringList &archiveTargets, const QHostAddress& host, Q_UINT16 port ) { sendGzipFile( fn, archiveTargets ); connectToHost( host.toString(), port ); } void ServerDTP::sendGzipFile( const QString &fn, const QStringList &archiveTargets ) { mode = SendGzipFile; file.setName( fn ); QStringList args = "tar"; args += "-cv"; args += archiveTargets; qDebug("sendGzipFile %s", args.join(" ").latin1() ); createTargzProc->clearArguments( ); *createTargzProc << args; connect( createTargzProc, - SIGNAL( receivedStdout(OProcess*,char*,int) ), SLOT( gzipTarBlock(OProcess*,char*,int) ) ); + SIGNAL( receivedStdout(Opie::Core::OProcess*,char*,int) ), SLOT( gzipTarBlock(Opie::Core::OProcess*,char*,int) ) ); gzipProc->clearArguments( ); *gzipProc << "gzip"; - connect( gzipProc, SIGNAL( receivedStdout(OProcess*,char*,int) ), - SLOT( writeTargzBlock(OProcess*,char*,int) ) ); + connect( gzipProc, SIGNAL( receivedStdout(Opie::Core::OProcess*,char*,int) ), + SLOT( writeTargzBlock(Opie::Core::OProcess*,char*,int) ) ); } void ServerDTP::gunzipDone() { qDebug("gunzipDone"); disconnect( gzipProc, SIGNAL( processExited() ), this, SLOT( gunzipDone() ) ); retrieveTargzProc->closeStdin(); - disconnect( gzipProc, SIGNAL( receivedStdout(OProcess*,char*,int) ), - this, SLOT( tarExtractBlock(OProcess*,char*,int) ) ); + disconnect( gzipProc, SIGNAL( receivedStdout(Opie::Core::OProcess*,char*,int) ), + this, SLOT( tarExtractBlock(Opie::Core::OProcess*,char*,int) ) ); } -void ServerDTP::tarExtractBlock(OProcess *, char *buffer, int buflen) +void ServerDTP::tarExtractBlock(Opie::Core::OProcess *, char *buffer, int buflen) { qDebug("tarExtractBlock"); if ( !retrieveTargzProc->isRunning() ) { qDebug("auto start ungzip proc"); - if ( !retrieveTargzProc->start(OProcess::NotifyOnExit, OProcess::Stdin) ) + if ( !retrieveTargzProc->start(Opie::Core::OProcess::NotifyOnExit, Opie::Core::OProcess::Stdin) ) qWarning(" failed to start tar -x process"); } retrieveTargzProc->writeStdin( buffer, buflen ); } void ServerDTP::retrieveFile( const QString fn, const QHostAddress& host, Q_UINT16 port ) { file.setName( fn ); mode = RetrieveFile; connectToHost( host.toString(), port ); } void ServerDTP::retrieveFile( const QString fn ) { file.setName( fn ); mode = RetrieveFile; } void ServerDTP::retrieveGzipFile( const QString &fn ) { qDebug("retrieveGzipFile %s", fn.latin1()); file.setName( fn ); mode = RetrieveGzipFile; |