Streamer というクラスがあります。これがStreamer.hです
class Streamer {
public:
Streamer(const MyDb& realtimeDb);
virtual ~Streamer(void);
private:
virtual void callback_1(T_UPDATE pUpdate);
virtual void callback_2(Q_UPDATE pUpdate);
};
これがStreamer.cppです
Streamer::Streamer(const MyDb& realtimeDb) {
}
Streamer::~Streamer(void) {
}
void Streamer::callback_1(T_UPDATE pUpdate) {
// I need to do something with pUpdate and realtimeDb here, like this:
// Getting a cursor from db (works fine in main.cpp, but not in callback)
Dbc *cursorp;
realtimeDb.getDb().cursor(NULL, &cursorp, 0);
}
void Streamer::callback_2(Q_UPDATE pUpdate) {
// I need to do something with pUpdate and realtimeDb here, like this:
// Getting a cursor from db (works fine in main.cpp, but not in callback)
Dbc *cursorp;
realtimeDb.getDb().cursor(NULL, &cursorp, 0);
}
Streamer には、API からのコールバックである 2 つのメソッドがあります。これらのパラメータを変更できません。ただし、コンストラクターに渡すデータベース インスタンス MyDb にアクセスする必要があります (正しく行っているでしょうか?)。これは、main.cpp から渡す方法です。
MyDb realtimeDb(databasePath, databaseName);
Streamer streamer(realtimeDb);
コールバックの 1 つから realtimeDb にアクセスしようとすると、次のようになります。
error: 'realtimeDb' was not declared in this scope
何か案は?ありがとう!