~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/network/qftp.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
 
4
**
 
5
** This file is part of the network module of the Qt Toolkit.
 
6
**
 
7
** This file may be distributed under the terms of the Q Public License
 
8
** as defined by Trolltech AS of Norway and appearing in the file
 
9
** LICENSE.QPL included in the packaging of this file.
 
10
**
 
11
** This file may be distributed and/or modified under the terms of the
 
12
** GNU General Public License version 2 as published by the Free Software
 
13
** Foundation and appearing in the file LICENSE.GPL included in the
 
14
** packaging of this file.
 
15
**
 
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
 
17
**   information about Qt Commercial License Agreements.
 
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
 
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
 
20
**
 
21
** Contact info@trolltech.com if any conditions of this licensing are
 
22
** not clear to you.
 
23
**
 
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
26
**
 
27
****************************************************************************/
 
28
 
 
29
#ifndef QFTP_H
 
30
#define QFTP_H
 
31
 
 
32
#include "QtCore/qstring.h" // char*->QString conversion
 
33
#include "QtNetwork/qurlinfo.h"
 
34
#include "QtCore/qobject.h"
 
35
 
 
36
#ifndef QT_NO_NETWORKPROTOCOL_FTP
 
37
 
 
38
class QFtpPrivate;
 
39
 
 
40
class Q_NETWORK_EXPORT QFtp : public QObject
 
41
{
 
42
    Q_OBJECT
 
43
 
 
44
public:
 
45
    explicit QFtp(QObject *parent = 0);
 
46
    virtual ~QFtp();
 
47
 
 
48
    enum State {
 
49
        Unconnected,
 
50
        HostLookup,
 
51
        Connecting,
 
52
        Connected,
 
53
        LoggedIn,
 
54
        Closing
 
55
    };
 
56
    enum Error {
 
57
        NoError,
 
58
        UnknownError,
 
59
        HostNotFound,
 
60
        ConnectionRefused,
 
61
        NotConnected
 
62
    };
 
63
    enum Command {
 
64
        None,
 
65
        SetTransferMode,
 
66
        SetProxy,
 
67
        ConnectToHost,
 
68
        Login,
 
69
        Close,
 
70
        List,
 
71
        Cd,
 
72
        Get,
 
73
        Put,
 
74
        Remove,
 
75
        Mkdir,
 
76
        Rmdir,
 
77
        Rename,
 
78
        RawCommand
 
79
    };
 
80
    enum TransferMode {
 
81
        Active,
 
82
        Passive
 
83
    };
 
84
    enum TransferType {
 
85
        Binary,
 
86
        Ascii
 
87
    };
 
88
 
 
89
    int setProxy(const QString &host, quint16 port);
 
90
    int connectToHost(const QString &host, quint16 port=21);
 
91
    int login(const QString &user = QString(), const QString &password = QString());
 
92
    int close();
 
93
    int setTransferMode(TransferMode mode);
 
94
    int list(const QString &dir = QString());
 
95
    int cd(const QString &dir);
 
96
    int get(const QString &file, QIODevice *dev=0, TransferType type = Binary);
 
97
    int put(const QByteArray &data, const QString &file, TransferType type = Binary);
 
98
    int put(QIODevice *dev, const QString &file, TransferType type = Binary);
 
99
    int remove(const QString &file);
 
100
    int mkdir(const QString &dir);
 
101
    int rmdir(const QString &dir);
 
102
    int rename(const QString &oldname, const QString &newname);
 
103
 
 
104
    int rawCommand(const QString &command);
 
105
 
 
106
    qint64 bytesAvailable() const;
 
107
    qint64 read(char *data, qint64 maxlen);
 
108
#ifdef QT3_SUPPORT
 
109
    inline QT3_SUPPORT qint64 readBlock(char *data, quint64 maxlen)
 
110
    { return read(data, qint64(maxlen)); }
 
111
#endif
 
112
    QByteArray readAll();
 
113
 
 
114
    int currentId() const;
 
115
    QIODevice* currentDevice() const;
 
116
    Command currentCommand() const;
 
117
    bool hasPendingCommands() const;
 
118
    void clearPendingCommands();
 
119
 
 
120
    State state() const;
 
121
 
 
122
    Error error() const;
 
123
    QString errorString() const;
 
124
 
 
125
public slots:
 
126
    void abort();
 
127
 
 
128
signals:
 
129
    void stateChanged(int);
 
130
    void listInfo(const QUrlInfo&);
 
131
    void readyRead();
 
132
    void dataTransferProgress(qint64, qint64);
 
133
    void rawCommandReply(int, const QString&);
 
134
 
 
135
    void commandStarted(int);
 
136
    void commandFinished(int, bool);
 
137
    void done(bool);
 
138
 
 
139
#ifdef QT3_SUPPORT
 
140
public:
 
141
    QT3_SUPPORT_CONSTRUCTOR QFtp(QObject *parent, const char *name);
 
142
#endif
 
143
 
 
144
private:
 
145
    Q_DISABLE_COPY(QFtp)
 
146
    Q_DECLARE_PRIVATE(QFtp)
 
147
 
 
148
    Q_PRIVATE_SLOT(d_func(), void startNextCommand())
 
149
    Q_PRIVATE_SLOT(d_func(), void piFinished(const QString&))
 
150
    Q_PRIVATE_SLOT(d_func(), void piError(int, const QString&))
 
151
    Q_PRIVATE_SLOT(d_func(), void piConnectState(int))
 
152
    Q_PRIVATE_SLOT(d_func(), void piFtpReply(int, const QString&))
 
153
};
 
154
 
 
155
#endif // QT_NO_NETWORKPROTOCOL_FTP
 
156
 
 
157
#endif // QFTP_H