00001
00002
#if !defined(__INC_WARNABLE_H)
00003 #define __INC_WARNABLE_H
00004
00005
#include <queue>
00006
00007
#include <sigc++/sigc++.h>
00008
00009
#include <gql++/warning.h>
00010
00011
namespace GQL
00012 {
00013
00014 class Warnable :
public SigC::Object
00015 {
00016
public:
00017
Warnable();
00018 const SQLWarning *
get_warning() {
00019
return(warnings_.front());
00020 }
00021 void next_warning() {
00022
delete warnings_.front();
00023 warnings_.pop();
00024 }
00025 void clear_warnings() {
00026
while (!warnings_.empty())
00027
next_warning();
00028 }
00029
protected:
00030
00031
00032 void add_warning(
SQLWarning *warning) {
00033 warnings_.push(warning);
00034 }
00035
private:
00036 std::queue<SQLWarning *> warnings_;
00037 };
00038
00039 }
00040
00041
#endif