Merge pull request #31 from birarda/atp

use const ref where appropriate for asset classes
This commit is contained in:
Ryan Huffman 2015-08-27 21:36:07 -07:00
commit 61c31dbe52
5 changed files with 18 additions and 16 deletions

View file

@ -30,7 +30,7 @@ AssetClient::AssetClient() {
packetReceiver.registerListener(PacketType::AssetUploadReply, this, "handleAssetUploadReply");
}
AssetRequest* AssetClient::createRequest(QString hash, QString extension) {
AssetRequest* AssetClient::createRequest(const QString& hash, const QString& extension) {
if (QThread::currentThread() != thread()) {
AssetRequest* req;
QMetaObject::invokeMethod(this, "createRequest",
@ -56,7 +56,7 @@ AssetRequest* AssetClient::createRequest(QString hash, QString extension) {
return nullptr;
}
AssetUpload* AssetClient::createUpload(QString filename) {
AssetUpload* AssetClient::createUpload(const QString& filename) {
if (QThread::currentThread() != thread()) {
AssetUpload* upload;
QMetaObject::invokeMethod(this, "createUpload",
@ -76,7 +76,8 @@ AssetUpload* AssetClient::createUpload(QString filename) {
return nullptr;
}
bool AssetClient::getAsset(QString hash, QString extension, DataOffset start, DataOffset end, ReceivedAssetCallback callback) {
bool AssetClient::getAsset(const QString& hash, const QString& extension, DataOffset start, DataOffset end,
ReceivedAssetCallback callback) {
if (hash.length() != SHA256_HASH_HEX_LENGTH) {
qDebug() << "Invalid hash size";
return false;
@ -112,7 +113,7 @@ bool AssetClient::getAsset(QString hash, QString extension, DataOffset start, Da
return false;
}
bool AssetClient::getAssetInfo(QString hash, QString extension, GetInfoCallback callback) {
bool AssetClient::getAssetInfo(const QString& hash, const QString& extension, GetInfoCallback callback) {
auto nodeList = DependencyManager::get<NodeList>();
SharedNodePointer assetServer = nodeList->soloNodeOfType(NodeType::AssetServer);
@ -184,7 +185,7 @@ void AssetClient::handleAssetGetReply(QSharedPointer<NLPacketList> packetList, S
}
}
bool AssetClient::uploadAsset(QByteArray data, QString extension, UploadResultCallback callback) {
bool AssetClient::uploadAsset(const QByteArray& data, const QString& extension, UploadResultCallback callback) {
auto nodeList = DependencyManager::get<NodeList>();
SharedNodePointer assetServer = nodeList->soloNodeOfType(NodeType::AssetServer);

View file

@ -29,17 +29,17 @@ struct AssetInfo {
int64_t size;
};
using ReceivedAssetCallback = std::function<void(bool result, QByteArray data)>;
using ReceivedAssetCallback = std::function<void(bool result, const QByteArray& data)>;
using GetInfoCallback = std::function<void(bool result, AssetInfo info)>;
using UploadResultCallback = std::function<void(bool result, QString hash)>;
using UploadResultCallback = std::function<void(bool result, const QString& hash)>;
class AssetClient : public QObject, public Dependency {
Q_OBJECT
public:
AssetClient();
Q_INVOKABLE AssetRequest* createRequest(QString hash, QString extension);
Q_INVOKABLE AssetUpload* createUpload(QString filename);
Q_INVOKABLE AssetRequest* createRequest(const QString& hash, const QString& extension);
Q_INVOKABLE AssetUpload* createUpload(const QString& filename);
private slots:
void handleAssetGetInfoReply(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
@ -47,9 +47,9 @@ private slots:
void handleAssetUploadReply(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
private:
bool getAssetInfo(QString hash, QString extension, GetInfoCallback callback);
bool getAsset(QString hash, QString extension, DataOffset start, DataOffset end, ReceivedAssetCallback callback);
bool uploadAsset(QByteArray data, QString extension, UploadResultCallback callback);
bool getAssetInfo(const QString& hash, const QString& extension, GetInfoCallback callback);
bool getAsset(const QString& hash, const QString& extension, DataOffset start, DataOffset end, ReceivedAssetCallback callback);
bool uploadAsset(const QByteArray& data, const QString& extension, UploadResultCallback callback);
static MessageID _currentID;
QHash<MessageID, ReceivedAssetCallback> _pendingRequests;

View file

@ -19,11 +19,12 @@
#include "NodeList.h"
AssetRequest::AssetRequest(QObject* parent, QString hash, QString extension) :
AssetRequest::AssetRequest(QObject* parent, const QString& hash, const QString& extension) :
QObject(parent),
_hash(hash),
_extension(extension)
{
}
void AssetRequest::start() {
@ -51,7 +52,7 @@ void AssetRequest::start() {
auto start = i * CHUNK_SIZE;
auto end = std::min((i + 1) * CHUNK_SIZE, info.size);
assetClient->getAsset(_hash, _extension, start, end, [this, start, end](bool success, QByteArray data) {
assetClient->getAsset(_hash, _extension, start, end, [this, start, end](bool success, const QByteArray& data) {
Q_ASSERT(data.size() == (end - start));
if (success) {

View file

@ -37,7 +37,7 @@ public:
Error,
};
AssetRequest(QObject* parent, QString hash, QString extension);
AssetRequest(QObject* parent, const QString& hash, const QString& extension);
Q_INVOKABLE void start();

View file

@ -41,7 +41,7 @@ void AssetUpload::start() {
// ask the AssetClient to upload the asset and emit the proper signals from the passed callback
auto assetClient = DependencyManager::get<AssetClient>();
assetClient->uploadAsset(data, _extension, [this](bool success, QString hash){
assetClient->uploadAsset(data, _extension, [this](bool success, const QString& hash){
if (success) {
// successful upload - emit finished with a point to ourselves and the resulting hash
_result = Success;