/******************************************************************************/ /* File : VVschema.h */ /* Schema : bdeschema.sch */ /* GENCPP Version : Chgen V 12 - Sathya */ /******************************************************************************/ #ifndef __VVSCHEMA_H__ #define __VVSCHEMA_H__ #include "bdeschema.h" #ifdef USE_STL #include #endif /* USE_STL */ class SV ; class TS ; #ifndef USE_STL class VV : public RC /* vv_type - subset of tables in this view */ { private : hcg_key SVid; /* SV foreign key field */ char vname[31]; /* view name (schema = all tables) */ char mode[3]; /* mode (r/w/u) */ int num_tables; /* number of tables in View */ public : SV *SVid_pp; void *SVid_fpp; void *SVid_bpp; TS *TSid_fcp; TS *TSid_bcp; VV *prev_ptr; VV *next_ptr; void set_SVid (hcg_key id); void set_vname (char *value); void set_mode (char *value); void set_num_tables (int value); hcg_key get_SVid (); char* get_vname (); char* get_mode (); int get_num_tables (); VV* 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 VV : public RC { private : hcg_key SVid; /* SV foreign key field */ char vname[31]; /* view name (schema = all tables) */ char mode[3]; /* mode (r/w/u) */ int num_tables; /* number of tables in View */ SV *SVid_pp; /* Parent */ list TSid_children; /* Child list */ public : void set_SVid (hcg_key id); void set_vname (char *value); void set_mode (char *value); void set_num_tables (int value); hcg_key get_SVid (); char* get_vname (); char* get_mode (); int get_num_tables (); void insertChild_TSid(TS *childRow); /* Adds a child to list */ void removeChild_TSid(list::iterator rowIter); /* Remove child */ list::iterator getFirstChild_TSid(); /* Returns 1st child */ list::iterator getLastChild_TSid(); /* Returns last child */ list::iterator TSid_Terminator(); /* Returns terminator */ void setParent_SVid(SV *currentRow); /* Initializes parent */ SV *getParent_SVid(); /* Returns parent */ 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); VV(); /* Constructor */ ~VV(); /* 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 VVtable /* vv_type - subset of tables in this view */ { 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 */ VV *getPrevRow(VV *curr); /* Returns prev iterator */ VV *getNextRow(VV *curr); /* Returns next iterator */ VV *getLastRow(); /* Returns last iterator */ list::iterator Terminator(); /* Returns list terminator */ bool isFirstRow(VV * curr); /* True if curr is iterator to first row */ bool isLastRow(VV * curr); /* True if curr is iterator to last row */ void insertRow(VV *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); */ VVtable(char *abbrev, char *name); /* Constructor */ ~VVtable(); /* Destructor */ }; #endif /* USE_STL */ #endif /* __VVSCHEMA_H__ */