Skip to content

Commit

Permalink
Refactored scripting subsystem.
Browse files Browse the repository at this point in the history
  • Loading branch information
vktr committed Apr 20, 2015
1 parent de32204 commit 21d0454
Show file tree
Hide file tree
Showing 13 changed files with 979 additions and 725 deletions.
48 changes: 48 additions & 0 deletions include/Hadouken/Scripting/Modules/BitTorrent/PeerInfoWrapper.hpp
@@ -0,0 +1,48 @@
#ifndef HADOUKEN_SCRIPTING_MODULES_BITTORRENT_PEERINFOWRAPPER_HPP
#define HADOUKEN_SCRIPTING_MODULES_BITTORRENT_PEERINFOWRAPPER_HPP

#include <memory>

namespace Hadouken
{
namespace BitTorrent
{
struct PeerInfo;
}
}

namespace Hadouken
{
namespace Scripting
{
namespace Modules
{
namespace BitTorrent
{
class PeerInfoWrapper
{
public:
static void initialize(void* ctx, Hadouken::BitTorrent::PeerInfo& peerInfo);

static const char* field;

private:
static int finalize(void* ctx);

static int getCountry(void* ctx);
static int getIp(void* ctx);
static int getPort(void* ctx);
static int getConnectionType(void* ctx);
static int getClient(void* ctx);
static int getProgress(void* ctx);
static int getDownloadRate(void* ctx);
static int getUploadRate(void* ctx);
static int getDownloadedBytes(void* ctx);
static int getUploadedBytes(void* ctx);
};
}
}
}
}

#endif
42 changes: 42 additions & 0 deletions include/Hadouken/Scripting/Modules/BitTorrent/SessionWrapper.hpp
@@ -0,0 +1,42 @@
#ifndef HADOUKEN_SCRIPTING_MODULES_BITTORRENT_SESSIONWRAPPER_HPP
#define HADOUKEN_SCRIPTING_MODULES_BITTORRENT_SESSIONWRAPPER_HPP

#include <memory>

namespace Hadouken
{
namespace BitTorrent
{
class Session;
struct TorrentHandle;
}
}

namespace Hadouken
{
namespace Scripting
{
namespace Modules
{
namespace BitTorrent
{
class SessionWrapper
{
public:
static void initialize(void* ctx, Hadouken::BitTorrent::Session& session);

static const char* field;

private:
static int addTorrentFile(void* ctx);
static int addTorrentUri(void* ctx);
static int findTorrent(void* ctx);
static int getTorrents(void* ctx);
static int removeTorrent(void* ctx);
};
}
}
}
}

#endif
@@ -0,0 +1,47 @@
#ifndef HADOUKEN_SCRIPTING_MODULES_BITTORRENT_TORRENTHANDLEWRAPPER_HPP
#define HADOUKEN_SCRIPTING_MODULES_BITTORRENT_TORRENTHANDLEWRAPPER_HPP

#include <memory>

namespace Hadouken
{
namespace BitTorrent
{
struct TorrentHandle;
}
}

namespace Hadouken
{
namespace Scripting
{
namespace Modules
{
namespace BitTorrent
{
class TorrentHandleWrapper
{
public:
static void initialize(void* ctx, std::shared_ptr<Hadouken::BitTorrent::TorrentHandle> handle);

static const char* field;

private:
static int finalize(void* ctx);

static int getInfoHash(void* ctx);
static int getPeers(void* ctx);
static int getQueuePosition(void* ctx);
static int getStatus(void* ctx);
static int getTags(void* ctx);
static int getTorrentInfo(void* ctx);
static int moveStorage(void* ctx);
static int pause(void* ctx);
static int resume(void* ctx);
};
}
}
}
}

#endif
@@ -0,0 +1,41 @@
#ifndef HADOUKEN_SCRIPTING_MODULES_BITTORRENT_TORRENTINFOWRAPPER_HPP
#define HADOUKEN_SCRIPTING_MODULES_BITTORRENT_TORRENTINFOWRAPPER_HPP

#include <memory>

namespace Hadouken
{
namespace BitTorrent
{
class TorrentInfo;
struct TorrentHandle;
}
}

namespace Hadouken
{
namespace Scripting
{
namespace Modules
{
namespace BitTorrent
{
class TorrentInfoWrapper
{
public:
static void initialize(void* ctx, Hadouken::BitTorrent::TorrentHandle& handle, std::unique_ptr<Hadouken::BitTorrent::TorrentInfo> torrentInfo);

static const char* field;

private:
static int finalize(void* ctx);

static int getFiles(void* ctx);
static int getTotalSize(void* ctx);
};
}
}
}
}

#endif
@@ -0,0 +1,55 @@
#ifndef HADOUKEN_SCRIPTING_MODULES_BITTORRENT_TORRENTSTATUSWRAPPER_HPP
#define HADOUKEN_SCRIPTING_MODULES_BITTORRENT_TORRENTSTATUSWRAPPER_HPP

#include <memory>

namespace Hadouken
{
namespace BitTorrent
{
struct TorrentStatus;
}
}

namespace Hadouken
{
namespace Scripting
{
namespace Modules
{
namespace BitTorrent
{
class TorrentStatusWrapper
{
public:
static void initialize(void* ctx, Hadouken::BitTorrent::TorrentStatus& status);

static const char* field;

private:
static int finalize(void* ctx);

static int getName(void* ctx);
static int getProgress(void* ctx);
static int getSavePath(void* ctx);
static int getDownloadRate(void* ctx);
static int getUploadRate(void* ctx);
static int getDownloadedBytes(void* ctx);
static int getDownloadedBytesTotal(void* ctx);
static int getUploadedBytes(void* ctx);
static int getUploadedBytesTotal(void* ctx);
static int getNumPeers(void* ctx);
static int getNumSeeds(void* ctx);
static int getState(void* ctx);
static int isFinished(void* ctx);
static int isMovingStorage(void* ctx);
static int isPaused(void* ctx);
static int isSeeding(void* ctx);
static int isSequentialDownload(void* ctx);
};
}
}
}
}

#endif
71 changes: 1 addition & 70 deletions include/Hadouken/Scripting/Modules/BitTorrentModule.hpp
Expand Up @@ -3,18 +3,6 @@

#include <memory>

namespace Hadouken
{
namespace BitTorrent
{
struct PeerInfo;
class Session;
class TorrentInfo;
struct TorrentHandle;
struct TorrentStatus;
}
}

namespace Hadouken
{
namespace Scripting
Expand All @@ -27,64 +15,7 @@ namespace Hadouken
static int initialize(void* ctx);

private:
static void handle_initialize(void* ctx, std::shared_ptr<Hadouken::BitTorrent::TorrentHandle> handle);
static int handle_finalize(void* ctx);
static int handle_getInfoHash(void* ctx);
static int handle_getPeers(void* ctx);
static int handle_getQueuePosition(void* ctx);
static int handle_getStatus(void* ctx);
static int handle_getTags(void* ctx);
static int handle_getTorrentInfo(void* ctx);
static int handle_moveStorage(void* ctx);
static int handle_pause(void* ctx);
static int handle_resume(void* ctx);

static void info_initialize(void* ctx, Hadouken::BitTorrent::TorrentHandle& handle, std::unique_ptr<Hadouken::BitTorrent::TorrentInfo> info);
static int info_finalize(void* ctx);
static int info_getFiles(void* ctx);
static int info_getTotalSize(void* ctx);

static void peer_initialize(void* ctx, Hadouken::BitTorrent::PeerInfo& peer);
static int peer_finalize(void* ctx);
static int peer_getConnectionType(void* ctx);
static int peer_getCountry(void* ctx);
static int peer_getIp(void* ctx);
static int peer_getPort(void* ctx);
static int peer_getClient(void* ctx);
static int peer_getProgress(void* ctx);
static int peer_getDownloadRate(void* ctx);
static int peer_getUploadRate(void* ctx);
static int peer_getDownloadedBytes(void* ctx);
static int peer_getUploadedBytes(void* ctx);

static int session_addTorrentFile(void* ctx);
static int session_addTorrentUri(void* ctx);
static int session_findTorrent(void* ctx);
static int session_getTorrents(void* ctx);
static int session_removeTorrent(void* ctx);

static void status_initialize(void* ctx, Hadouken::BitTorrent::TorrentStatus& status);
static int status_finalize(void* ctx);
static int status_getDownloadedBytes(void* ctx);
static int status_getDownloadedBytesTotal(void* ctx);
static int status_getDownloadRate(void* ctx);
static int status_getName(void* ctx);
static int status_getNumPeers(void* ctx);
static int status_getNumSeeds(void* ctx);
static int status_getProgress(void* ctx);
static int status_getSavePath(void* ctx);
static int status_getState(void* ctx);
static int status_getUploadedBytes(void* ctx);
static int status_getUploadedBytesTotal(void* ctx);
static int status_getUploadRate(void* ctx);
static int status_isFinished(void* ctx);
static int status_isMovingStorage(void* ctx);
static int status_isPaused(void* ctx);
static int status_isSeeding(void* ctx);
static int status_isSequentialDownload(void* ctx);

template<class T>
static T* getPointerFromThis(void* ctx, const char* fieldName);
static int getSession(void* ctx);
};
}
}
Expand Down

0 comments on commit 21d0454

Please sign in to comment.