diff options
Diffstat (limited to 'src/libtracker-sparql/remote/tracker-remote.vala')
-rw-r--r-- | src/libtracker-sparql/remote/tracker-remote.vala | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/src/libtracker-sparql/remote/tracker-remote.vala b/src/libtracker-sparql/remote/tracker-remote.vala index 206c237fc..50dc612f3 100644 --- a/src/libtracker-sparql/remote/tracker-remote.vala +++ b/src/libtracker-sparql/remote/tracker-remote.vala @@ -39,7 +39,11 @@ public class Tracker.Remote.Connection : Tracker.Sparql.Connection { private Soup.Message create_request (string sparql) { var uri = _base_uri + "?query=" + sparql; var message = new Soup.Message ("GET", uri); +#if SOUP2 var headers = message.request_headers; +#else + var headers = message.get_request_headers(); +#endif headers.append ("User-Agent", USER_AGENT); headers.append ("Accept", JSON_TYPE); @@ -48,15 +52,20 @@ public class Tracker.Remote.Connection : Tracker.Sparql.Connection { return message; } - private Sparql.Cursor create_cursor (Soup.Message message) throws GLib.Error, Sparql.Error { - string document = (string) message.response_body.flatten ().data; + private Sparql.Cursor create_cursor (Soup.Message message, string document) throws GLib.Error, Sparql.Error { +#if SOUP2 + var status_code = message.status_code; + var headers = message.response_headers; +#else + var status_code = message.get_status(); + var headers = message.get_response_headers(); +#endif - if (message.status_code != Soup.Status.OK) { + if (status_code != Soup.Status.OK) { throw new Sparql.Error.UNSUPPORTED ("Unhandled status code %u, document is: %s", - message.status_code, document); + status_code, document); } - var headers = message.response_headers; var content_type = headers.get_content_type (null); long length = document.length; @@ -72,20 +81,32 @@ public class Tracker.Remote.Connection : Tracker.Sparql.Connection { public override Sparql.Cursor query (string sparql, Cancellable? cancellable) throws GLib.Error, Sparql.Error, IOError { var message = create_request (sparql); +#if SOUP2 _session.send_message (message); +#else + var body = _session.send_and_read (message); +#endif if (cancellable != null && cancellable.is_cancelled ()) throw new IOError.CANCELLED ("Operation was cancelled"); - return create_cursor (message); +#if SOUP2 + return create_cursor (message, (string) message.response_body.flatten ().data); +#else + return create_cursor (message, (string) body.get_data()); +#endif } public async override Sparql.Cursor query_async (string sparql, Cancellable? cancellable) throws GLib.Error, Sparql.Error, IOError { var message = create_request (sparql); +#if SOUP2 yield _session.send_async (message, cancellable); - - return create_cursor (message); + return create_cursor (message, (string) message.response_body.flatten ().data); +#else + var body = yield _session.send_and_read_async (message, GLib.Priority.DEFAULT, cancellable); + return create_cursor (message, (string) body.get_data()); +#endif } public override void close () { |