#ifndef WC_DATABASE_H #define WC_DATABASE_H #include class DatabaseManager; class DB_ROW { MYSQL_ROW row; const unsigned int fields; public: DB_ROW(MYSQL_ROW *r, const unsigned int flds) : row(*r), fields(flds) {} ~DB_ROW(); char *operator[](const int index); const unsigned int GetFieldCount() const { return fields; } }; class AnswerDB { friend class DatabaseManager; // ? MYSQL_RES *result; DB_ROW *current_row; const unsigned int fields; unsigned long rows; AnswerDB(MYSQL_RES *res, unsigned int flds, unsigned long rws) : result(res), current_row(0), fields(flds), rows(rws) {} public: ~AnswerDB(); DB_ROW *GetNextRow(); const unsigned int GetFieldCount() const { return fields; } unsigned long GetRowCount() const { return rows; } }; class DatabaseManager { MYSQL *connection; DatabaseManager(MYSQL *db) : connection(db) {} public: ~DatabaseManager(); static DatabaseManager *Connect(const char *host, const char *user, const char *pass, const char *db_name, unsigned int port, const char *unix_socket = 0, unsigned long flags = 0); AnswerDB *QuerySelect(const char *sql); int QueryInsert(const char *sql); }; #endif