/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ /* * Copyright (C) 2008 Red Hat, Inc. */ #pragma once #include "soup-types.h" G_BEGIN_DECLS /** * SECTION:soup-method * @section_id: SoupMethod * @short_description: HTTP method definitions * * soup-method.h contains a number of defines for standard HTTP and * WebDAV headers. You do not need to use these defines; you can pass * arbitrary strings to soup_message_new() if you prefer. * * The thing that these defines are useful for is * performing quick comparisons against soup_message_get_method(); * because #SoupMessage always contains an interned string, and these * macros return interned strings, you can compare methods directly * against these macros rather than needing to use strcmp(). This is * most useful in #SoupServer handlers. Eg: * * * if (soup_message_get_method (msg) != SOUP_METHOD_GET && soup_message_get_method (msg) != SOUP_METHOD_HEAD) { * soup_message_set_status (msg, SOUP_METHOD_NOT_IMPLEMENTED); * return; * } * **/ #define _SOUP_INTERN_METHOD(method) (_SOUP_ATOMIC_INTERN_STRING (_SOUP_METHOD_##method, #method)) /* HTTP/1.1 methods */ #define SOUP_METHOD_OPTIONS _SOUP_INTERN_METHOD (OPTIONS) #define SOUP_METHOD_GET _SOUP_INTERN_METHOD (GET) #define SOUP_METHOD_HEAD _SOUP_INTERN_METHOD (HEAD) #define SOUP_METHOD_POST _SOUP_INTERN_METHOD (POST) #define SOUP_METHOD_PUT _SOUP_INTERN_METHOD (PUT) #define SOUP_METHOD_DELETE _SOUP_INTERN_METHOD (DELETE) #define SOUP_METHOD_TRACE _SOUP_INTERN_METHOD (TRACE) #define SOUP_METHOD_CONNECT _SOUP_INTERN_METHOD (CONNECT) /* WebDAV methods */ #define SOUP_METHOD_PROPFIND _SOUP_INTERN_METHOD (PROPFIND) #define SOUP_METHOD_PROPPATCH _SOUP_INTERN_METHOD (PROPPATCH) #define SOUP_METHOD_MKCOL _SOUP_INTERN_METHOD (MKCOL) #define SOUP_METHOD_COPY _SOUP_INTERN_METHOD (COPY) #define SOUP_METHOD_MOVE _SOUP_INTERN_METHOD (MOVE) #define SOUP_METHOD_LOCK _SOUP_INTERN_METHOD (LOCK) #define SOUP_METHOD_UNLOCK _SOUP_INTERN_METHOD (UNLOCK) /* Do not use these variables directly; use the macros above, which * ensure that they get initialized properly. */ SOUP_VAR gpointer _SOUP_METHOD_OPTIONS; SOUP_VAR gpointer _SOUP_METHOD_GET; SOUP_VAR gpointer _SOUP_METHOD_HEAD; SOUP_VAR gpointer _SOUP_METHOD_POST; SOUP_VAR gpointer _SOUP_METHOD_PUT; SOUP_VAR gpointer _SOUP_METHOD_DELETE; SOUP_VAR gpointer _SOUP_METHOD_TRACE; SOUP_VAR gpointer _SOUP_METHOD_CONNECT; SOUP_VAR gpointer _SOUP_METHOD_PROPFIND; SOUP_VAR gpointer _SOUP_METHOD_PROPPATCH; SOUP_VAR gpointer _SOUP_METHOD_MKCOL; SOUP_VAR gpointer _SOUP_METHOD_COPY; SOUP_VAR gpointer _SOUP_METHOD_MOVE; SOUP_VAR gpointer _SOUP_METHOD_LOCK; SOUP_VAR gpointer _SOUP_METHOD_UNLOCK; G_END_DECLS