diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-10-08 17:12:05 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-10-08 17:12:05 +0000 |
commit | f930813dd818ddbd88374f89394d68d485b4d1e7 (patch) | |
tree | 3ee6a9803b509a542d6a1653fb47dbfe2860c032 /src/torrent.c | |
parent | 579d63656354be1e92e0625136c46d24192d826a (diff) |
move {tpeer,tfile},{c,h} into torrent.{c,h}
Diffstat (limited to 'src/torrent.c')
-rw-r--r-- | src/torrent.c | 108 |
1 files changed, 107 insertions, 1 deletions
diff --git a/src/torrent.c b/src/torrent.c index 4510f64..879573e 100644 --- a/src/torrent.c +++ b/src/torrent.c @@ -68,7 +68,11 @@ const gchar *torrent_get_download_dir(JsonObject * t) gdouble torrent_get_metadata_percent_complete(JsonObject *t) { - return json_double_to_progress(json_object_get_member(t, FIELD_METADATAPERCENTCOMPLETE)); + JsonNode *node = json_object_get_member(t, FIELD_METADATAPERCENTCOMPLETE); + if (node) + return json_double_to_progress(node); + else + return 100.0; } const gchar *torrent_get_name(JsonObject * t) @@ -503,3 +507,105 @@ gchar *torrent_get_full_dir(JsonObject * obj) { return containing_path; } +/* peers */ + +const gchar *peer_get_address(JsonObject * p) { + return json_object_get_string_member(p, TPEER_ADDRESS); +} + +const gchar *peer_get_flagstr(JsonObject * p) { + return json_object_get_string_member(p, TPEER_FLAGSTR); +} + +const gchar *peer_get_client_name(JsonObject * p) { + return json_object_get_string_member(p, TPEER_CLIENT_NAME); +} + +gboolean peer_get_is_encrypted(JsonObject * p) { + return json_object_get_boolean_member(p, TPEER_IS_ENCRYPTED); +} + +gboolean peer_get_is_uploading_to(JsonObject * p) { + return json_object_get_boolean_member(p, TPEER_IS_UPLOADING_TO); +} + +gboolean peer_get_is_downloading_from(JsonObject * p) { + return json_object_get_boolean_member(p, TPEER_IS_DOWNLOADING_FROM); +} + +gdouble peer_get_progress(JsonObject * p) { + return json_double_to_progress(json_object_get_member(p, TPEER_PROGRESS)); +} + +gint64 peer_get_rate_to_client(JsonObject * p) { + return json_object_get_int_member(p, TPEER_RATE_TO_CLIENT); +} + +gint64 peer_get_rate_to_peer(JsonObject * p) { + return json_object_get_int_member(p, TPEER_RATE_TO_PEER); +} + +gint64 peerfrom_get_pex(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMPEX); +} + +gint64 peerfrom_get_dht(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMDHT); +} + +gint64 peerfrom_get_trackers(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMTRACKERS); +} + +gint64 peerfrom_get_ltep(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMLTEP); +} + +gint64 peerfrom_get_resume(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMRESUME); +} + +gint64 peerfrom_get_incoming(JsonObject *pf) +{ + return json_object_get_int_member(pf, TPEERFROM_FROMINCOMING); +} + + +gint64 peerfrom_get_lpd(JsonObject *pf) +{ + return json_object_has_member(pf, TPEERFROM_FROMLPD) ? + json_object_get_int_member(pf, TPEERFROM_FROMLPD) : -1; +} + +/* files */ + +gdouble file_get_progress(JsonObject * f) +{ + gint64 length = file_get_length(f); + if (length > 0) { + return ((gdouble) file_get_bytes_completed(f) / + (gdouble) length) * 100.0; + } else { + return 0.0; + } +} + +gint64 file_get_length(JsonObject * f) +{ + return json_object_get_int_member(f, TFILE_LENGTH); +} + +gint64 file_get_bytes_completed(JsonObject * f) +{ + return json_object_get_int_member(f, TFILE_BYTES_COMPLETED); +} + +const gchar *file_get_name(JsonObject * f) +{ + return json_object_get_string_member(f, TFILE_NAME); +} |