8#include "webcface/common/webcface-config.h"
55 : member_(member), field_() {}
57 : member_(member), field_(field) {}
59 : member_(base.member_), field_(field) {}
62 return this->member_ == rhs.
member_ && this->field_ == rhs.
field_;
77 std::weak_ptr<internal::ClientData>
data_w;
80 Field(
const std::weak_ptr<internal::ClientData> &data_w,
83 Field(
const std::weak_ptr<internal::ClientData> &data_w,
85 :
FieldBase(member, field), data_w(data_w) {}
87 :
FieldBase(base, field), data_w(base.data_w) {}
93 std::shared_ptr<internal::ClientData> dataLock()
const;
98 std::shared_ptr<internal::ClientData> setCheck()
const;
100 bool expired()
const;
106 template <WEBCFACE_COMPLETE(Member)>
136 std::string
lastName()
const {
return std::string(lastName8().decode()); }
142 return std::wstring(lastName8().decodeW());
148 Field parent()
const;
166 return child(std::to_string(index));
186 return child(std::to_string(index));
189 template <WEBCFACE_COMPLETE(Value)>
193 template <WEBCFACE_COMPLETE(Text)>
197 template <WEBCFACE_COMPLETE(RobotModel)>
201 template <WEBCFACE_COMPLETE(Image)>
205 template <WEBCFACE_COMPLETE(Func)>
209 template <WEBCFACE_COMPLETE(FuncListener)>
213 template <WEBCFACE_COMPLETE(View)>
217 template <WEBCFACE_COMPLETE(Canvas3D)>
221 template <WEBCFACE_COMPLETE(Canvas2D)>
228 template <WEBCFACE_COMPLETE(Log)>
245 std::vector<Field> children()
const;
255 std::vector<Field> childrenRecurse()
const;
262 bool hasChildren()
const;
269 template <WEBCFACE_COMPLETE(Value)>
276 template <WEBCFACE_COMPLETE(Text)>
284 template <WEBCFACE_COMPLETE(RobotModel)>
291 template <WEBCFACE_COMPLETE(Func)>
298 template <WEBCFACE_COMPLETE(View)>
306 template <WEBCFACE_COMPLETE(Canvas2D)>
314 template <WEBCFACE_COMPLETE(Canvas3D)>
321 template <WEBCFACE_COMPLETE(Image)>
328 template <WEBCFACE_COMPLETE(Log)>
343extern template std::vector<Value> Field::valueEntries<Value, true>()
const;
344extern template std::vector<Text> Field::textEntries<Text, true>()
const;
345extern template std::vector<RobotModel>
346Field::robotModelEntries<RobotModel, true>()
const;
347extern template std::vector<Func> Field::funcEntries<Func, true>()
const;
348extern template std::vector<View> Field::viewEntries<View, true>()
const;
349extern template std::vector<Canvas2D>
350Field::canvas2DEntries<Canvas2D, true>()
const;
351extern template std::vector<Canvas3D>
352Field::canvas3DEntries<Canvas3D, true>()
const;
353extern template std::vector<Image> Field::imageEntries<Image, true>()
const;
354extern template std::vector<Log> Field::logEntries<Log, true>()
const;
u8stringとstringとwstringをshared_ptrで持ち共有する
Definition encoding.h:159
SharedString のpublicなコンストラクタインタフェース (入力専用)
Definition encoding.h:215
webcfaceで管理されている文字列を参照するstring_view
Definition encoding.h:60
bool operator==(const T &other, const InputRef &ref)
Definition text.h:641
constexpr char field_separator
Definition field.h:31
constexpr std::string_view field_separator_sv
Definition field.h:32
メンバ名とデータ名を持つクラス
Definition field.h:38
bool operator==(const FieldBase &rhs) const
Definition field.h:61
SharedString member_
メンバー名
Definition field.h:43
FieldBase(const SharedString &member)
Definition field.h:54
bool operator!=(const FieldBase &rhs) const
Definition field.h:64
FieldBase(const SharedString &member, const SharedString &field)
Definition field.h:56
SharedString field_
フィールド名
Definition field.h:51
FieldBase(const FieldBase &base, const SharedString &field)
Definition field.h:58
ClientDataの参照とメンバ名とデータ名を持つクラス
Definition field.h:71
Text_ text(StringInitializer field=StringInitializer()) const
Definition field.h:194
StringView name() const
field名を返す
Definition field.h:116
Func_ func(StringInitializer field=StringInitializer()) const
Definition field.h:206
Field(const std::weak_ptr< internal::ClientData > &data_w, const SharedString &member, const SharedString &field)
Definition field.h:83
Log_ log(StringInitializer field=StringInitializer()) const
Definition field.h:229
std::vector< View_ > viewEntries() const
「(thisの名前).(追加の名前)」で公開されているviewのリストを返す。
Field child(int index) const
「(thisの名前).(index)」を新しい名前とするField
Definition field.h:165
Member_ member() const
Memberを返す
Definition field.h:107
Field(const std::weak_ptr< internal::ClientData > &data_w, const SharedString &member)
Definition field.h:80
FuncListener_ funcListener(StringInitializer field=StringInitializer()) const
Definition field.h:210
std::vector< Text_ > textEntries() const
「(thisの名前).(追加の名前)」で公開されているtextのリストを返す。
Field operator[](int index) const
「(thisの名前).(index)」を新しい名前とするField
Definition field.h:185
Field(const Field &base, const SharedString &field)
Definition field.h:86
bool operator!=(const Field &other) const
Definition field.h:340
std::vector< Image_ > imageEntries() const
「(thisの名前).(追加の名前)」で公開されているimageのリストを返す。
RobotModel_ robotModel(StringInitializer field=StringInitializer()) const
Definition field.h:198
std::vector< Log_ > logEntries() const
「(thisの名前).(追加の名前)」で公開されているlogのリストを返す。
Field child(StringInitializer field) const
「(thisの名前).(追加の名前)」を新しい名前とするField
Definition field.h:156
Canvas3D_ canvas3D(StringInitializer field=StringInitializer()) const
Definition field.h:218
std::vector< Func_ > funcEntries() const
「(thisの名前).(追加の名前)」で公開されているfuncのリストを返す。
std::string lastName() const
nameのうちピリオドで区切られた最後の部分を取り出す
Definition field.h:136
Canvas2D_ canvas2D(StringInitializer field=StringInitializer()) const
Definition field.h:222
std::vector< Value_ > valueEntries() const
「(thisの名前).(追加の名前)」で公開されているvalueのリストを返す。
Image_ image(StringInitializer field=StringInitializer()) const
Definition field.h:202
Field operator[](StringInitializer field) const
「(thisの名前).(追加の名前)」を新しい名前とするField
Definition field.h:175
std::weak_ptr< internal::ClientData > data_w
ClientDataの参照
Definition field.h:77
std::vector< Canvas3D_ > canvas3DEntries() const
「(thisの名前).(追加の名前)」で公開されているcanvas3Dのリストを返す。
View_ view(StringInitializer field=StringInitializer()) const
Definition field.h:214
std::wstring lastNameW() const
nameのうちピリオドで区切られた最後の部分を取り出す (wstring)
Definition field.h:141
std::vector< Canvas2D_ > canvas2DEntries() const
「(thisの名前).(追加の名前)」で公開されているcanvas2Dのリストを返す。
WStringView nameW() const
field名を返す (wstring)
Definition field.h:124
Value_ value(StringInitializer field=StringInitializer()) const
Definition field.h:190
std::vector< RobotModel_ > robotModelEntries() const
「(thisの名前).(追加の名前)」で公開されているrobotModelのリストを返す。
#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