00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(SED_EPOCH_H)
00022 # define SED_EPOCH_H
00023
00024 #include "sed_cube.h"
00025 #include "sed_process.h"
00026
00027 new_handle( Sed_epoch );
00028 new_handle( Sed_epoch_queue );
00029
00030 typedef enum
00031 {
00032 SED_EPOCH_ERROR_OPEN_FILE ,
00033 SED_EPOCH_ERROR_MISSING_LABEL ,
00034 SED_EPOCH_ERROR_BAD_TIME_STEP ,
00035 SED_EPOCH_ERROR_NEGATIVE_TIME_STEP ,
00036 SED_EPOCH_ERROR_NEGATIVE_DURATION
00037 }
00038 Sed_epoch_error;
00039
00040 #define SED_EPOCH_ERROR sed_epoch_error_quark()
00041
00042 Sed_epoch sed_epoch_new ( void );
00043 Sed_epoch sed_epoch_copy ( Sed_epoch d , const Sed_epoch s );
00044 Sed_epoch sed_epoch_dup ( const Sed_epoch s );
00045 Sed_epoch_queue sed_epoch_new_from_table ( Eh_symbol_table t , GError** error );
00046 Sed_epoch sed_epoch_destroy ( Sed_epoch e );
00047
00048 Sed_epoch sed_epoch_set_name ( Sed_epoch e , gchar* name );
00049 Sed_epoch sed_epoch_set_number ( Sed_epoch e , gssize name );
00050 Sed_epoch sed_epoch_set_duration ( Sed_epoch e , double duration );
00051 Sed_epoch sed_epoch_set_time_step ( Sed_epoch e , double time_step );
00052 Sed_epoch sed_epoch_set_filename ( Sed_epoch e , const gchar* filename );
00053
00054 Sed_epoch sed_epoch_sscan_filename ( Sed_epoch e , const gchar* file_s , GError** error );
00055 Sed_epoch sed_epoch_sscan_number ( Sed_epoch e , const gchar* number_s , GError** error );
00056 Sed_epoch sed_epoch_sscan_time ( Sed_epoch e , const gchar* time_s , GError** error );
00057 Sed_epoch sed_epoch_sscan_duration ( Sed_epoch e , const gchar* duration_s , GError** error );
00058 Sed_epoch sed_epoch_sscan_time_step( Sed_epoch e , const gchar* dt_s , GError** error );
00059 Sed_epoch sed_epoch_set_active_time( Sed_epoch e , double* time );
00060
00061 const char* sed_epoch_name ( Sed_epoch e );
00062 gssize sed_epoch_number ( Sed_epoch e );
00063 double sed_epoch_start ( Sed_epoch e );
00064 double sed_epoch_end ( Sed_epoch e );
00065 double sed_epoch_duration ( Sed_epoch e );
00066 double sed_epoch_time_step ( Sed_epoch e );
00067 const char* sed_epoch_filename ( Sed_epoch e );
00068 Sed_process_queue sed_epoch_proc_queue ( Sed_epoch e );
00069
00070 Sed_epoch_queue sed_epoch_queue_new_sscan_old( const gchar* number_s ,
00071 const gchar* time_step_s ,
00072 const gchar* file_s ,
00073 const gchar* duration_s ,
00074 GError** error );
00075 Sed_epoch_queue sed_epoch_queue_new_sscan ( const gchar* time_s ,
00076 const gchar* time_step_s ,
00077 const gchar* file_s ,
00078 GError** error );
00079
00080 Sed_epoch_queue sed_epoch_queue_new ( const gchar* file , GError** error );
00081 Sed_epoch_queue sed_epoch_queue_new_full( const gchar* file ,
00082 Sed_process_init_t proc_defs[] ,
00083 Sed_process_family proc_family[] ,
00084 Sed_process_check proc_checks[] ,
00085 GError** error );
00086
00087 Sed_epoch_queue sed_epoch_queue_dup ( const Sed_epoch_queue s );
00088 Sed_epoch_queue sed_epoch_queue_concat ( Sed_epoch_queue q_1 , Sed_epoch_queue q_2 );
00089 Sed_epoch_queue sed_epoch_queue_destroy( Sed_epoch_queue q );
00090
00091 gssize sed_epoch_queue_length ( Sed_epoch_queue q );
00092 Sed_epoch_queue sed_epoch_queue_order ( Sed_epoch_queue q );
00093 Sed_epoch_queue sed_epoch_queue_push_tail( Sed_epoch_queue q , Sed_epoch e );
00094 Sed_epoch sed_epoch_queue_pop ( Sed_epoch_queue q );
00095 Sed_epoch sed_epoch_queue_nth ( Sed_epoch_queue q , gssize n );
00096
00097 Sed_epoch sed_epoch_queue_find ( Sed_epoch_queue q , double t );
00098
00099 gssize sed_epoch_fprint ( FILE* fp , Sed_epoch e );
00100 gssize sed_epoch_queue_fprint( FILE* fp , Sed_epoch_queue q );
00101
00102 Sed_epoch sed_epoch_scan_proc_queue( Sed_epoch e ,
00103 Sed_process_init_t p_list[] ,
00104 Sed_process_family p_family[] ,
00105 Sed_process_check p_check[] ,
00106 GError** error );
00107 Sed_epoch_queue sed_epoch_queue_set_processes( Sed_epoch_queue q ,
00108 Sed_process_init_t p_list[] ,
00109 Sed_process_family p_family[] ,
00110 Sed_process_check p_check[] ,
00111 GError** error );
00112 gboolean sed_epoch_queue_test_run( const Sed_epoch_queue q ,
00113 Sed_process_init_t p_list[] ,
00114 Sed_process_family p_family[] ,
00115 Sed_process_check p_check[] ,
00116 GError** error );
00117 Sed_epoch_queue sed_epoch_queue_run ( Sed_epoch_queue q ,
00118 Sed_cube p );
00119
00120 Sed_epoch_queue sed_epoch_queue_tic ( Sed_epoch_queue epoch_q , Sed_cube p );
00121
00122 #endif