From: <and...@us...> - 2009-02-21 17:57:10
|
Revision: 9577 http://plplot.svn.sourceforge.net/plplot/?rev=9577&view=rev Author: andrewross Date: 2009-02-21 17:57:03 +0000 (Sat, 21 Feb 2009) Log Message: ----------- Move structure definitions into qsastimeP.h. These are not required for the functions in qsastime. Hiding the details is good practice. These QSASConfig type can be considered as a black box handle, and hence users should not meddle with the contents. Modified Paths: -------------- trunk/lib/qsastime/qsastime.c trunk/lib/qsastime/qsastime.h trunk/lib/qsastime/qsastimeP.h trunk/lib/qsastime/qsastime_extra.h Modified: trunk/lib/qsastime/qsastime.c =================================================================== --- trunk/lib/qsastime/qsastime.c 2009-02-21 17:54:08 UTC (rev 9576) +++ trunk/lib/qsastime/qsastime.c 2009-02-21 17:57:03 UTC (rev 9577) @@ -39,7 +39,8 @@ */ #include <ctype.h> #include <math.h> -#include "qsastime.h" +#include "qsastimeP.h" + /* MJD for 0000-01-01 (correctly Jan 01, BCE 1) */ /* Julian proleptic calendar value. */ #define MJD_0000J -678943 Modified: trunk/lib/qsastime/qsastime.h =================================================================== --- trunk/lib/qsastime/qsastime.h 2009-02-21 17:54:08 UTC (rev 9576) +++ trunk/lib/qsastime/qsastime.h 2009-02-21 17:57:03 UTC (rev 9577) @@ -46,58 +46,9 @@ /* include header file for dll definitions */ #include "qsastimedll.h" +struct QSASConfigStruct; +typedef struct QSASConfigStruct QSASConfig; -typedef struct MJDtimeStruct -{ - /* - MJD starts at 0h, so truncating MJD always gives the same day whatever the time (unlike JD). - The MJD base day is arbitrary, i.e. seconds can be greater than one day or even negative. - */ - - int base_day; /* integer part of MJD used as default */ - double time_sec; /* seconds from start of base_day */ - -}MJDtime; - -typedef struct QSASConfigStruct -{ - - /* Values used to define the transformation between broken down time - and continuous time for the public API of libqsastime, - continuous_time_qsas, broken_down_time_qsas, and strfqsas.*/ - - /* scale multiplies the continuous time variable to convert the units to - days. */ - double scale; - - /* offset1 and offset2 (in days) specifies the amount to add to the - scaled continuous time to derive the MJD time value that is used - internally by libqsastime. Normally epoch1 is an integral - value (which can be exactly stored in a double for a very wide - range of integers) and offset2 is normally a non-integral value - whose absolute value is less than 1. This arrangement allows the - continuous time variable in the API to be stored as a single double - without compromising numerical precision if epoch1 and epoch2 - are chosen wisely. */ - double offset1, offset2; - - /* The various bits of ccontrol are used as independent switches to - control optional additional corrections which define the - transformation between continuous time and broken-down time. - - If bit 0 (the lowest order bit of ccontrol) is 1 the Julian - proleptic calendar is used for broken-down time. Otherwise the - Gregorian proleptic calendar is used for broken-down time. - - If bit 1 is 1, an additional correction for the difference - between atomic-clock based times and UTC is applied to the broken-down - times. - - We reserve other bits of ccontrol for future use. */ - int ccontrol; - -}QSASConfig; - /* externally accessible functions */ QSASTIMEDLLIMPEXP void configqsas(double scale, double offset1, double offset2, int ccontrol, int ifbtime_offset, int year, int month, int day, int hour, int min, double sec, QSASConfig **qsasconfig); Modified: trunk/lib/qsastime/qsastimeP.h =================================================================== --- trunk/lib/qsastime/qsastimeP.h 2009-02-21 17:54:08 UTC (rev 9576) +++ trunk/lib/qsastime/qsastimeP.h 2009-02-21 17:57:03 UTC (rev 9577) @@ -1,10 +1,65 @@ #ifndef _QSASTIMEP_H_ #define _QSASTIMEP_H_ -/* Declaration of private functions within libqsastime that are needed + +/* Declaration of private structures within libqsastime which the user does + not need to acccess. + Also definition of functions within libqsastime that are needed for testing of libqsastime, but which are not normally needed for anything else */ #include "qsastime.h" + +typedef struct MJDtimeStruct +{ + /* + MJD starts at 0h, so truncating MJD always gives the same day whatever the time (unlike JD). + The MJD base day is arbitrary, i.e. seconds can be greater than one day or even negative. + */ + + int base_day; /* integer part of MJD used as default */ + double time_sec; /* seconds from start of base_day */ + +}MJDtime; + +struct QSASConfigStruct +{ + + /* Values used to define the transformation between broken down time + and continuous time for the public API of libqsastime, + continuous_time_qsas, broken_down_time_qsas, and strfqsas.*/ + + /* scale multiplies the continuous time variable to convert the units to + days. */ + double scale; + + /* offset1 and offset2 (in days) specifies the amount to add to the + scaled continuous time to derive the MJD time value that is used + internally by libqsastime. Normally epoch1 is an integral + value (which can be exactly stored in a double for a very wide + range of integers) and offset2 is normally a non-integral value + whose absolute value is less than 1. This arrangement allows the + continuous time variable in the API to be stored as a single double + without compromising numerical precision if epoch1 and epoch2 + are chosen wisely. */ + double offset1, offset2; + + /* The various bits of ccontrol are used as independent switches to + control optional additional corrections which define the + transformation between continuous time and broken-down time. + + If bit 0 (the lowest order bit of ccontrol) is 1 the Julian + proleptic calendar is used for broken-down time. Otherwise the + Gregorian proleptic calendar is used for broken-down time. + + If bit 1 is 1, an additional correction for the difference + between atomic-clock based times and UTC is applied to the broken-down + times. + + We reserve other bits of ccontrol for future use. */ + int ccontrol; + +}; + int setFromUT(int year, int month, int day, int hour, int min, double sec, MJDtime *MJD, int forceJulian); void breakDownMJD(int *year, int *month, int *day, int *hour, int *min, double *sec, const MJDtime *MJD, int forceJulian); size_t strfMJD(char * buf, size_t len, const char *format, const MJDtime *MJD, int forceJulian); Modified: trunk/lib/qsastime/qsastime_extra.h =================================================================== --- trunk/lib/qsastime/qsastime_extra.h 2009-02-21 17:54:08 UTC (rev 9576) +++ trunk/lib/qsastime/qsastime_extra.h 2009-02-21 17:57:03 UTC (rev 9577) @@ -44,7 +44,7 @@ #include <stdlib.h> #include <string.h> /* include header file for dll definitions */ -#include "qsastime.h" +#include "qsastimeP.h" QSASTIMEDLLIMPEXP void setFromDOY(int year, int doy, int hour, int min, double sec, MJDtime *MJD, int forceJulian); QSASTIMEDLLIMPEXP void setFromBCE(int yearBCE, int month, int day, int hour, int min, double sec, MJDtime *MJD, int forceJulian); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |