cfitsTK
00CORE.c File Reference

core functions More...

Functions

int clock_gettime (int clk_id, struct mach_timespec *t)
 
Module initialization
int init_00CORE ()
 
int printRED (char *string)
 Print string in red. More...
 
int printWARNING (const char *file, const char *func, int line, char *warnmessage)
 Print warning and continue. More...
 
int printERROR (const char *file, const char *func, int line, char *errmessage)
 Print error (in red) and continue. More...
 
static void CORE_logFunctionCall (const int funclevel, const int loglevel, const int logfuncMODE, const char *FileName, const char *FunctionName, const long line, char *comments)
 
int set_precision (int vp)
 
int CLIinfoPrint ()
 
int CLIWritePid ()
 
struct timespec timespec_diff (struct timespec start, struct timespec end)
 
double timespec_diff_double (struct timespec start, struct timespec end)
 
int file_exist (char *filename)
 

Variables

DATA data
 

Detailed Description

core functions

Functions frequently used by modules

Author
O. Guyon
Date
Aug 2, 2017
Bug:
No known bugs.

Function Documentation

int CLIinfoPrint ( )
int CLIWritePid ( )
int clock_gettime ( int  clk_id,
struct mach_timespec *  t 
)
static void CORE_logFunctionCall ( const int  funclevel,
const int  loglevel,
const int  logfuncMODE,
const char *  FileName,
const char *  FunctionName,
const long  line,
char *  comments 
)
static

Purpose

Log function call (for testing / debugging only).

Function calls are logged if to file .FileName.funccalls.log

Variable AOLOOPCONTROL_logfunc_level keeps track of function depth:
it is incremented when entering a function
decremented when exiting a function

Variable AOLOOPCONTROL_logfunc_level_max sets the max depth of logging

At the beginning of each function, insert this code:

1 #ifdef AOLOOPCONTROL_LOGFUNC
2 AOloopControl_logFunctionCall( 0, __FUNCTION__, __LINE__, "");
3 #endif

and at the end of each function:

1 #ifdef AOLOOPCONTROL_LOGFUNC
2 AOloopControl_logFunctionCall( 1, __FUNCTION__, __LINE__, "");
3 #endif

Arguments

Parameters
[in]funclevelINT Function level (0: top level, always log)
[in]loglevelINT Log level: log all function with level =< loglevel

logfuncMODE INT Log mode, 0:entering function, 1:exiting function

Parameters
[in]FileNamechar* Name of source file, usually FILE so that preprocessor fills this parameter.
[in]FunctionNamechar* Name of function, usually FUNCTION so that preprocessor fills this parameter.
[in]linechar* Line in cource code, usually LINE so that preprocessor fills this parameter.
[in]commentschar* comment string
Returns
void
Note
Carefully set depth value to avoid large output file.
Warning
May slow down code. Only use for debugging. Output file may grow very quickly.
int file_exist ( char *  filename)
int init_00CORE ( )
int printERROR ( const char *  file,
const char *  func,
int  line,
char *  errmessage 
)

Print error (in red) and continue.

Purpose

Print error string

Arguments

Parameters
[in]fileCHAR* file name from which error is issued
[in]funcCHAR* function name from which error is issued
[in]lineint line number from which error is issued
[in]warnmessageCHAR* error message to be printed
int printRED ( char *  string)

Print string in red.

Purpose

Print red string to stdout

Arguments

Parameters
[in]stringCHAR*
int printWARNING ( const char *  file,
const char *  func,
int  line,
char *  warnmessage 
)

Print warning and continue.

Purpose

Print warning string

Arguments

Parameters
[in]fileCHAR* file name from which warning is issued
[in]funcCHAR* function name from which warning is issued
[in]lineint line number from which warning is issued
[in]warnmessageCHAR* warning message to be printed
int set_precision ( int  vp)

Purpose

Set default precision (single or double)

Arguments

Parameters
[in]vpint precision mode
[in]warnmessageCHAR* error message to be printed
  • 0: single precision
  • 1: double precision
struct timespec timespec_diff ( struct timespec  start,
struct timespec  end 
)
double timespec_diff_double ( struct timespec  start,
struct timespec  end 
)

Variable Documentation

DATA data