comparison toolboxes/graph_visualisation/include/graphviz/gvplugin.h @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:e9a9cd732c1e
1 /* $Id: gvplugin.h,v 1.31 2009/07/14 13:18:07 ellson Exp $ $Revision: 1.31 $ */
2 /* vim:set shiftwidth=4 ts=8: */
3
4 /**********************************************************
5 * This software is part of the graphviz package *
6 * http://www.graphviz.org/ *
7 * *
8 * Copyright (c) 1994-2004 AT&T Corp. *
9 * and is licensed under the *
10 * Common Public License, Version 1.0 *
11 * by AT&T Corp. *
12 * *
13 * Information and Software Systems Research *
14 * AT&T Research, Florham Park NJ *
15 **********************************************************/
16
17 /* Header used by plugins */
18
19 #ifndef GVPLUGIN_H
20 #define GVPLUGIN_H
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 #include "gvcext.h"
27
28 /*
29 * Terminology:
30 *
31 * package - e.g. libgvplugin_cairo.so
32 * api - e.g. render
33 * type - e.g. "png", "ps"
34 */
35
36 typedef struct {
37 int id; /* an id that is only unique within a package
38 of plugins of the same api.
39 A renderer-type such as "png" in the cairo package
40 has an id that is different from the "ps" type
41 in the same package */
42 const char *type; /* a string name, such as "png" or "ps" that
43 distinguishes different types withing the same
44 (renderer in this case) */
45 int quality; /* an arbitrary integer used for ordering plugins of
46 the same type from different packages */
47 void *engine; /* pointer to the jump table for the plugin */
48 void *features; /* pointer to the feature description
49 void* because type varies by api */
50 } gvplugin_installed_t;
51
52 typedef struct {
53 api_t api;
54 gvplugin_installed_t *types;
55 } gvplugin_api_t;
56
57 typedef struct {
58 char *packagename; /* used when this plugin is builtin and has
59 no pathname */
60 gvplugin_api_t *apis;
61 } gvplugin_library_t;
62
63 #ifdef __cplusplus
64 }
65 #endif
66 #endif /* GVPLUGIN_H */