/******************************************************************************/ /* File : SVschema.h */ /* Schema : bdeschema.sch */ /* GENCPP Version : Chgen V 12 - Sathya */ /******************************************************************************/ #ifndef __SVSCHEMA_H__ #define __SVSCHEMA_H__ #include "bdeschema.h" #ifdef USE_STL #include #endif /* USE_STL */ class VV ; class TT ; #ifndef USE_STL class SV : public RC /* sv_type - schema version, data, path, applications? */ { private : char PVid[9]; /* Project Ref - non-key field for now */ char svname[31]; /* schema name [and version?] */ char sformat[7]; /* schema format: CHGEN or GENDB[?] */ char sversion[13]; /* schema tag or version (rev# i.j...? */ int lastMod; /* date of last mod: yymmdd */ char svpath[81]; /* full path prefix or $DEFINED-SYMBOL */ char descr[81]; /* e.g., list of schema applications? */ public : VV *VVid_fcp; VV *VVid_bcp; TT *TTid_fcp; TT *TTid_bcp; SV *prev_ptr; SV *next_ptr; void set_PVid (char *value); void set_svname (char *value); void set_sformat (char *value); void set_sversion (char *value); void set_lastMod (int value); void set_svpath (char *value); void set_descr (char *value); char* get_PVid (); char* get_svname (); char* get_sformat (); char* get_sversion (); int get_lastMod (); char* get_svpath (); char* get_descr (); SV* create_row(); void link_row () ; void parse_row (char *buffer, int idx, hcg_key hcg_k) ; void add_row (char *viewname) ; void delete_row () ; void dump_table (char *viewname, char *file_name, int new_version, char *modestr) ; void dump_row (char *viewname, char *file_name, int new_version, char *modestr) ; void add_row_log(char *); void log_do_add_row (char *, char *, int); void log_do_set_int_row (const char *, const int ); void log_do_set_flt_row (const char *, const int ); void log_do_set_key_row (const char *, hcg_key ); void log_do_set_str_row (const char *, const char * ); } ; #else class SV : public RC { private : char PVid[9]; /* Project Ref - non-key field for now */ char svname[31]; /* schema name [and version?] */ char sformat[7]; /* schema format: CHGEN or GENDB[?] */ char sversion[13]; /* schema tag or version (rev# i.j...? */ int lastMod; /* date of last mod: yymmdd */ char svpath[81]; /* full path prefix or $DEFINED-SYMBOL */ char descr[81]; /* e.g., list of schema applications? */ list VVid_children; /* Child list */ list TTid_children; /* Child list */ public : void set_PVid (char *value); void set_svname (char *value); void set_sformat (char *value); void set_sversion (char *value); void set_lastMod (int value); void set_svpath (char *value); void set_descr (char *value); char* get_PVid (); char* get_svname (); char* get_sformat (); char* get_sversion (); int get_lastMod (); char* get_svpath (); char* get_descr (); void insertChild_VVid(VV *childRow); /* Adds a child to list */ void removeChild_VVid(list::iterator rowIter); /* Remove child */ list::iterator getFirstChild_VVid(); /* Returns 1st child */ list::iterator getLastChild_VVid(); /* Returns last child */ list::iterator VVid_Terminator(); /* Returns terminator */ void insertChild_TTid(TT *childRow); /* Adds a child to list */ void removeChild_TTid(list::iterator rowIter); /* Remove child */ list::iterator getFirstChild_TTid(); /* Returns 1st child */ list::iterator getLastChild_TTid(); /* Returns last child */ list::iterator TTid_Terminator(); /* Returns terminator */ void link_row () ; void parse_row (char *buffer, int idx, hcg_key hcg_k); void add_row (char *viewname); list::iterator delete_row (list::iterator rowIter); /* Deletes the row */ /* Prints a row to a file */ void dump_row (char *viewname, char *file_name, int new_version, char *modestr); /* Prints a row to terminal */ void dump_row (char *viewname, int new_version, char *modestr); SV(); /* Constructor */ ~SV(); /* Destructor */ void add_row_log(char *); void log_do_add_row (char *, char *, int); void log_do_set_int_row (const char *, const int ); void log_do_set_flt_row (const char *, const int ); void log_do_set_key_row (const char *, hcg_key ); void log_do_set_str_row (const char *, const char * ); } ; class SVtable /* sv_type - schema version, data, path, applications? */ { private : char abbrev[5]; /* 2-char abbreviation */ char *name; /* Table name */ list row; /* List of rows */ public : char *getAbbrev(); /* Returns table abbreviation */ char *getName(); /* Returns table name */ unsigned int getRowCount(); /* Returns number of rows in table */ list::iterator getFirstRow(); /* Returns iterator to first row */ SV *getPrevRow(SV *curr); /* Returns prev iterator */ SV *getNextRow(SV *curr); /* Returns next iterator */ SV *getLastRow(); /* Returns last iterator */ list::iterator Terminator(); /* Returns list terminator */ bool isFirstRow(SV * curr); /* True if curr is iterator to first row */ bool isLastRow(SV * curr); /* True if curr is iterator to last row */ void insertRow(SV *newRow); /* Inserts a row at end of table */ list::iterator removeRow(list::iterator i); /* Removes row from table */ /* Prints out entire table to file */ void dump_table(char *viewname, char *file_name, int new_version, char *modestr); /* Prints out entire table to terminal */ /* void dump_table(char *viewname, int new_version, char *modestr); */ SVtable(char *abbrev, char *name); /* Constructor */ ~SVtable(); /* Destructor */ }; #endif /* USE_STL */ #endif /* __SVSCHEMA_H__ */