annotate ReporterBase.h @ 402:58b88ab69424 api-inversion

Move the struct adb definition from the auidioDB_API.h into the audioDB-internals.h header file, leaving only the typedef behind. Thus a user of the API sees only an incomplete type, which cannot be instantiated (but /pointers/ to it can); there's then less temptation to break the abstraction barrier by using structure fields in client code. Not only that, but we can now safely put C++ stuff in the structure. Take advantage of this by putting a std::set<std::string> in there, to hold all the keys currently in the database; populate this field on audiodb_open() (and delete it on audiodb_close). This will be useful when we come to implement variants of audiodb_insert().
author mas01cr
date Wed, 03 Dec 2008 17:40:15 +0000
parents d9a88cfd4ab6
children d3afc91d205d
rev   line source
mas01mc@292 1
mas01mc@292 2 #ifndef __REPORTERBASE_H
mas01mc@292 3 #define __REPORTERBASE_H
mas01mc@292 4
mas01mc@292 5 class ReporterBase {
mas01mc@292 6 public:
mas01mc@292 7 virtual ~ReporterBase(){};
mas01mc@292 8 virtual void add_point(unsigned int trackID, unsigned int qpos, unsigned int spos, double dist) = 0;
mas01mc@292 9 virtual void report(char*,void*) = 0;
mas01mc@292 10 };
mas01mc@292 11
mas01mc@292 12 #endif