#ifndef _S_H_ #define _S_H_ #include #include #include #include #include #include "tdb.h" // Video_frame DbObj(Video_frame) basic_def(double,Frame_mean); basic_def(double,Frame_std_dev); basic_def(double,Frame_cx); basic_def(double,Frame_cy); basic_def(double,Frame_moment); varray_def(unsigned char,Frame_data); }; DbLoc(Video_frame) basic_ref(double,Frame_mean); basic_ref(double,Frame_std_dev); basic_ref(double,Frame_cx); basic_ref(double,Frame_cy); basic_ref(double,Frame_moment); varray_ref(unsigned char,Frame_data); class ikey_Frame_weight : public Db::iKey { public: Video_frameObj::t_Frame_mean v_Frame_mean; int v_id; static int cmpr(char *a, char *b); ikey_Frame_weight(ObjectLoc &loc, double Frame_mean, int id=-1) : iKey("Frame_weight",loc,cmpr), v_Frame_mean(Frame_mean), v_id(id) {} }; class rkey_Frame_weight : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Frame_weight(ObjectLoc &loc) : rKey("Frame_weight",loc,cmpr) {} }; class ikey_Frame_center : public Db::iKey { public: Video_frameObj::t_Frame_moment v_Frame_moment; int v_id; static int cmpr(char *a, char *b); ikey_Frame_center(ObjectLoc &loc, double Frame_moment, int id=-1) : iKey("Frame_center",loc,cmpr), v_Frame_moment(Frame_moment), v_id(id) {} }; class rkey_Frame_center : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Frame_center(ObjectLoc &loc) : rKey("Frame_center",loc,cmpr) {} }; int Allocate(); int Construct(); int Destruct(); void Deallocate(); }; // Timeline DbObj(Timeline) basic_def(unsigned int,Clip_id); basic_def(unsigned int,Sequence_no); basic_def(unsigned int,Frame_id); basic_def(unsigned int,Group); basic_def(double,Time_offset); }; DbLoc(Timeline) basic_ref(unsigned int,Clip_id); basic_ref(unsigned int,Sequence_no); basic_ref(unsigned int,Frame_id); basic_ref(unsigned int,Group); basic_ref(double,Time_offset); class ikey_Timelines : public Db::iKey { public: TimelineObj::t_Frame_id v_Frame_id; int v_id; static int cmpr(char *a, char *b); ikey_Timelines(ObjectLoc &loc, unsigned int Frame_id, int id=-1) : iKey("Timelines",loc,cmpr), v_Frame_id(Frame_id), v_id(id) {} }; class rkey_Timelines : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Timelines(ObjectLoc &loc) : rKey("Timelines",loc,cmpr) {} }; class ikey_Sequences : public Db::iKey { public: TimelineObj::t_Clip_id v_Clip_id; TimelineObj::t_Sequence_no v_Sequence_no; static int cmpr(char *a, char *b); ikey_Sequences(ObjectLoc &loc, unsigned int Clip_id, unsigned int Sequence_no) : iKey("Sequences",loc,cmpr), v_Clip_id(Clip_id), v_Sequence_no(Sequence_no) {} }; class rkey_Sequences : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Sequences(ObjectLoc &loc) : rKey("Sequences",loc,cmpr) {} }; int Allocate(); int Construct(); int Destruct(); void Deallocate(); }; // Clip_set DbObj(Clip_set) sarray_def(char,Title); sarray_def(char,Asset_path); basic_def(double,Position); basic_def(double,Framerate); basic_def(double,Average_weight); basic_def(unsigned int,Frames); basic_def(unsigned int,Prefix_size); basic_def(unsigned int,Suffix_size); varray_def(unsigned char,Weights); basic_def(long,System_time); basic_def(long,Creation_time); }; DbLoc(Clip_set) sarray_ref(char,Title); sarray_ref(char,Asset_path); basic_ref(double,Position); basic_ref(double,Framerate); basic_ref(double,Average_weight); basic_ref(unsigned int,Frames); basic_ref(unsigned int,Prefix_size); basic_ref(unsigned int,Suffix_size); varray_ref(unsigned char,Weights); basic_ref(long,System_time); basic_ref(long,Creation_time); class ikey_Clip_title : public Db::iKey { public: Clip_setObj::t_Title v_Title; int v_id; static int cmpr(char *a, char *b); ikey_Clip_title(ObjectLoc &loc, const Clip_setObj::t_Title &Title, int id=-1) : iKey("Clip_title",loc,cmpr), v_Title(Title), v_id(id) {} }; class rkey_Clip_title : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Clip_title(ObjectLoc &loc) : rKey("Clip_title",loc,cmpr) {} }; class ikey_Clip_system_time : public Db::iKey { public: Clip_setObj::t_System_time v_System_time; int v_id; static int cmpr(char *a, char *b); ikey_Clip_system_time(ObjectLoc &loc, long System_time, int id=-1) : iKey("Clip_system_time",loc,cmpr), v_System_time(System_time), v_id(id) {} }; class rkey_Clip_system_time : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Clip_system_time(ObjectLoc &loc) : rKey("Clip_system_time",loc,cmpr) {} }; class ikey_Clip_creation_time : public Db::iKey { public: Clip_setObj::t_Creation_time v_Creation_time; int v_id; static int cmpr(char *a, char *b); ikey_Clip_creation_time(ObjectLoc &loc, long Creation_time, int id=-1) : iKey("Clip_creation_time",loc,cmpr), v_Creation_time(Creation_time), v_id(id) {} }; class rkey_Clip_creation_time : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Clip_creation_time(ObjectLoc &loc) : rKey("Clip_creation_time",loc,cmpr) {} }; class ikey_Clip_path_pos : public Db::iKey { public: Clip_setObj::t_Asset_path v_Asset_path; Clip_setObj::t_Position v_Position; int v_id; static int cmpr(char *a, char *b); ikey_Clip_path_pos(ObjectLoc &loc, const Clip_setObj::t_Asset_path &Asset_path, double Position, int id=-1) : iKey("Clip_path_pos",loc,cmpr), v_Asset_path(Asset_path), v_Position(Position), v_id(id) {} }; class rkey_Clip_path_pos : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Clip_path_pos(ObjectLoc &loc) : rKey("Clip_path_pos",loc,cmpr) {} }; int Allocate(); int Construct(); int Destruct(); void Deallocate(); }; // Clip_views DbObj(Clip_views) basic_def(unsigned int,Access_clip_id); basic_def(long,Access_time); basic_def(unsigned int,Access_count); }; DbLoc(Clip_views) basic_ref(unsigned int,Access_clip_id); basic_ref(long,Access_time); basic_ref(unsigned int,Access_count); class ikey_Clip_access : public Db::iKey { public: Clip_viewsObj::t_Access_clip_id v_Access_clip_id; static int cmpr(char *a, char *b); ikey_Clip_access(ObjectLoc &loc, unsigned int Access_clip_id) : iKey("Clip_access",loc,cmpr), v_Access_clip_id(Access_clip_id) {} }; class rkey_Clip_access : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Clip_access(ObjectLoc &loc) : rKey("Clip_access",loc,cmpr) {} }; class ikey_Last_view : public Db::iKey { public: Clip_viewsObj::t_Access_time v_Access_time; int v_id; static int cmpr(char *a, char *b); ikey_Last_view(ObjectLoc &loc, long Access_time, int id=-1) : iKey("Last_view",loc,cmpr), v_Access_time(Access_time), v_id(id) {} }; class rkey_Last_view : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Last_view(ObjectLoc &loc) : rKey("Last_view",loc,cmpr) {} }; class ikey_Total_views : public Db::iKey { public: Clip_viewsObj::t_Access_count v_Access_count; Clip_viewsObj::t_Access_clip_id v_Access_clip_id; int v_id; static int cmpr(char *a, char *b); ikey_Total_views(ObjectLoc &loc, unsigned int Access_count, unsigned int Access_clip_id, int id=-1) : iKey("Total_views",loc,cmpr), v_Access_count(Access_count), v_Access_clip_id(Access_clip_id), v_id(id) {} }; class rkey_Total_views : public Db::rKey { public: static int cmpr(char *a, char *b); rkey_Total_views(ObjectLoc &loc) : rKey("Total_views",loc,cmpr) {} }; int Allocate(); int Construct(); int Destruct(); void Deallocate(); }; class theDb : public Db { int dfd, dkey, no_atime; int db_create(); int db_open(); int db_access(); public: Objects objects; Entity Video_frame; Video_frameLoc video_frame; Entity Timeline; TimelineLoc timeline; Entity Clip_set; Clip_setLoc clip_set; Entity Clip_views; Clip_viewsLoc clip_views; int create(const char *dfn); int open(const char *dfn, int key=-1); int access(const char *dfn, int key=-1, int rw=0); void close(); int attach(int rw=0) { return Db::attach(rw); } int detach() { return Db::detach(); } theDb(); ~theDb() { finit(objects); } }; #endif