Graphviz  2.41.20171026.1811
gvplugin.h
Go to the documentation of this file.
1 /* $Id$ $Revision$ */
2 /* vim:set shiftwidth=4 ts=8: */
3 
4 /*************************************************************************
5  * Copyright (c) 2011 AT&T Intellectual Property
6  * All rights reserved. This program and the accompanying materials
7  * are made available under the terms of the Eclipse Public License v1.0
8  * which accompanies this distribution, and is available at
9  * http://www.eclipse.org/legal/epl-v10.html
10  *
11  * Contributors: See CVS logs. Details at http://www.graphviz.org/
12  *************************************************************************/
13 
14 /* Header used by plugins */
15 
16 #ifndef GVPLUGIN_H
17 #define GVPLUGIN_H
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #include "gvcext.h"
24 
25 /*
26  * Terminology:
27  *
28  * package - e.g. libgvplugin_cairo.so
29  * api - e.g. render
30  * type - e.g. "png", "ps"
31  */
32 
33  typedef struct {
34  int id; /* an id that is only unique within a package
35  of plugins of the same api.
36  A renderer-type such as "png" in the cairo package
37  has an id that is different from the "ps" type
38  in the same package */
39  const char *type; /* a string name, such as "png" or "ps" that
40  distinguishes different types within the same
41  (renderer in this case) */
42  int quality; /* an arbitrary integer used for ordering plugins of
43  the same type from different packages */
44  void *engine; /* pointer to the jump table for the plugin */
45  void *features; /* pointer to the feature description
46  void* because type varies by api */
48 
49  typedef struct {
53 
54  typedef struct {
55  char *packagename; /* used when this plugin is builtin and has
56  no pathname */
59 
60 #ifdef __cplusplus
61 }
62 #endif
63 #endif /* GVPLUGIN_H */
char * packagename
Definition: gvplugin.h:55
api_t
Definition: gvcext.h:34
const char * type
Definition: gvplugin.h:39
gvplugin_api_t * apis
Definition: gvplugin.h:57
gvplugin_installed_t * types
Definition: gvplugin.h:51