|
|
|
|
|
00001 /* ///////////////////////////////////////////////////////////////////////// 00002 * File: pantheios/backends/be.N.h 00003 * 00004 * Purpose: Declaration of the Pantheios be.N Stock Back-end API. 00005 * 00006 * Created: 18th October 2006 00007 * Updated: 1st August 2008 00008 * 00009 * Author: Matthew Wilson 00010 * 00011 * Home: http://www.pantheios.org/ 00012 * 00013 * Copyright (c) 2006-2008, Matthew Wilson 00014 * 00015 * Redistribution and use in source and binary forms, with or without 00016 * modification, are permitted provided that the following conditions are 00017 * met: 00018 * 00019 * - Redistributions of source code must retain the above copyright notice, 00020 * this list of conditions and the following disclaimer. 00021 * - Redistributions in binary form must reproduce the above copyright 00022 * notice, this list of conditions and the following disclaimer in the 00023 * documentation and/or other materials provided with the distribution. 00024 * - Neither the name(s) of Matthew Wilson and Synesis Software nor the 00025 * names of any contributors may be used to endorse or promote products 00026 * derived from this software without specific prior written permission. 00027 * 00028 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 00029 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00030 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00031 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00032 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00033 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00034 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00035 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00036 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00037 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00038 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00039 * 00040 * ////////////////////////////////////////////////////////////////////// */ 00041 00042 00048 #ifndef PANTHEIOS_INCL_PANTHEIOS_FRONTENDS_H_BE_N 00049 #define PANTHEIOS_INCL_PANTHEIOS_FRONTENDS_H_BE_N 00050 00051 /* ///////////////////////////////////////////////////////////////////////// 00052 * Version information 00053 */ 00054 00055 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION 00056 # define PANTHEIOS_VER_PANTHEIOS_BACKENDS_H_BE_N_MAJOR 1 00057 # define PANTHEIOS_VER_PANTHEIOS_BACKENDS_H_BE_N_MINOR 5 00058 # define PANTHEIOS_VER_PANTHEIOS_BACKENDS_H_BE_N_REVISION 2 00059 # define PANTHEIOS_VER_PANTHEIOS_BACKENDS_H_BE_N_EDIT 15 00060 #endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */ 00061 00062 /* ///////////////////////////////////////////////////////////////////////// 00063 * Includes 00064 */ 00065 00066 #ifndef PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS 00067 # include <pantheios/pantheios.h> 00068 #endif /* !PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS */ 00069 #ifndef PANTHEIOS_INCL_PANTHEIOS_H_BACKEND 00070 # include <pantheios/backend.h> 00071 #endif /* !PANTHEIOS_INCL_PANTHEIOS_H_BACKEND */ 00072 00073 /* ///////////////////////////////////////////////////////////////////////// 00074 * Documentation 00075 */ 00076 00082 /* ///////////////////////////////////////////////////////////////////////// 00083 * API 00084 */ 00085 00086 /* ///////////////////////////////////////////////////////////////////////// 00087 * Constants 00088 */ 00089 00101 #define PANTHEIOS_BE_N_F_IGNORE_INIT_FAILURE (0x00100000) 00102 00110 #define PANTHEIOS_BE_N_F_ID_MUST_MATCH_CUSTOM28 (0x00200000) 00111 00119 #define PANTHEIOS_BE_N_F_IGNORE_NONMATCHED_CUSTOM28_ID (0x00400000) 00120 00127 #define PANTHEIOS_BE_N_F_INIT_ONLY_IF_PREVIOUS_FAILED (0x00800000) 00128 00129 /* ///////////////////////////////////////////////////////////////////////// 00130 * Typedefs 00131 */ 00132 00139 struct pan_be_N_t 00140 { 00145 int flags; 00150 int backEndId; 00152 int (PANTHEIOS_CALLCONV *pfnInit)( char const* 00153 , int 00154 , void const* 00155 , void* 00156 , void**); 00158 void (PANTHEIOS_CALLCONV *pfnUninit)( void*); 00160 int (PANTHEIOS_CALLCONV *pfnLogEntry)( void* 00161 , void* 00162 , int 00163 , char const* 00164 , size_t); 00165 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION 00166 /* INTERNAL USE ONLY */ 00167 void* token; 00168 #endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */ 00169 }; 00170 #ifndef __cplusplus 00171 typedef struct pan_be_N_t pan_be_N_t; 00172 #endif /* __cplusplus */ 00173 00183 #define PANTHEIOS_BE_N_ENTRY(flags, backEndId, be_prefix) PANTHEIOS_BE_N_STDFORM_ENTRY(backEndId, be_prefix, flags) 00184 00218 #define PANTHEIOS_BE_N_STDFORM_ENTRY(backEndId, be_prefix, flags) \ 00219 { \ 00220 flags \ 00221 , backEndId \ 00222 , (int(PANTHEIOS_CALLCONV *)(char const*,int,void const*,void*,void**))be_prefix ## _init \ 00223 , be_prefix ## _uninit \ 00224 , be_prefix ## _logEntry \ 00225 , NULL \ 00226 } 00227 00236 #define PANTHEIOS_BE_N_TERMINATOR_ENTRY { 0, 0, NULL, NULL, NULL, NULL } 00237 00238 /* ///////////////////////////////////////////////////////////////////////// 00239 * External Declarations 00240 */ 00241 00250 PANTHEIOS_EXTERN_C pan_be_N_t PAN_BE_N_BACKEND_LIST[]; 00251 00252 /* ////////////////////////////////////////////////////////////////////// */ 00253 00254 #endif /* PANTHEIOS_INCL_PANTHEIOS_FRONTENDS_H_BE_N */ 00255 00256 /* ////////////////////////////////////////////////////////////////////// */
|
|
|
| pantheios Library documentation © Matthew Wilson, 2006-2008 |
|

