5#include "webcface/common/webcface-config.h"
38#pragma warning(disable : 4996)
40#pragma GCC diagnostic push
41#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
51 std::shared_ptr<internal::PromiseData> data;
57 const std::shared_ptr<internal::PromiseData> &data,
58 const std::shared_future<bool> &started,
59 const std::shared_future<ValAdaptor> &result);
75 [[deprecated(
"use reached(), found() or waitReach()")]]
88 [[deprecated(
"use finished(), response(), rejection(), or waitFinish()")]]
89 std::shared_future<ValAdaptor>
result;
92 void waitReachImpl(std::optional<std::chrono::microseconds> timeout)
const;
93 void waitFinishImpl(std::optional<std::chrono::microseconds> timeout)
const;
101 bool reached()
const;
129 waitReachImpl(std::nullopt);
141 waitReachImpl(timeout);
152 template <
typename Clock,
typename Duration>
154 waitReachImpl(std::chrono::duration_cast<std::chrono::microseconds>(
155 timeout - Clock::now()));
167 bool finished()
const;
178 bool isError()
const;
190 const std::string &rejection()
const;
196 const std::wstring &rejectionW()
const;
213 waitFinishImpl(std::nullopt);
225 waitFinishImpl(timeout);
236 template <
typename Clock,
typename Duration>
238 waitFinishImpl(std::chrono::duration_cast<std::chrono::microseconds>(
239 timeout - Clock::now()));
269 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
270 std::
nullptr_t> =
nullptr>
273 [callback = std::move(callback)](
const Promise &) { callback(); });
300 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
301 std::
nullptr_t> =
nullptr>
304 [callback = std::move(callback)](
const Promise &) { callback(); });
311#pragma GCC diagnostic pop
324 std::shared_ptr<internal::PromiseData> data;
331 const std::shared_ptr<internal::PromiseData> &data);
345 const std::vector<ValAdaptor> &args()
const;
368 void reach(
bool found)
const;
380 bool assertArgsNum(std::size_t expected)
const;
390 template <
typename T>
420 void reject(std::wstring_view message)
const {
431 bool respondable()
const;
呼び出された関数の引数の取得と戻り値のセットをするインタフェース
Definition func_result.h:323
void respond(const T &value) const
関数の結果を送信する
Definition func_result.h:391
void reject(std::string_view message) const
関数の結果を例外として送信する
Definition func_result.h:412
void reject(std::wstring_view message) const
関数の結果を例外として送信する (wstring)
Definition func_result.h:420
void respond() const
空の値を関数の結果として送信する
Definition func_result.h:402
関数1つを表すクラス
Definition func.h:95
非同期で実行した関数の実行結果を取得するインタフェース。
Definition func_result.h:50
std::shared_future< ValAdaptor > result
関数の実行が完了した時戻り値が入る
Definition func_result.h:89
Promise & waitFinishFor(std::chrono::microseconds timeout)
関数の実行が完了するまで待機
Definition func_result.h:224
Promise & onReach(F callback)
リモートに呼び出しメッセージが到達したときに呼び出すコールバックを設定
Definition func_result.h:271
Promise & waitReach()
リモートに呼び出しメッセージが到達するまで待機
Definition func_result.h:128
Promise & waitFinishUntil(std::chrono::time_point< Clock, Duration > timeout)
関数の実行が完了するまで待機
Definition func_result.h:237
std::shared_future< bool > started
リモートに呼び出しメッセージが到達したときに値が入る
Definition func_result.h:76
Promise & waitFinish()
関数の実行が完了するまで待機
Definition func_result.h:212
Promise & waitReachUntil(std::chrono::time_point< Clock, Duration > timeout)
リモートに呼び出しメッセージが到達するまで待機
Definition func_result.h:153
Promise & onFinish(F callback)
関数の実行が完了した時呼び出すコールバックを設定
Definition func_result.h:302
Promise & waitReachFor(std::chrono::microseconds timeout)
リモートに呼び出しメッセージが到達するまで待機
Definition func_result.h:140
数値、文字列などの値を相互変換するクラス
Definition val_adaptor.h:87
数値と文字列をまとめて扱うためのstruct (wstring)
Definition def_types.h:84
数値と文字列をまとめて扱うためのstruct
Definition def_types.h:50
メンバ名とデータ名を持つクラス
Definition field.h:37
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:70
Funcの実行ができなかった場合発生する例外
Definition func_result.h:32
Definition client_internal.h:35
関数1つの情報を表す。関数の実体も持つ
Definition func_internal.h:142
#define WEBCFACE_DLL
Definition webcface-config.h:60
#define WEBCFACE_CALL
Definition webcface-config.h:97
#define WEBCFACE_NS_END
Definition webcface-config.h:104
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:103
#define WEBCFACE_CALL_FP
Definition webcface-config.h:98