memcache/command.h
author Tero Marttila <terom@fixme.fi>
Thu, 28 Aug 2008 03:12:11 +0300
changeset 46 8a832c0e01ee
parent 43 e5b714190dee
child 48 1c67f512779b
permissions -rw-r--r--
bugfixed, enum->string mappings, test does requests
41
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#ifndef MEMCACHE_COMMAND_H
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
#define MEMCACHE_COMMAND_H
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
#include <event2/util.h>
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
#include <event2/buffer.h>
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
#include "../memcache.h"
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
struct memcache_cmd {
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
    struct evbuffer *req_header;
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
};
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
int memcache_cmd_init (struct memcache_cmd *cmd, enum memcache_command cmd_type, struct memcache_key *key, struct memcache_obj *obj);
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
46
8a832c0e01ee bugfixed, enum->string mappings, test does requests
Tero Marttila <terom@fixme.fi>
parents: 43
diff changeset
    15
/*
8a832c0e01ee bugfixed, enum->string mappings, test does requests
Tero Marttila <terom@fixme.fi>
parents: 43
diff changeset
    16
 * Write the request header corresponding to the given command/key/obj to the given evbuffer.
8a832c0e01ee bugfixed, enum->string mappings, test does requests
Tero Marttila <terom@fixme.fi>
parents: 43
diff changeset
    17
 *
8a832c0e01ee bugfixed, enum->string mappings, test does requests
Tero Marttila <terom@fixme.fi>
parents: 43
diff changeset
    18
 * This must be atomic, so if it fails, it must not modify buf.
8a832c0e01ee bugfixed, enum->string mappings, test does requests
Tero Marttila <terom@fixme.fi>
parents: 43
diff changeset
    19
 */
41
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
int memcache_cmd_format_header (struct evbuffer *buf, enum memcache_command cmd_type, struct memcache_key *key, struct memcache_obj *obj);
43
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    21
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    22
/*
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    23
 * Attempt to parse a response line from the given buf. *header_data will be set to NULL if no complete response line
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    24
 * was found, or a pointer to the line received (which may contain NULs between tokens), which must be freed by the
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    25
 * caller. *reply_type will be set to the parsed `enum memcache_reply` type. If the reply is of type
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    26
 * MEMCACHE_RPL_VALUE, then key and obj will be updated to correspond to what was returned (key.buf will point into
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    27
 * *header_data). has_data will be set to true if the response also contains cache data.
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    28
 *
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    29
 * Empty lines will be skipped based on the assumption that they are, in fact, the newline between the data and the
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    30
 * MEMCACHE_RPL_END line of a MEMCACHE_RPL_VALUE reply.
e5b714190dee the request/reply code should be complete now, but still needs testing
Tero Marttila <terom@fixme.fi>
parents: 41
diff changeset
    31
 */
41
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
int memcache_cmd_parse_header (struct evbuffer *buf, char **header_data, enum memcache_reply *reply_type, struct memcache_key *key, struct memcache_obj *obj, int *has_data);
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
540737bf6bac sending requests, and partial support for receiving -- incomplete, not tested
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
#endif /* MEMCACHE_COMMAND_H */