From 834a3f2151dd8738a1f878489f6207664c4af5aa Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Sun, 14 Jul 2013 17:14:53 -0700 Subject: Imported Upstream version 1.1.1 --- src/protocol-constants.h | 198 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 src/protocol-constants.h (limited to 'src/protocol-constants.h') diff --git a/src/protocol-constants.h b/src/protocol-constants.h new file mode 100644 index 0000000..061a10e --- /dev/null +++ b/src/protocol-constants.h @@ -0,0 +1,198 @@ +/* + * transmission-remote-gtk - A GTK RPC client to Transmission + * Copyright (C) 2011-2013 Alan Fitton + + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef PROTOCOL_CONSTANTS_H_ +#define PROTOCOL_CONSTANTS_H_ + +/* generic contstants */ + +#define PARAM_METHOD "method" +#define FIELD_ID "id" + +/* top level */ + +#define FIELD_RESULT "result" +#define FIELD_SUCCESS "success" + +/* torrents */ + +#define FIELD_RECENTLY_ACTIVE "recently-active" +#define FIELD_TORRENTS "torrents" /* parent node */ +#define FIELD_REMOVED "removed" +#define FIELD_ANNOUNCE_URL "announceUrl" +#define FIELD_LEFT_UNTIL_DONE "leftUntilDone" +#define FIELD_TOTAL_SIZE "totalSize" +#define FIELD_DONE_DATE "doneDate" +#define FIELD_ADDED_DATE "addedDate" +#define FIELD_DATE_CREATED "dateCreated" +#define FIELD_TRACKER_STATS "trackerStats" +#define FIELD_DOWNLOAD_DIR "downloadDir" +#define FIELD_HASH_STRING "hashString" +//#define FIELD_SWARM_SPEED "swarmSpeed" +#define FIELD_NAME "name" +#define FIELD_SIZEWHENDONE "sizeWhenDone" +#define FIELD_STATUS "status" +#define FIELD_MOVE "move" +#define FIELD_CREATOR "creator" +#define FIELD_LOCATION "location" +#define FIELD_RATEDOWNLOAD "rateDownload" +#define FIELD_RATEUPLOAD "rateUpload" +#define FIELD_ETA "eta" +#define FIELD_UPLOADEDEVER "uploadedEver" +#define FIELD_DOWNLOADEDEVER "downloadedEver" +#define FIELD_HAVEVALID "haveValid" +#define FIELD_HAVEUNCHECKED "haveUnchecked" +#define FIELD_PERCENTDONE "percentDone" +#define FIELD_PEERS "peers" +#define FIELD_PEERSFROM "peersFrom" +#define FIELD_FILES "files" +#define FIELD_WANTED "wanted" +#define FIELD_WEB_SEEDS_SENDING_TO_US "webseedsSendingToUs" +#define FIELD_PRIORITIES "priorities" +#define FIELD_COMMENT "comment" +#define FIELD_LEFTUNTILDONE "leftUntilDone" +#define FIELD_ISFINISHED "isFinished" +#define FIELD_ISPRIVATE "isPrivate" +#define FIELD_ERROR "error" +#define FIELD_ERROR_STRING "errorString" +#define FIELD_BANDWIDTH_PRIORITY "bandwidthPriority" +#define FIELD_UPLOAD_LIMIT "uploadLimit" +#define FIELD_UPLOAD_LIMITED "uploadLimited" +#define FIELD_DOWNLOAD_LIMIT "downloadLimit" +#define FIELD_DOWNLOAD_LIMITED "downloadLimited" +#define FIELD_HONORS_SESSION_LIMITS "honorsSessionLimits" +#define FIELD_SEED_RATIO_MODE "seedRatioMode" +#define FIELD_SEED_RATIO_LIMIT "seedRatioLimit" +#define FIELD_PEER_LIMIT "peer-limit" +#define FIELD_DOWNLOAD_DIR "downloadDir" +#define FIELD_FILE_DOWNLOAD_DIR "download-dir" +#define FIELD_PEERS_SENDING_TO_US "peersSendingToUs" +#define FIELD_PEERS_GETTING_FROM_US "peersGettingFromUs" +#define FIELD_PEERS_CONNECTED "peersConnected" +#define FIELD_QUEUE_POSITION "queuePosition" +#define FIELD_ACTIVITY_DATE "activityDate" +#define FIELD_ISPRIVATE "isPrivate" +#define FIELD_METADATAPERCENTCOMPLETE "metadataPercentComplete" + +#define FIELD_FILES_WANTED "files-wanted" +#define FIELD_FILES_UNWANTED "files-unwanted" +#define FIELD_FILES_PRIORITY_HIGH "priority-high" +#define FIELD_FILES_PRIORITY_NORMAL "priority-normal" +#define FIELD_FILES_PRIORITY_LOW "priority-low" + +/* trackers */ + +#define FIELD_TIER "tier" +#define FIELD_ANNOUNCE "announce" +#define FIELD_SCRAPE "scrape" +#define FIELD_LAST_ANNOUNCE_PEER_COUNT "lastAnnouncePeerCount" +#define FIELD_LAST_ANNOUNCE_TIME "lastAnnounceTime" +#define FIELD_LAST_SCRAPE_TIME "lastScrapeTime" +#define FIELD_SEEDERCOUNT "seederCount" +#define FIELD_LEECHERCOUNT "leecherCount" +#define FIELD_DOWNLOADCOUNT "downloadCount" +#define FIELD_HOST "host" +#define FIELD_LAST_ANNOUNCE_RESULT "lastAnnounceResult" +#define FIELD_RECHECK_PROGRESS "recheckProgress" + +/* methods */ + +#define METHOD_TORRENT_START "torrent-start" +#define METHOD_SESSION_GET "session-get" +#define METHOD_SESSION_SET "session-set" +#define METHOD_TORRENT_GET "torrent-get" +#define METHOD_TORRENT_SET "torrent-set" +#define METHOD_TORRENT_SET_LOCATION "torrent-set-location" +#define METHOD_TORRENT_STOP "torrent-stop" +#define METHOD_TORRENT_VERIFY "torrent-verify" +#define METHOD_TORRENT_REMOVE "torrent-remove" +#define METHOD_TORRENT_ADD "torrent-add" +#define METHOD_TORRENT_REANNOUNCE "torrent-reannounce" +#define METHOD_PORT_TEST "port-test" +#define METHOD_BLOCKLIST_UPDATE "blocklist-update" +#define METHOD_SESSION_STATS "session-stats" +#define METHOD_QUEUE_MOVE_TOP "queue-move-top" +#define METHOD_QUEUE_MOVE_UP "queue-move-up" +#define METHOD_QUEUE_MOVE_BOTTOM "queue-move-bottom" +#define METHOD_QUEUE_MOVE_DOWN "queue-move-down" +#define METHOD_TORRENT_START_NOW "torrent-start-now" + +#define PARAM_IDS "ids" +#define PARAM_DELETE_LOCAL_DATA "delete-local-data" +#define PARAM_ARGUMENTS "arguments" +#define PARAM_FIELDS "fields" +#define PARAM_METAINFO "metainfo" +#define PARAM_FILENAME "filename" +#define PARAM_PAUSED "paused" +#define PARAM_TAG "tag" + +/* peers structure */ + +#define TPEER_ADDRESS "address" +#define TPEER_CLIENT_NAME "clientName" +#define TPEER_PROGRESS "progress" +#define TPEER_RATE_TO_CLIENT "rateToClient" +#define TPEER_RATE_TO_PEER "rateToPeer" +#define TPEER_IS_ENCRYPTED "isEncrypted" +#define TPEER_IS_DOWNLOADING_FROM "isDownloadingFrom" +#define TPEER_IS_UPLOADING_TO "isUploadingTo" +#define TPEER_FLAGSTR "flagStr" + +#define TPEERFROM_FROMPEX "fromPex" +#define TPEERFROM_FROMDHT "fromDht" +#define TPEERFROM_FROMTRACKERS "fromTracker" +#define TPEERFROM_FROMLTEP "fromLtep" +#define TPEERFROM_FROMRESUME "fromCache" +#define TPEERFROM_FROMINCOMING "fromIncoming" +#define TPEERFROM_FROMLPD "fromLpd" + +/* The rpc-version >= that the status field of torrent-get changed */ +#define NEW_STATUS_RPC_VERSION 14 + +typedef enum { + OLD_STATUS_WAITING_TO_CHECK = 1, + OLD_STATUS_CHECKING = 2, + OLD_STATUS_DOWNLOADING = 4, + OLD_STATUS_SEEDING = 8, + OLD_STATUS_PAUSED = 16 +} trg_old_status; + +typedef enum { + TR_STATUS_STOPPED = 0, /* Torrent is stopped */ + TR_STATUS_CHECK_WAIT = 1, /* Queued to check files */ + TR_STATUS_CHECK = 2, /* Checking files */ + TR_STATUS_DOWNLOAD_WAIT = 3, /* Queued to download */ + TR_STATUS_DOWNLOAD = 4, /* Downloading */ + TR_STATUS_SEED_WAIT = 5, /* Queued to seed */ + TR_STATUS_SEED = 6 /* Seeding */ +} tr_torrent_activity; + +enum { + TR_PRI_UNSET = -3, /* Not actually in the protocol. Just used in UI. */ + TR_PRI_MIXED = -2, /* Neither is this. */ + TR_PRI_LOW = -1, + TR_PRI_NORMAL = 0, /* since NORMAL is 0, memset initializes nicely */ + TR_PRI_HIGH = 1 +}; + +#define TFILE_LENGTH "length" +#define TFILE_BYTES_COMPLETED "bytesCompleted" +#define TFILE_NAME "name" + +#endif /* PROTOCOL_CONSTANTS_H_ */ -- cgit v1.2.3