#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. | |
Sessions and session data handling functions.
| #define SESSION_REGISTER | ( | ctx, | |||
| var, | |||||
| serializer, | |||||
| deserializer | ) | session_register_var(ctx, #var, &var, serializer, deserializer) |
Shortcut for session_register_var function.
| ctx | pointer to existing CGI context (t_cgi_context *). | |
| var | variable. | |
| serializer | type serializer (function). | |
| deserializer | type deserializer (function). |
| 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.
| 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.
| ctx | pointer to existing CGI context (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.
| 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). |
| t_session* session_start | ( | t_cgi_context * | ctx | ) |
Start session handling.
Starts session handling. Loads variables from the storage.
| ctx | pointer to existing CGI context (t_cgi_context *). |
1.5.5