9#include "webcface/common/webcface-config.h"
16template <
typename Component>
24 decltype(std::declval<std::ostream>() << std::declval<T>(),
TraitOk);
27 decltype(std::declval<T>()(std::declval<View>()), TraitOk);
37 std::shared_ptr<internal::ViewBuf> sb;
38 mutable std::ostream os;
48 View &operator=(
View &&rhs)
noexcept;
53 using Field::lastName;
105 return child(std::to_string(index));
127 template <
typename F,
typename std::enable_if_t<std::is_invocable_v<F>,
128 std::
nullptr_t> =
nullptr>
131 [callback = std::move(callback)](
const auto &) { callback(); });
140 template <
typename T>
142 onChange(std::forward<T>(callback));
150 const View &request()
const;
155 std::optional<std::vector<ViewComponent>> tryGet()
const;
160 std::vector<ViewComponent>
get()
const {
161 return tryGet().value_or(std::vector<ViewComponent>{});
177 [[deprecated]] std::chrono::system_clock::time_point time()
const;
183 const View &free()
const;
194 const View &init()
const;
204 template <
typename T, traits::EnableIfFormattable<T> = traits::TraitOk>
206 os << std::forward<T>(rhs);
219 template <
bool C2,
bool C3>
238 template <
typename F, traits::EnableIfViewInvocable<F> = traits::TraitOk>
252 template <
typename T>
254 *this << std::forward<T>(rhs);
267 return std::ostreambuf_iterator<char>(os);
285 const View &sync()
const;
292 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, View>,
293 std::
nullptr_t> =
nullptr>
295 return static_cast<Field>(*this) ==
static_cast<Field>(other);
297 template <
typename T,
typename std::enable_if_t<std::is_same_v<T, View>,
298 std::
nullptr_t> =
nullptr>
300 return static_cast<Field>(*this) !=
static_cast<Field>(other);
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:67
Viewを構築するときに使う一時的なViewComponent.
Definition component_view.h:286
Viewの送受信データを表すクラス
Definition view.h:36
View(View &&rhs) noexcept
Definition view.h:46
const View & operator<<(T &&rhs) const
文字列にフォーマットし、textコンポーネントとして追加
Definition view.h:205
bool operator==(const T &other) const
Viewの参照先を比較
Definition view.h:294
const View & operator<<(std::ostream &(*os_manip)(std::ostream &)) const
Definition view.h:209
View operator[](int index) const
Definition view.h:104
const View & operator<<(TemporalComponent< true, C2, C3 > vc) const
コンポーネントを追加
Definition view.h:220
View operator[](std::wstring_view field) const
Definition view.h:88
View operator[](std::string_view field) const
Definition view.h:83
View(const View &rhs)
Definition view.h:45
const View & onChange(F callback) const
値が変化したときに呼び出されるコールバックを設定
Definition view.h:129
std::ostream & ostream() const
このViewに文字列を出力するostreamを返す
Definition view.h:276
bool operator!=(const T &other) const
Definition view.h:299
std::vector< ViewComponent > get() const
Viewを取得する
Definition view.h:160
View operator[](const char *field) const
Definition view.h:93
void appendListener(T &&callback) const
Definition view.h:141
const View & operator<<(const F &manip) const
コンポーネントを追加
Definition view.h:239
View child(int index) const
Definition view.h:76
const View & add(T &&rhs) const
コンポーネントなどを追加
Definition view.h:253
View(const Field &base, const SharedString &field)
Definition view.h:43
View child(std::string_view field) const
「(thisの名前).(追加の名前)」を新しい名前とするField
Definition view.h:61
std::ostreambuf_iterator< char > inserter() const
このViewに文字列を出力する back inserter iterator を返す
Definition view.h:266
View child(std::wstring_view field) const
「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)
Definition view.h:68
View operator[](const wchar_t *field) const
Definition view.h:97
View parent() const
nameの最後のピリオドの前までを新しい名前とするField
Definition view.h:111
View,Canvasなどで送信用にaddされたデータを管理する
Definition data_buffer.h:17
decltype(std::declval< T >()(std::declval< View >()), TraitOk) EnableIfViewInvocable
Definition view.h:27
decltype(std::declval< std::ostream >()<< std::declval< T >(), TraitOk) EnableIfFormattable
Definition view.h:24
constexpr std::nullptr_t TraitOk
Definition trait.h:12
std::ostream & operator<<(std::ostream &os, const Arg &arg)
Definition func_info.cc:100
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:71
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:69
#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