diff --git a/design.txt b/design.txt index f0907a22..d4c78c79 100644 --- a/design.txt +++ b/design.txt @@ -311,7 +311,7 @@ Database: (lib/database.cpp) unsigned int insert(T); void delete(unsigned int); const unsigned int &size(); - const T &operator[](unsigned int); + T &operator[](unsigned int); }; File << db.size() << endl @@ -323,19 +323,27 @@ Database: (lib/database.cpp) Database.Database(filename); Initializes database to use ~/.ocarina{-debug}/filename. Pass an empty string if you do not want this database to be saved. - Database.load(); + + void Database.load(); Reads data from file. Call after static initialization of Ocarina to ensure idle tasks are configured so loading can happen at a later time. - Database.save(); + + void Database.save(); Saves data to file. - Database.insert(T &); + + template + unsigned int Database.insert(T &); Adds a new item to the db, returns the id of the item - Database.delete(unsigned int index); + + void Database.delete(unsigned int index); Mark db[index] as invalid (quick deletion) - Database.size(); + + unsigned Database.size(); Returns number of valid rows in the database - Database.operator[unsigned int index] + + template + T &Database.operator[unsigned int index] Return a reference to db[index] diff --git a/design/database.txt b/design/database.txt index 726b899c..009017a6 100644 --- a/design/database.txt +++ b/design/database.txt @@ -55,7 +55,7 @@ Database: (lib/database.cpp) unsigned int insert(T); void delete(unsigned int); const unsigned int &size(); - const T &operator[](unsigned int); + T &operator[](unsigned int); }; File << db.size() << endl @@ -67,17 +67,25 @@ Database: (lib/database.cpp) Database.Database(filename); Initializes database to use ~/.ocarina{-debug}/filename. Pass an empty string if you do not want this database to be saved. - Database.load(); + + void Database.load(); Reads data from file. Call after static initialization of Ocarina to ensure idle tasks are configured so loading can happen at a later time. - Database.save(); + + void Database.save(); Saves data to file. - Database.insert(T &); + + template + unsigned int Database.insert(T &); Adds a new item to the db, returns the id of the item - Database.delete(unsigned int index); + + void Database.delete(unsigned int index); Mark db[index] as invalid (quick deletion) - Database.size(); + + unsigned Database.size(); Returns number of valid rows in the database - Database.operator[unsigned int index] + + template + T &Database.operator[unsigned int index] Return a reference to db[index]