diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/graph_visualisation/include/graphviz/gvplugin.h	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,66 @@
+/* $Id: gvplugin.h,v 1.31 2009/07/14 13:18:07 ellson Exp $ $Revision: 1.31 $ */
+/* 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             *
+**********************************************************/
+
+/* Header used by plugins */
+
+#ifndef GVPLUGIN_H
+#define GVPLUGIN_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "gvcext.h"
+
+/* 
+ * Terminology:
+ *
+ *    package         - e.g. libgvplugin_cairo.so
+ *       api	      - e.g. render
+ *          type      - e.g. "png", "ps"
+ */
+
+    typedef struct {
+	int id;         /* an id that is only unique within a package 
+			of plugins of the same api.
+			A renderer-type such as "png" in the cairo package
+			has an id that is different from the "ps" type
+			in the same package */
+	const char *type;	/* a string name, such as "png" or "ps" that
+			distinguishes different types withing the same
+			 (renderer in this case) */
+	int quality;    /* an arbitrary integer used for ordering plugins of
+			the same type from different packages */
+	void *engine;   /* pointer to the jump table for the plugin */
+	void *features; /* pointer to the feature description 
+				void* because type varies by api */
+    } gvplugin_installed_t;
+
+    typedef struct {
+	api_t api;
+	gvplugin_installed_t *types;
+    } gvplugin_api_t;
+
+    typedef struct {
+	char *packagename;    /* used when this plugin is builtin and has
+					no pathname */
+	gvplugin_api_t *apis;
+    } gvplugin_library_t;
+
+#ifdef __cplusplus
+}
+#endif
+#endif				/* GVPLUGIN_H */