cgi/session.h File Reference

Sessions and session data. More...

#include <sys/time.h>
#include <cgi/cgi_config.h>
#include <cgi/sess_stdtype.h>

Data Structures

struct  s_serialized
 Serialized variable for storing into session storage. More...
struct  s_session_handler
 Session handler structure. More...

Defines

#define SESSION_REGISTER(ctx, var, serializer, deserializer)   session_register_var(ctx, #var, &var, serializer, deserializer)
 Shortcut for session_register_var function.

Typedefs

typedef void(* t_serializer )(struct s_serialized *, void *var)
 Type serializer function Serializer's responsibility is to convert var to s_serialized structure.
typedef void(* t_deserializer )(struct s_serialized *, void *var)
 Type deserializer function Deserializer's responsibility is to convert s_serialized structure to var (which could be a pointer to any variable type).
typedef int(* session_media_load )(struct s_session *, char *, struct s_serialized *)
 Handler for loading session data.
typedef int(* session_media_save )(struct s_session *, char *, struct s_serialized *)
 Handler for saving session data.
typedef int(* session_media_open )(struct s_session *)
 Handler for opening session storage.
typedef int(* session_media_close )(struct s_session *)
 Handler for closing session storage.
typedef int(* session_media_clean )(struct s_session *)
 Handler for clearing (truncating) session storage.
typedef int(* session_media_destroy )(struct s_session *)
 Handler for removing session storage.
typedef int(* session_media_check )(struct s_session *)
 Handler for checking whether storage exists.
typedef int(* session_media_gc )(struct s_session *)
 Handler for garbage collection (checking for outdated sessions and destroying them).

Functions

void session_register_var (struct s_cgi_context *ctx, char *name, void *var_ptr, t_serializer serializer, t_deserializer deserializer)
 Register session variable.
t_session * session_start (struct s_cgi_context *ctx)
 Start session handling.
void session_destroy (struct s_cgi_context *ctx)
 Stop session handling and remove storage.


Detailed Description

Sessions and session data.

Author:
Vladimir Pavluk, 2006-2007
Sessions and session data handling functions.

Define Documentation

#define SESSION_REGISTER ( ctx,
var,
serializer,
deserializer   )     session_register_var(ctx, #var, &var, serializer, deserializer)

Shortcut for session_register_var function.

Parameters:
ctx pointer to existing CGI context (t_cgi_context *).
var variable.
serializer type serializer (function).
deserializer type deserializer (function).
See also:
session_register_var(struct s_cgi_context *, char *, void *, t_serializer, t_deserializer)


Typedef Documentation

typedef int(* session_media_check)(struct s_session *)

Handler for checking whether storage exists.

typedef int(* session_media_clean)(struct s_session *)

Handler for clearing (truncating) session storage.

typedef int(* session_media_close)(struct s_session *)

Handler for closing session storage.

typedef int(* session_media_destroy)(struct s_session *)

Handler for removing session storage.

typedef int(* session_media_gc)(struct s_session *)

Handler for garbage collection (checking for outdated sessions and destroying them).

typedef int(* session_media_load)(struct s_session *, char *, struct s_serialized *)

Handler for loading session data.

typedef int(* session_media_open)(struct s_session *)

Handler for opening session storage.

typedef int(* session_media_save)(struct s_session *, char *, struct s_serialized *)

Handler for saving session data.

typedef void(* t_deserializer)(struct s_serialized *, void *var)

Type deserializer function Deserializer's responsibility is to convert s_serialized structure to var (which could be a pointer to any variable type).

Your serializer will be responsible for converting only one specified type.

typedef void(* t_serializer)(struct s_serialized *, void *var)

Type serializer function Serializer's responsibility is to convert var to s_serialized structure.

s_serialized structure is then written to the session storage using handler functions.


Function Documentation

void session_destroy ( t_cgi_context ctx  ) 

Stop session handling and remove storage.

Stops session handling and removes storage. All session variables are reset to their initial values.

Parameters:
ctx pointer to existing CGI context (t_cgi_context *).
See also:
cgi_context_create(FCGX_Request *)

cgi_context_free(t_cgi_context *)

void session_register_var ( t_cgi_context ctx,
char *  name,
void *  var_ptr,
t_serializer  serializer,
t_deserializer  deserializer 
)

Register session variable.

Registers session variable. It is automatically assigned a value, stored in session storage. As well, it is saved, when session is saved.

Parameters:
ctx pointer to existing CGI context (t_cgi_context *).
name variable name.
var_ptr pointer to variable.
serializer type serializer (function).
deserializer type deserializer (function).
See also:
cgi_context_create(FCGX_Request *)

cgi_context_free(t_cgi_context *)

t_session* session_start ( t_cgi_context ctx  ) 

Start session handling.

Starts session handling. Loads variables from the storage.

Parameters:
ctx pointer to existing CGI context (t_cgi_context *).
Returns:
pointer to the session object.
See also:
cgi_context_create(FCGX_Request *)

cgi_context_free(t_cgi_context *)


Generated on Tue Jun 17 17:31:11 2008 for CGI Library by  doxygen 1.5.5