urbackup_backend/Interface/DatabaseCursor.h
Martin f3db7fdcc0 Reset database cursor upon re-use
(cherry picked from commit ca5af2d8907c6415c13ea710e76192b75909c7f1)
2019-09-16 18:34:39 +02:00

46 lines
661 B
C++

#ifndef IDATABASECURSOR_H_
#define IDATABASECURSOR_H_
#include "Query.h"
class IDatabaseCursor
{
public:
virtual bool next(db_single_result &res)=0;
virtual bool has_error()=0;
virtual bool reset() = 0;
virtual void shutdown() = 0;
};
class ScopedDatabaseCursor
{
public:
ScopedDatabaseCursor(IDatabaseCursor* cursor)
: cursor(cursor)
{
}
~ScopedDatabaseCursor()
{
cursor->shutdown();
}
virtual bool next(db_single_result &res)
{
return cursor->next(res);
}
virtual bool has_error()
{
return cursor->has_error();
}
private:
IDatabaseCursor* cursor;
};
#endif //IDATABASECURSOR_H_