MastodonAPIWrapperというマストドンのRestAPIをラッピングしたクラスを作ろうとしています。
使用する言語はC++でQt(クロスプラットフォームGUIアプリを作るフレームワーク)を使っています。
現時点での(MastodonAPIWrapperなしの)実装は、
ボタンクリックのイベントハンドラでQtのQNetworkAccessManager(Webを扱うQtが提供するクラス)のgetメソッドを使ってタイムライン取得のマストドンAPIを実行します。
すると、すぐには結果が返ってこず、非同期で全てのデータを受信した後にreplyFinihed関数が実行されてデータが取得できます。
これをMastodonAPIWrapperの一つのメソッドにしたいのですが、
問題があります。
まず、Wrapperの中でQNetworkAccessManagerのgetメソッドを呼ぶメソッドを用意したとしても、そのメソッドを読んですぐにデータを返すことが出来ません。(getは非同期にデータを返すので)
そこで、Wrapperのタイムライン取得メソッドにコールバック関数を渡して、Wrapperで実行したgetメソッドの結果が返ってきた後に、コールバック関数あてに取得したデータを返そうと思ったのですが、
コールバック関数に他のクラスのメソッドを指定するとした場合、
各クラス用のメソッドを作らないといけなくなってしまいます。
これではどこからでも使えるAPIのラッパーになりません。
何か良い解決策はないでしょうか?
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/01 09:57 編集
2017/05/01 12:08