9#include "webcface/common/webcface-config.h"
15template <
typename Component>
27 std::shared_ptr<internal::ViewBuf> sb;
28 mutable std::ostream os;
30 static constexpr std::nullptr_t TraitOk =
nullptr;
32 using EnableIfFormattable =
33 decltype(std::declval<std::ostream>() << std::declval<T>(), TraitOk);
35 using EnableIfInvocable =
36 decltype(std::declval<T>()(std::declval<View>()), TraitOk);
46 View &operator=(
View &&rhs)
noexcept;
51 using Field::lastName;
117 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
118 std::
nullptr_t> =
nullptr>
121 [callback = std::move(callback)](
const auto &) { callback(); });
130 template <
typename T>
132 onChange(std::forward<T>(callback));
140 const View &request()
const;
145 std::optional<std::vector<ViewComponent>> tryGet()
const;
150 std::vector<ViewComponent>
get()
const {
151 return tryGet().value_or(std::vector<ViewComponent>{});
167 [[deprecated]] std::chrono::system_clock::time_point time()
const;
173 const View &free()
const;
184 const View &init()
const;
194 template <
typename T, EnableIfFormattable<T> = TraitOk>
196 os << std::forward<T>(rhs);
209 template <
bool C2,
bool C3>
228 template <
typename F, EnableIfInvocable<F> = TraitOk>
242 template <
typename T>
244 *this << std::forward<T>(rhs);
255 const View &sync()
const;
262 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, View>,
263 std::
nullptr_t> =
nullptr>
265 return static_cast<Field>(*this) ==
static_cast<Field>(other);
267 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, View>,
268 std::
nullptr_t> =
nullptr>
270 return static_cast<Field>(*this) !=
static_cast<Field>(other);
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:69
Viewを構築するときに使う一時的なViewComponent.
Definition component_view.h:267
Viewの送受信データを表すクラス
Definition view.h:26
View(View &&rhs) noexcept
Definition view.h:44
const View & operator<<(T &&rhs) const
文字列にフォーマットし、textコンポーネントとして追加
Definition view.h:195
bool operator==(const T &other) const
Viewの参照先を比較
Definition view.h:264
const View & operator<<(std::ostream &(*os_manip)(std::ostream &)) const
Definition view.h:199
View operator[](int index) const
Definition view.h:96
const View & operator<<(TemporalComponent< true, C2, C3 > vc) const
コンポーネントを追加
Definition view.h:210
View operator[](std::wstring_view field) const
Definition view.h:82
View operator[](std::string_view field) const
Definition view.h:77
View(const View &rhs)
Definition view.h:43
const View & onChange(F callback) const
値が変化したときに呼び出されるコールバックを設定
Definition view.h:119
bool operator!=(const T &other) const
Definition view.h:269
std::vector< ViewComponent > get() const
Viewを取得する
Definition view.h:150
View operator[](const char *field) const
Definition view.h:87
void appendListener(T &&callback) const
Definition view.h:131
const View & operator<<(const F &manip) const
コンポーネントを追加
Definition view.h:229
View child(int index) const
Definition view.h:72
const View & add(T &&rhs) const
コンポーネントなどを追加
Definition view.h:243
View(const Field &base, const SharedString &field)
Definition view.h:41
View child(std::string_view field) const
「(thisの名前).(追加の名前)」を新しい名前とするField
Definition view.h:59
View child(std::wstring_view field) const
「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)
Definition view.h:66
View operator[](const wchar_t *field) const
Definition view.h:91
View parent() const
nameの最後のピリオドの前までを新しい名前とするField
Definition view.h:101
View,Canvasなどで送信用にaddされたデータを管理する
Definition data_buffer.h:17
std::ostream & operator<<(std::ostream &os, const Arg &arg)
Definition func_info.cc:96
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:70
Field parent() const
nameの最後のピリオドの前までを新しい名前とするField
Definition field.cc:33
Field child(const SharedString &field) const
Definition field.cc:42
Canvas2D, Canvas3D (, View) に要素をaddするときに使うインタフェース
Definition components.h:22
TemporalViewComponent component_v
Definition components.h:23
#define WEBCFACE_DLL
Definition webcface-config.h:60
#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