heraia.h

Go to the documentation of this file.
00001 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
00002 /*
00003   heraia.h
00004   heraia - an hexadecimal file editor and analyser based on ghex
00005 
00006   (C) Copyright 2005 - 2010 Olivier Delhomme
00007   e-mail : heraia@delhomme.org
00008   URL    : http://heraia.tuxfamily.org
00009 
00010   This program is free software; you can redistribute it and/or modify
00011   it under the terms of the GNU General Public License as published by
00012   the Free Software Foundation; either version 2, or  (at your option)
00013   any later version.
00014 
00015   This program is distributed in the hope that it will be useful,
00016   but WITHOUT ANY WARRANTY;  without even the implied warranty of
00017   MERCHANTABILITY  or  FITNESS FOR A PARTICULAR PURPOSE.  See the
00018   GNU General Public License for more details.
00019 
00020   You should have received a copy of the GNU General Public License
00021   along with this program; if not, write to the Free Software
00022   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
00023 /**
00024  * @file heraia.h
00025  * heraia's header file.
00026  */
00027 #ifndef _HERAIA_H_
00028 #define _HERAIA_H_
00029 
00030 /**
00031  * @def HERAIA_DATE
00032  * defines heraia's creation date
00033  *
00034  * @def HERAIA_AUTHORS
00035  * defines heraia's main authors
00036  *
00037  * @def HERAIA_LICENSE
00038  * defines heraia's license (at least GPL v2)
00039  *
00040  * @def HERAIA_VERSION
00041  * defines heraia's current version and release date of this version
00042  * (00.00.20XX means a development version)
00043  */
00044 #define HERAIA_AUTHORS "Olivier Delhomme, Sébastien TRICAUD, Grégory AUDET"
00045 #define HERAIA_DATE "20 02 2005"
00046 #define HERAIA_LICENSE "GPL v2 or later"
00047 #define HERAIA_VERSION "0.1.2 (11.05.2010)"
00048 
00049 /**
00050  * @def NO_TESTS
00051  * defines that no tests should be done (this is the default behaviour)
00052  *
00053  * @def COVERAGE_TESTS
00054  * In order to do some coverage tests.
00055  */
00056 #define NO_TESTS 0
00057 #define COVERAGE_TESTS 1
00058 #define LOADING_TESTS 2
00059 
00060 /**
00061  * @struct Options
00062  * Structure Options gives a way to store program options passed from the
00063  * command line.
00064  * - char *filename is the filename to open (should be a list of filenames)
00065  * - char usage is there to know which kind of usage message we want to display
00066  */
00067 typedef struct
00068 {
00069     GList *filenames;  /**< the filename to open                        */
00070     gboolean usage;    /**< to know if we displayed the usage message   */
00071     gint8 tests;       /**< to know if the users wants to do self tests */
00072 } Options;
00073 
00074 static struct option const long_options[] =
00075 {
00076     {"version", no_argument, NULL, 'v'},     /**< displays version informations */
00077     {"help", no_argument, NULL, 'h'},        /**< displays help (usage)         */
00078     {"tests", optional_argument, NULL, 't'}, /**< self tests                    */
00079     {NULL, 0, NULL, 0}
00080 };
00081 
00082 extern heraia_struct_t *get_main_struct(void);
00083 
00084 #endif /* _HERAIA_H_ */
Generated on Tue May 11 18:46:08 2010 for Heraia by  doxygen 1.6.3