RestProxy

RestProxy

Synopsis

                    RestProxy;
                    RestProxyClass;
#define             REST_PROXY_ERROR
enum                RestProxyError;
RestProxy *         rest_proxy_new                      (const gchar *url_format,
                                                         gboolean binding_required);
gboolean            rest_proxy_bind                     (RestProxy *proxy,
                                                         ...);
gboolean            rest_proxy_bind_valist              (RestProxy *proxy,
                                                         va_list params);
void                rest_proxy_set_user_agent           (RestProxy *proxy,
                                                         const char *user_agent);
const gchar *       rest_proxy_get_user_agent           (RestProxy *proxy);
RestProxyCall *     rest_proxy_new_call                 (RestProxy *proxy);
gboolean            rest_proxy_simple_run               (RestProxy *proxy,
                                                         gchar **payload,
                                                         goffset *len,
                                                         GError **error,
                                                         ...);
gboolean            rest_proxy_simple_run_valist        (RestProxy *proxy,
                                                         gchar **payload,
                                                         goffset *len,
                                                         GError **error,
                                                         va_list params);

Object Hierarchy

  GObject
   +----RestProxy
         +----OAuthProxy
         +----FlickrProxy
         +----FacebookProxy

Properties

  "binding-required"         gboolean              : Read / Write
  "url-format"               gchar*                : Read / Write
  "user-agent"               gchar*                : Read / Write

Description

Details

RestProxy

typedef struct _RestProxy RestProxy;

RestProxy has no publicly available members.


RestProxyClass

typedef struct {
  GObjectClass parent_class;
  gboolean (*bind_valist)(RestProxy *proxy, va_list params);
  RestProxyCall *(*new_call)(RestProxy *proxy);
  gboolean (*simple_run_valist)(RestProxy *proxy, gchar **payload,
      goffset *len, GError **error, va_list params);
} RestProxyClass;

bind_valist: Virtual function called to bind parameters. new_call: Virtual function called to construct a new RestProxyCall. simple_run_valist: Virtual function called when making a "simple" call.

Class structure for RestProxy for subclasses to implement specialised behaviour.

Typically subclasses will override new_call to construct a subclass of RestProxyCall.


REST_PROXY_ERROR

#define REST_PROXY_ERROR rest_proxy_error_quark ()

enum RestProxyError

typedef enum {
  REST_PROXY_ERROR_CANCELLED = 1,
  REST_PROXY_ERROR_RESOLUTION,
  REST_PROXY_ERROR_CONNECTION,
  REST_PROXY_ERROR_SSL,
  REST_PROXY_ERROR_IO,
  REST_PROXY_ERROR_FAILED,

  REST_PROXY_ERROR_HTTP_MULTIPLE_CHOICES                = 300,
  REST_PROXY_ERROR_HTTP_MOVED_PERMANENTLY               = 301,
  REST_PROXY_ERROR_HTTP_FOUND                           = 302,
  REST_PROXY_ERROR_HTTP_SEE_OTHER                       = 303,
  REST_PROXY_ERROR_HTTP_NOT_MODIFIED                    = 304,
  REST_PROXY_ERROR_HTTP_USE_PROXY                       = 305,
  REST_PROXY_ERROR_HTTP_THREEOHSIX                      = 306,
  REST_PROXY_ERROR_HTTP_TEMPORARY_REDIRECT              = 307,
  REST_PROXY_ERROR_HTTP_BAD_REQUEST                     = 400,
  REST_PROXY_ERROR_HTTP_UNAUTHORIZED                    = 401,
  REST_PROXY_ERROR_HTTP_FOUROHTWO                       = 402,
  REST_PROXY_ERROR_HTTP_FORBIDDEN                       = 403,
  REST_PROXY_ERROR_HTTP_NOT_FOUND                       = 404,
  REST_PROXY_ERROR_HTTP_METHOD_NOT_ALLOWED              = 405,
  REST_PROXY_ERROR_HTTP_NOT_ACCEPTABLE                  = 406,
  REST_PROXY_ERROR_HTTP_PROXY_AUTHENTICATION_REQUIRED   = 407,
  REST_PROXY_ERROR_HTTP_REQUEST_TIMEOUT                 = 408,
  REST_PROXY_ERROR_HTTP_CONFLICT                        = 409,
  REST_PROXY_ERROR_HTTP_GONE                            = 410,
  REST_PROXY_ERROR_HTTP_LENGTH_REQUIRED                 = 411,
  REST_PROXY_ERROR_HTTP_PRECONDITION_FAILED             = 412,
  REST_PROXY_ERROR_HTTP_REQUEST_ENTITY_TOO_LARGE        = 413,
  REST_PROXY_ERROR_HTTP_REQUEST_URI_TOO_LONG            = 414,
  REST_PROXY_ERROR_HTTP_UNSUPPORTED_MEDIA_TYPE          = 415,
  REST_PROXY_ERROR_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
  REST_PROXY_ERROR_HTTP_EXPECTATION_FAILED              = 417,
  REST_PROXY_ERROR_HTTP_INTERNAL_SERVER_ERROR           = 500,
  REST_PROXY_ERROR_HTTP_NOT_IMPLEMENTED                 = 501,
  REST_PROXY_ERROR_HTTP_BAD_GATEWAY                     = 502,
  REST_PROXY_ERROR_HTTP_SERVICE_UNAVAILABLE             = 503,
  REST_PROXY_ERROR_HTTP_GATEWAY_TIMEOUT                 = 504,
  REST_PROXY_ERROR_HTTP_HTTP_VERSION_NOT_SUPPORTED      = 505,
} RestProxyError;

rest_proxy_new ()

RestProxy *         rest_proxy_new                      (const gchar *url_format,
                                                         gboolean binding_required);

Create a new RestProxy for the specified endpoint url_format, using the GET method.

Set binding_required to TRUE if the URL contains string formatting operations (for example "http://foo.com/%s". These must be expanded using rest_proxy_bind() before invoking the proxy.

url_format :

the endpoint URL

binding_required :

whether the URL needs to be bound before calling

Returns :

A new RestProxy.

rest_proxy_bind ()

gboolean            rest_proxy_bind                     (RestProxy *proxy,
                                                         ...);

rest_proxy_bind_valist ()

gboolean            rest_proxy_bind_valist              (RestProxy *proxy,
                                                         va_list params);

rest_proxy_set_user_agent ()

void                rest_proxy_set_user_agent           (RestProxy *proxy,
                                                         const char *user_agent);

rest_proxy_get_user_agent ()

const gchar *       rest_proxy_get_user_agent           (RestProxy *proxy);

rest_proxy_new_call ()

RestProxyCall *     rest_proxy_new_call                 (RestProxy *proxy);

rest_proxy_simple_run ()

gboolean            rest_proxy_simple_run               (RestProxy *proxy,
                                                         gchar **payload,
                                                         goffset *len,
                                                         GError **error,
                                                         ...);

rest_proxy_simple_run_valist ()

gboolean            rest_proxy_simple_run_valist        (RestProxy *proxy,
                                                         gchar **payload,
                                                         goffset *len,
                                                         GError **error,
                                                         va_list params);

Property Details

The "binding-required" property

  "binding-required"         gboolean              : Read / Write

Whether the URL format requires binding.

Default value: FALSE


The "url-format" property

  "url-format"               gchar*                : Read / Write

Format string for the RESTful url.

Default value: NULL


The "user-agent" property

  "user-agent"               gchar*                : Read / Write

The User-Agent of the client.

Default value: NULL