6#include "webcface/common/webcface-config.h"
25#pragma warning(disable : 4996)
27#pragma GCC diagnostic push
28#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
38 std::shared_ptr<internal::PromiseData> data;
44 const std::shared_ptr<internal::PromiseData> &data,
45 const std::shared_future<bool> &started,
46 const std::shared_future<ValAdaptor> &result);
63 "use reached(), found() or waitReach()")]] std::shared_future<bool>
77 "use finished(), response(), rejection(), or waitFinish()")]] std::
78 shared_future<ValAdaptor>
82 void waitReachImpl(std::optional<std::chrono::microseconds> timeout)
const;
83 void waitFinishImpl(std::optional<std::chrono::microseconds> timeout)
const;
119 waitReachImpl(std::nullopt);
131 waitReachImpl(timeout);
142 template <
typename Clock,
typename Duration>
144 waitReachImpl(std::chrono::duration_cast<std::chrono::microseconds>(
145 timeout - Clock::now()));
157 bool finished()
const;
168 bool isError()
const;
208 waitFinishImpl(std::nullopt);
220 waitFinishImpl(timeout);
231 template <
typename Clock,
typename Duration>
233 waitFinishImpl(std::chrono::duration_cast<std::chrono::microseconds>(
234 timeout - Clock::now()));
264 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
265 std::
nullptr_t> =
nullptr>
268 [callback = std::move(callback)](
const Promise &) { callback(); });
295 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
296 std::
nullptr_t> =
nullptr>
299 [callback = std::move(callback)](
const Promise &) { callback(); });
306#pragma GCC diagnostic pop
319 std::shared_ptr<internal::PromiseData> data;
326 const std::shared_ptr<internal::PromiseData> &data);
340 const std::vector<ValAdaptor> &args()
const;
363 void reach(
bool found)
const;
375 bool assertArgsNum(std::size_t expected)
const;
385 template <
typename T>
392 template <std::
size_t N>
399 template <std::
size_t N>
400 void respond(
const wchar_t (&value)[N])
const {
433 bool respondable()
const;
呼び出された関数の引数の取得と戻り値のセットをするインタフェース
Definition func_result.h:318
void respond(const T &value) const
関数の結果を送信する
Definition func_result.h:386
void respond(const wchar_t(&value)[N]) const
Definition func_result.h:400
void respond(const char(&value)[N]) const
Definition func_result.h:393
void reject(StringInitializer message) const
関数の結果を例外として送信する
Definition func_result.h:422
void respond() const
空の値を関数の結果として送信する
Definition func_result.h:411
関数1つを表すクラス
Definition func.h:106
非同期で実行した関数の実行結果を取得するインタフェース。
Definition func_result.h:37
Promise & waitFinishFor(std::chrono::microseconds timeout)
関数の実行が完了するまで待機
Definition func_result.h:219
Promise & onReach(F callback)
リモートに呼び出しメッセージが到達したときに呼び出すコールバックを設定
Definition func_result.h:266
Promise & waitReach()
リモートに呼び出しメッセージが到達するまで待機
Definition func_result.h:118
std::shared_future< ValAdaptor > result
関数の実行が完了した時戻り値が入る
Definition func_result.h:79
Promise & waitFinishUntil(std::chrono::time_point< Clock, Duration > timeout)
関数の実行が完了するまで待機
Definition func_result.h:232
std::shared_future< bool > started
リモートに呼び出しメッセージが到達したときに値が入る
Definition func_result.h:64
Promise & waitFinish()
関数の実行が完了するまで待機
Definition func_result.h:207
Promise & waitReachUntil(std::chrono::time_point< Clock, Duration > timeout)
リモートに呼び出しメッセージが到達するまで待機
Definition func_result.h:143
Promise & onFinish(F callback)
関数の実行が完了した時呼び出すコールバックを設定
Definition func_result.h:297
Promise & waitReachFor(std::chrono::microseconds timeout)
リモートに呼び出しメッセージが到達するまで待機
Definition func_result.h:130
SharedString のpublicなコンストラクタインタフェース (入力専用)
Definition encoding.h:215
webcfaceで管理されている文字列を参照するstring_view
Definition encoding.h:60
数値、文字列などの値を相互変換するクラス
Definition val_adaptor.h:87
数値と文字列をまとめて扱うためのstruct (wstring)
Definition def_types.h:84
数値と文字列をまとめて扱うためのstruct
Definition def_types.h:50
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:71
未初期化の変数にアクセスした場合に発生する例外
Definition exception.h:46
Definition client_internal.h:46
関数1つの情報を表す。関数の実体も持つ
Definition func_internal.h:142
#define WEBCFACE_DLL
Definition webcface-config.h:69
#define WEBCFACE_CALL
Definition webcface-config.h:106
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117
#define WEBCFACE_CALL_FP
Definition webcface-config.h:107