#include "Promote.h" #include "pro_defs.h" #include "libPromote.h" ///////////////////////////////////////////////////////////////////////////// // // public routines // ///////////////////////////////////////////////////////////////////////////// // data key, year, beginning day, beginning hour, beginning min, beginning sec, // ending day, ending hour, ending min, ending sec // sTrue for XStatus on, and sFalse for XStatus off void *pro_InitPromote (SDDAS_INT byear, SDDAS_INT bday, SDDAS_LONG bmsec, SDDAS_INT eyear, SDDAS_INT eday, SDDAS_LONG emsec, SDDAS_BOOL xstatus) { Promote *P = new Promote ("UNKNOWN", sFalse); P->SetBTime (byear, bday, bmsec); P->SetETime (eyear, eday, emsec); P->SetXStatus (xstatus == sTrue ? ON : OFF); // return the typecasted P back as a void * if we have stuff to promote return ((void *) P); } void *pro_InitPromoteNamed (SDDAS_INT byear, SDDAS_INT bday, SDDAS_LONG bmsec, SDDAS_INT eyear, SDDAS_INT eday, SDDAS_LONG emsec, SDDAS_BOOL xstatus, char *app_name, SDDAS_BOOL forcePromote) { Promote *P = new Promote (app_name, forcePromote); P->SetBTime (byear, bday, bmsec); P->SetETime (eyear, eday, emsec); P->SetXStatus (xstatus == sTrue ? ON : OFF); // return the typecasted P back as a void * if we have stuff to promote return ((void *) P); } void pro_AddSource (void *promote_struct, SDDAS_ULONG data_key) { Promote *P = (Promote *)promote_struct; if ((P != NULL) && (data_key != 0)) { P->AddSource (data_key); } } SDDAS_BOOL pro_NeedToPromote (void *promote_struct) { Promote *P = (Promote *)promote_struct; if (P->BuildDBList (_I_FILE_ | _H_FILE_ | _D_FILE_ | _P_FILE_, OFFLINE) > 0) return (sTrue); else return (sFalse); } SDDAS_BOOL pro_PromoteAll (void *promote_struct) { Promote *P = (Promote *)promote_struct; if (P != NULL) { return (P->PromoteList ()); } else return (sFalse); } SDDAS_BOOL pro_DemoteAll (void *promote_struct) { Promote *P = (Promote *)promote_struct; if (P != NULL) { int i = P->DemoteAllData (); if (i != 0) return (sFalse); else return (sTrue); } else return (sFalse); } void pro_FreePromote (void *promote_struct) { Promote *P = (Promote *)promote_struct; if (P != NULL) { delete P; } } /***********************************************************************/ // This routine is used by the libnewPidf - not for use by the public /***********************************************************************/ SDDAS_BOOL pro_PromotePIDF (SDDAS_ULONG data_key) { SDDAS_BOOL retcode; Promote *P = new Promote ("UNKNOWN", sFalse); P->AddSource (data_key); P->SetXStatus (OFF); // return the result of the promote if (P->BuildDBList (_P_FILE_, OFFLINE) > 0) { retcode = P->PromoteList (); } else retcode = sFalse; delete P; return (retcode); } /***********************************************************************/ // Promote VIDF file only (libbase_SCF uses this feature). /***********************************************************************/ SDDAS_BOOL pro_PromoteVIDF (SDDAS_ULONG data_key, SDDAS_SHORT byear, SDDAS_SHORT bday, SDDAS_LONG bsec, SDDAS_SHORT eyear, SDDAS_SHORT eday, SDDAS_LONG esec) { SDDAS_BOOL retcode; Promote *P = new Promote ("UNKNOWN", sFalse); P->AddSource (data_key); P->SetBTime (byear, bday, bsec); P->SetETime (eyear, eday, esec); P->SetXStatus (OFF); // return the result of the promote if (P->BuildDBList (_I_FILE_, OFFLINE) > 0) { retcode = P->PromoteList (); } else retcode = sFalse; delete P; return (retcode); } /* // project, mission, experiment, instrument, virtual, year, day, hour, min, sec, msec Boolean PromoteAll (char *, char *, char *, char *, char *, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT, SDDAS_INT); // project, mission, experiment, instrument, virtual, // beginning day, beginning hour, beginning min, beginning sec, // ending day, ending hour, ending min, ending sec Boolean Promote::PromoteAll (char *P, char *M, char *E, char *I, char *V, SDDAS_INT byear, SDDAS_INT bday, SDDAS_INT bhour, SDDAS_INT bmin, SDDAS_INT bsec, SDDAS_INT eyear, SDDAS_INT eday, SDDAS_INT ehour, SDDAS_INT emin, SDDAS_INT esec) { AddSource (P, M, E, I, V); SetBTime (byear, bday, bhour, bmin, bsec); SetETime (eyear, eday, ehour, emin, esec); BuildDBList (_I_FILE_ | _H_FILE_ | _D_FILE_ | _P_FILE_, OFFLINE); return (PromoteList ()); } */