1 #ifndef __libquark_gcloud_GCloudStorage_hxx 2 #define __libquark_gcloud_GCloudStorage_hxx 6 #include <QHttpMultiPart> 8 #include <QNetworkAccessManager> 9 #include <QNetworkReply> 27 GCloudStorage(QNetworkAccessManager *networkAccess, QObject *parent = NULL);
36 bool listBuckets(
const QString &projectID, QString prefix = QString::null);
38 bool createBucket(
const QString &projectID,
const QString &name,
45 bool listObjects(
const QString &bucketName, QString prefix = QString::null);
47 bool createObject(
const QString &bucketName,
const QString &name,
48 const QString &contentType,
const QString &localPath,
51 bool deleteObject(
const QString &bucketName,
const QString &name);
53 bool downloadObject(
const QString &bucketName,
const QString &name,
54 const QString &localPath);
64 void objectDeleted(
const QString &bucketName,
const QString &name);
66 QList<quark::gcloud::GCloudObject> objects);
70 const QString &localPath);
71 void objectUploaded(
const QString &bucketName,
const QString &objectName,
72 const QString &localPath);
78 void handleError(QNetworkReply::NetworkError error);
80 void handleTransferProgress(qint64 bytesTransferred, qint64 bytesTotal);
81 void handleDownloadFinished();
85 enum RequestType { REQ_NONE = 0, REQ_LIST_BUCKETS, REQ_CREATE_BUCKET,
86 REQ_DELETE_BUCKET, REQ_LIST_OBJECTS, REQ_CREATE_OBJECT,
87 REQ_DELETE_OBJECT, REQ_DOWNLOAD_OBJECT };
89 bool parseBucketMetadata(
const QJsonObject &json,
GCloudBucket &bucket);
90 bool parseBucketList(
const QJsonObject &
object,
91 QList<GCloudBucket> &buckets);
92 bool parseObjectMetadata(
const QJsonObject &json,
GCloudObject &
object);
93 bool parseObjectList(
const QJsonObject &json,
94 QList<GCloudObject> &objects);
95 qint64 parseTime(
const QString &value);
96 QString tokenForAccessMode(
AccessMode accessMode);
97 void startGetRequest(
const QUrl &url);
98 void startPostRequest(
const QUrl &url,
const QByteArray &requestBody);
99 void startPostRequest(
const QUrl &url, QHttpMultiPart *requestBody);
100 void startDeleteRequest(
const QUrl &url);
101 QHttpMultiPart *buildMultiPartForUpload(
const QString &contentType,
102 const QString &localPath);
104 QNetworkAccessManager *_networkAccess;
106 RequestType _requestType;
107 QNetworkReply *_networkReply;
108 QString _currentBucketName;
109 QString _currentObjectName;
110 QScopedPointer<QFile> _localFile;
116 #endif // __libquark_gcloud_GCloudStorage_hxx
void bucketDeleted(const QString &name)
void objectCreated(const QString &bucketName, quark::gcloud::GCloudObject object)
void bucketCreated(quark::gcloud::GCloudBucket bucket)
void objectUploaded(const QString &bucketName, const QString &objectName, const QString &localPath)
AccessMode
Definition: GCloudCommon.h++:7
GCloudStorage(QNetworkAccessManager *networkAccess, QObject *parent=NULL)
Definition: GCloudBucket.h++:15
bool deleteObject(const QString &bucketName, const QString &name)
bool listObjects(const QString &bucketName, QString prefix=QString::null)
Definition: BarChartView.h++:6
void objectListAvailable(const QString &bucketName, QList< quark::gcloud::GCloudObject > objects)
A representation of an OAuth2 access token.
Definition: OAuth2AccessToken.h++:17
void setAccessToken(const oauth2::OAuth2AccessToken &token)
Definition: GCloudObject.h++:15
void bucketListAvailable(QList< quark::gcloud::GCloudBucket > buckets)
void objectDownloaded(const QString &bucketName, const QString &objectName, const QString &localPath)
Definition: GCloudStorage.h++:21
bool deleteBucket(const QString &name)
void objectTransferProgress(qint64 bytesTransferred, qint64 bytesTotal)
bool isRequestInProgress() const
bool createObject(const QString &bucketName, const QString &name, const QString &contentType, const QString &localPath, AccessMode accessMode=AccessModeDefault)
bool createBucket(const QString &projectID, const QString &name, AccessMode bucketAccessMode=AccessModeDefault, AccessMode defaultObjectAccessMode=AccessModeDefault)
Definition: GCloudCommon.h++:8
bool downloadObject(const QString &bucketName, const QString &name, const QString &localPath)
void objectDeleted(const QString &bucketName, const QString &name)
bool listBuckets(const QString &projectID, QString prefix=QString::null)