httpsession.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile: httpsession.h,v $
00003                              -------------------
00004     cvs         : $Id: httpsession.h,v 1.2 2005/10/25 15:37:24 aquamaniac Exp $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 #ifndef GWEN_HTTP_SESSION_H
00014 #define GWEN_HTTP_SESSION_H
00015 
00016 
00017 #define GWEN_HTTP_SESSION_FLAGS_ALLOW_RECONNECT     0x00000001
00018 #define GWEN_HTTP_SESSION_FLAGS_KEEP_ALIVE          0x00000002
00019 #define GWEN_HTTP_SESSION_FLAGS_ALLOW_REDIRECT      0x00000004
00020 #define GWEN_HTTP_SESSION_FLAGS_USE_HTTPS           0x00000008
00021 #define GWEN_HTTP_SESSION_FLAGS_CLEAR_COOKIES_RECON 0x00000010
00022 #define GWEN_HTTP_SESSION_FLAGS_CLEAR_COOKIES_REDIR 0x00000020
00023 
00024 
00025 #include <gwenhywfar/httpcookie.h>
00026 #include <gwenhywfar/misc.h>
00027 #include <gwenhywfar/inherit.h>
00028 #include <gwenhywfar/netconnectionhttp.h>
00029 #include <gwenhywfar/httpurl.h>
00030 
00031 
00032 typedef struct GWEN_HTTP_SESSION GWEN_HTTP_SESSION;
00033 
00034 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_HTTP_SESSION, GWENHYWFAR_API)
00035 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_HTTP_SESSION, GWEN_HttpSession,
00036                             GWENHYWFAR_API)
00037 
00038 
00039 typedef int (*GWEN_HTTPSESSION_ASKFOLLOW_FN)(GWEN_HTTP_SESSION *sess,
00040                                              const char *oldLocation,
00041                                              const char *newLocation);
00042 
00043 typedef int (*GWEN_HTTPSESSION_GETAUTH_FN)(GWEN_HTTP_SESSION *sess,
00044                                            const GWEN_HTTP_URL *url,
00045                                            const char *authScheme,
00046                                            const char *realm,
00047                                            char *buffer,
00048                                            unsigned int size,
00049                                            int forceAsk);
00050 
00051 
00052 
00053 GWEN_HTTP_SESSION *GWEN_HttpSession_new(const char *addr,
00054                                         int port,
00055                                         GWEN_TYPE_UINT32 flags,
00056                                         int pmajor,
00057                                         int pminor);
00058 
00059 void GWEN_HttpSession_free(GWEN_HTTP_SESSION *sess);
00060 
00061 
00062 void GWEN_HttpSession_SetAskFollowFn(GWEN_HTTP_SESSION *sess,
00063                                      GWEN_HTTPSESSION_ASKFOLLOW_FN fn);
00064 
00065 void GWEN_HttpSession_SetGetAuthFn(GWEN_HTTP_SESSION *sess,
00066                                    GWEN_HTTPSESSION_GETAUTH_FN fn);
00067 
00068 int GWEN_HttpSession_Request(GWEN_HTTP_SESSION *sess,
00069                              const char *command,
00070                              const char *arg,
00071                              const char *body,
00072                              unsigned int size,
00073                              GWEN_DB_NODE *dbResultHeader,
00074                              GWEN_BUFFER *result);
00075 
00076 void GWEN_HttpSession_Close(GWEN_HTTP_SESSION *sess);
00077 
00078 const char *GWEN_HttpSession_GetLastStatusMsg(const GWEN_HTTP_SESSION *sess);
00079 int GWEN_HttpSession_GetLastStatusCode(const GWEN_HTTP_SESSION *sess);
00080 
00081 
00082 GWEN_TYPE_UINT32 GWEN_HttpSession_GetFlags(const GWEN_HTTP_SESSION *sess);
00083 void GWEN_HttpSession_SetFlags(GWEN_HTTP_SESSION *sess,
00084                                GWEN_TYPE_UINT32 flags);
00085 void GWEN_HttpSession_AddFlags(GWEN_HTTP_SESSION *sess,
00086                                GWEN_TYPE_UINT32 flags);
00087 void GWEN_HttpSession_SubFlags(GWEN_HTTP_SESSION *sess,
00088                                GWEN_TYPE_UINT32 flags);
00089 
00090 GWEN_DB_NODE *GWEN_HttpSession_GetHeaders(const GWEN_HTTP_SESSION *sess);
00091 void GWEN_HttpSession_SetHeaders(GWEN_HTTP_SESSION *sess,
00092                                  GWEN_DB_NODE *db);
00093 
00094 #endif /*GWEN_HTTP_SESSION_H */
00095 
00096 

Generated on Wed Jan 11 16:49:07 2006 for gwenhywfar by  doxygen 1.4.6