00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <stdio.h>
00024 #include <sys/types.h>
00025 #include <sys/stat.h>
00026 #include <unistd.h>
00027 #include <stdlib.h>
00028 #include <fcntl.h>
00029 #include <time.h>
00030 #include <errno.h>
00031 #include <math.h>
00032
00033 #include "../type.h"
00034 #include "../graph.h"
00035
00036 #include "opt.h"
00037
00038 int main( int argc , char ** argv )
00039 {
00040 dglGraph_s graph;
00041 int nret , fd;
00042
00043
00044
00045 char * pszGraph;
00046 char * pszGraphOut;
00047
00048 GNO_BEGIN
00049 GNO_OPTION( "g", "graph", NULL , & pszGraph , "Input Graph file" )
00050 GNO_OPTION( "o", "graphout", NULL , & pszGraphOut , "Output Graph file" )
00051 GNO_END
00052
00053
00054 if ( GNO_PARSE( argc , argv ) < 0 )
00055 {
00056 return 1;
00057 }
00058
00059
00060
00061
00062 printf( "Graph read:\n" );
00063 if ( (fd = open( pszGraph , O_RDONLY )) < 0 )
00064 {
00065 perror( "open" ); return 1;
00066 }
00067 nret = dglRead( & graph , fd );
00068 if ( nret < 0 ) {
00069 fprintf( stderr , "dglRead error: %s\n", dglStrerror( & graph ) );
00070 return 1;
00071 }
00072 close( fd );
00073 printf( "Done.\n" );
00074
00075
00076 printf( "Graph unflatten:\n" );
00077 nret = dglUnflatten( & graph );
00078 if ( nret < 0 ) {
00079 fprintf( stderr , "dglUnflatten error: %s\n", dglStrerror( & graph ) );
00080 return 1;
00081 }
00082 printf( "Done.\n" );
00083
00084
00085 printf( "Graph flatten:\n" );
00086 nret = dglFlatten( & graph );
00087 printf( "Done.\n" );
00088
00089
00090 if ( pszGraphOut ) {
00091 printf( "Graph write:\n" );
00092 if ( (fd = open( pszGraphOut , O_WRONLY | O_CREAT | O_TRUNC, 0666 )) < 0 )
00093 {
00094 perror( "open" ); return 1;
00095 }
00096 dglWrite( & graph, fd );
00097 if ( nret < 0 )
00098 {
00099 fprintf( stderr , "dglWrite error: %s\n" , dglStrerror( & graph ) );
00100 return 1;
00101 }
00102 close( fd );
00103 printf( "Done.\n" );
00104 }
00105
00106 dglRelease( & graph );
00107 return 0;
00108 }