Mercurial > hg > camir-aes2014
diff toolboxes/graph_visualisation/include/graphviz/gvcext.h @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/graph_visualisation/include/graphviz/gvcext.h Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,94 @@ + +/* vim:set shiftwidth=4 ts=8: */ + +/********************************************************** +* This software is part of the graphviz package * +* http://www.graphviz.org/ * +* * +* Copyright (c) 1994-2004 AT&T Corp. * +* and is licensed under the * +* Common Public License, Version 1.0 * +* by AT&T Corp. * +* * +* Information and Software Systems Research * +* AT&T Research, Florham Park NJ * +**********************************************************/ + +/* Common header used by both clients and plugins */ + +#ifndef GVCEXT_H +#define GVCEXT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Define an apis array of name strings using an enumerated api_t as index. + * The enumerated type is defined here. The apis array is + * inititialized in gvplugin.c by redefining ELEM and reinvoking APIS. + */ +#define APIS ELEM(render) ELEM(layout) ELEM(textlayout) ELEM(device) ELEM(loadimage) + +/* + * Define api_t using names based on the plugin names with API_ prefixed. + */ +#define ELEM(x) API_##x, + typedef enum { APIS _DUMMY_ELEM_=0 } api_t; /* API_render, API_layout, ... */ + /* Stupid but true: The sole purpose of "_DUMMY_ELEM_=0" + * is to avoid a "," after the last element of the enum + * because some compilers when using "-pedantic" + * generate an error for about the dangling "," + * but only if this header is used from a .cpp file! + * Setting it to 0 makes sure that the enumeration + * does not define an extra value. (It does however + * define _DUMMY_ELEM_ as an enumeration symbol, + * but its value duplicates that of the first + * symbol in the enumeration - in this case "render".) + */ + + /* One could wonder why trailing "," in: + * int nums[]={1,2,3,}; + * is OK, but in: + * typedef enum {a,b,c,} abc_t; + * is not!!! + */ +#undef ELEM + + typedef struct GVJ_s GVJ_t; + typedef struct GVC_s GVC_t; + + typedef struct { + const char *name; + void* address; + } lt_symlist_t; + + typedef struct gvplugin_available_s gvplugin_available_t; + +/*visual studio*/ +#ifdef WIN32_DLL +#ifndef GVC_EXPORTS +__declspec(dllimport) lt_symlist_t lt_preloaded_symbols[]; +#else +__declspec(dllexport) lt_symlist_t lt_preloaded_symbols[]; +#endif +#endif +/*end visual studio*/ + + +#ifndef WIN32_DLL +#if defined(GVDLL) + __declspec(dllexport) lt_symlist_t lt_preloaded_symbols[]; +#else + extern lt_symlist_t lt_preloaded_symbols[]; +#endif +#endif + + +#ifdef __cplusplus +} +#endif + + + +#endif