Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

ingraphs.h

Go to the documentation of this file.
00001 /* $Id: ingraphs.h,v 1.1 2005/04/09 03:38:19 roxo Exp $ $Revision: 1.1 $ */
00002 /* vim:set shiftwidth=4 ts=8: */
00003 
00004 /**********************************************************
00005 *      This software is part of the graphviz package      *
00006 *                http://www.graphviz.org/                 *
00007 *                                                         *
00008 *            Copyright (c) 1994-2004 AT&T Corp.           *
00009 *                and is licensed under the                *
00010 *            Common Public License, Version 1.0           *
00011 *                      by AT&T Corp.                      *
00012 *                                                         *
00013 *        Information and Software Systems Research        *
00014 *              AT&T Research, Florham Park NJ             *
00015 **********************************************************/
00016 
00017 #ifndef INGRAPHS_H
00018 #define INGRAPHS_H
00019 
00020 /* The ingraphs library works with both libagraph and with 
00021  * libgraph, with all user-supplied data. For this to work,
00022  * the include file relies upon its context to supply a
00023  * definition of Agraph_t.
00024  */
00025 
00026 #include <stdio.h>
00027 
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031 
00032     typedef Agraph_t *(*opengfn) (FILE *);
00033 
00034     typedef struct {
00035         void *(*openf) (char *);
00036         Agraph_t *(*readf) (void *);
00037         int (*closef) (void *);
00038         void *dflt;
00039     } ingdisc;
00040 
00041     typedef struct {
00042         char **Files;
00043         int ctr;
00044         void *fp;
00045         ingdisc *fns;
00046         char heap;
00047     } ingraph_state;
00048 
00049     extern ingraph_state *newIngraph(ingraph_state *, char **, opengfn);
00050     extern ingraph_state *newIng(ingraph_state *, char **, ingdisc *);
00051     extern void closeIngraph(ingraph_state * sp);
00052     extern Agraph_t *nextGraph(ingraph_state *);
00053     extern char *fileName(ingraph_state *);
00054 
00055 #ifdef __cplusplus
00056 }
00057 #endif
00058 #endif
Untitled Document Pesquisa Psi SourceForge.net Logo