summaryrefslogtreecommitdiff
path: root/src/protocol-constants.h
blob: 462a612367f2f29ccdeae1f4ad265f70daa0f836 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/*
 * transmission-remote-gtk - A GTK RPC client to Transmission
 * Copyright (C) 2010  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"

/* torrents */

#define FIELD_TORRENTS          "torrents"	/* parent node */
#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_TRACKERS          "trackers"
#define FIELD_DOWNLOAD_DIR      "downloadDir"
#define FIELD_HASH_STRING       "hashString"
#define FIELD_SWARM_SPEED       "swarmSpeed"
#define FIELD_ERROR_STRING      "errorString"
#define FIELD_NAME		"name"
#define FIELD_SIZEWHENDONE	"sizeWhenDone"
#define FIELD_STATUS		"status"
#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_TRACKERS          "trackers"
#define FIELD_PEERS             "peers"
#define FIELD_FILES             "files"
#define FIELD_WANTED            "wanted"
#define FIELD_PRIORITIES        "priorities"
#define FIELD_COMMENT           "comment"
#define FIELD_LEFTUNTILDONE     "leftUntilDone"
#define FIELD_ISFINISHED        "isFinished"
#define FIELD_ERRORSTR          "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_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"

/* 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_STOP     "torrent-stop"
#define METHOD_TORRENT_VERIFY   "torrent-verify"
#define METHOD_TORRENT_REMOVE   "torrent-remove"
#define METHOD_TORRENT_ADD      "torrent-add"

#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_TAG               "tag"

enum {
    STATUS_WAITING_TO_CHECK = 1,
    STATUS_CHECKING = 2,
    STATUS_DOWNLOADING = 4,
    STATUS_SEEDING = 8,
    STATUS_PAUSED = 16
} TorrentState;

#define TFILE_LENGTH                            "length"
#define TFILE_BYTES_COMPLETED                   "bytesCompleted"
#define TFILE_NAME                              "name"

#endif				/* PROTOCOL_CONSTANTS_H_ */