WebCFace 2.9.0
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
Client Class Reference

サーバーに接続するクライアント。 More...

#include <webcface/client.h>

Inheritance diagram for Client:
[legend]
Collaboration diagram for Client:
[legend]

Public Member Functions

 Client (const Client &)=delete
 
const Clientoperator= (const Client &)=delete
 
 Client ()
 名前を指定せずサーバーに接続する
 
 Client (const std::string &name, const std::string &host="127.0.0.1", int port=7530)
 名前を指定しサーバーに接続する
 
 Client (const std::wstring &name, const std::wstring &host=L"127.0.0.1", int port=7530)
 名前を指定しサーバーに接続する (wstring)
 
 Client (const SharedString &name, const SharedString &host, int port)
 
 Client (const SharedString &name, const std::shared_ptr< internal::ClientData > &data)
 
bool connected () const
 サーバーに接続できているときtrueを返す
 
template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const ClientonDisconnect (F callback) const
 切断したときに呼び出されるコールバックを設定
 
template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const ClientonConnect (F callback) const
 サーバーに接続したときに呼び出されるコールバックを設定
 
 ~Client ()
 接続を切りClientを破棄
 
const Clientclose () const
 接続を切り、今後再接続しない
 
const ClientautoReconnect (bool enabled) const
 通信が切断されたときに自動で再試行するかどうかを設定する。
 
bool autoReconnect () const
 通信が切断されたときに自動で再試行するかどうかを取得する。
 
const Clientstart () const
 サーバーへの接続を別スレッドで開始する。
 
const ClientwaitConnection () const
 サーバーへの接続を別スレッドで開始し、成功するまで待機する。
 
const Clientsync () const
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
 
const ClientloopSyncFor (std::chrono::microseconds timeout) const
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
 
template<typename Clock , typename Duration >
const ClientloopSyncUntil (std::chrono::time_point< Clock, Duration > timeout) const
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
 
const ClientloopSync () const
 送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。
 
Member member (std::string_view name) const
 他のmemberにアクセスする
 
Member member (std::wstring_view name) const
 他のmemberにアクセスする (wstring)
 
std::vector< Membermembers ()
 サーバーに接続されている他のmemberのリストを得る。
 
std::vector< Membermembers () const
 サーバーに接続されている他のmemberのリストを得る。
 
const ClientonMemberEntry (std::function< void(Member)> callback) const
 Memberが追加された時のイベント
 
std::streambuf * loggerStreamBuf () const
 webcfaceに出力するstreambuf
 
std::streambuf * loggerStreamBuf (std::string_view name) const
 webcfaceに出力するstreambuf
 
std::ostream & loggerOStream () const
 webcfaceに出力するostream
 
std::ostream & loggerOStream (std::string_view name) const
 webcfaceに出力するostream
 
std::wstreambuf * loggerWStreamBuf () const
 webcfaceに出力するwstreambuf
 
std::wstreambuf * loggerWStreamBuf (std::wstring_view name) const
 webcfaceに出力するwstreambuf
 
std::wostream & loggerWOStream () const
 webcfaceに出力するwostream
 
std::wostream & loggerWOStream (std::wstring_view name) const
 webcfaceに出力するwostream
 
const std::string & serverVersion () const
 WebCFaceサーバーのバージョン情報
 
const std::string & serverName () const
 WebCFaceサーバーの識別情報
 
const std::string & serverHostName () const
 サーバーのホスト名
 
const std::string & name () const
 Member名
 
const std::wstring & nameW () const
 Member名 (wstring)
 
template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
Log_ log (std::string_view name) const
 
template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
Log_ log (std::wstring_view name) const
 
template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
Log_ log () const
 
template<typename T , bool >
log () const
 
std::vector< Valuevalues () const
 このmemberが公開しているvalueのリストを返す。
 
std::vector< Texttexts () const
 このmemberが公開しているtextのリストを返す。
 
std::vector< RobotModelrobotModels () const
 このmemberが公開しているrobotModelのリストを返す。
 
std::vector< Funcfuncs () const
 このmemberが公開しているfuncのリストを返す。
 
std::vector< Viewviews () const
 このmemberが公開しているviewのリストを返す。
 
std::vector< Imageimages () const
 このmemberが公開しているimageのリストを返す。
 
bool exists () const
 Memberのデータが存在するかどうかを返す
 
const MemberonDisconnect (std::function< void(Member)> callback) const
 Memberが切断したときに呼び出されるコールバックを設定
 
const MemberonConnect (std::function< void(Member)> callback) const
 Memberがサーバーに接続したときに呼び出されるコールバックを設定
 
const MemberonValueEntry (std::function< void(Value)> callback) const
 valueが追加された時のイベント
 
const MemberonTextEntry (std::function< void(Text)> callback) const
 textが追加された時のイベント
 
const MemberonRobotModelEntry (std::function< void(RobotModel)> callback) const
 robotModelが追加された時のイベント
 
const MemberonFuncEntry (std::function< void(Func)> callback) const
 funcが追加された時のイベント
 
const MemberonImageEntry (std::function< void(Image)> callback) const
 imageが追加されたときのイベント
 
const MemberonViewEntry (std::function< void(View)> callback) const
 viewが追加されたときのイベント
 
const MemberonCanvas3DEntry (std::function< void(Canvas3D)> callback) const
 canvas3dが追加されたときのイベント
 
const MemberonCanvas2DEntry (std::function< void(Canvas2D)> callback) const
 canvas2dが追加されたときのイベント
 
const MemberonLogEntry (std::function< void(Log)> callback) const
 logが追加されたときのイベント
 
const MemberonSync (std::function< void(Member)> callback) const
 Memberがsync()したときのイベント
 
template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const MemberonSync (F callback) const
 Memberがsync()したときのイベント
 
std::chrono::system_clock::time_point syncTime () const
 最後のsync()の時刻を返す
 
const std::string & libName () const
 このMemberが使っているWebCFaceライブラリの識別情報
 
const std::string & libVersion () const
 このMemberが使っているWebCFaceのバージョン
 
const std::string & remoteAddr () const
 このMemberのIPアドレス
 
std::optional< int > pingStatus () const
 通信速度を調べる
 
const MemberonPing (std::function< void(Member)> callback) const
 通信速度が更新された時のイベント
 
template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const MemberonPing (F callback) const
 通信速度が更新された時のイベント
 
template<typename T , typename std::enable_if_t< std::is_same_v< T, Member >, std::nullptr_t > = nullptr>
bool operator== (const T &other) const
 Memberを比較
 
template<typename T , typename std::enable_if_t< std::is_same_v< T, Member >, std::nullptr_t > = nullptr>
bool operator!= (const T &other) const
 
Field child (const SharedString &field) const
 
Field child (std::string_view field) const
 「(thisの名前).(追加の名前)」を新しい名前とするField
 
Field child (std::wstring_view field) const
 「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)
 
Field child (int index) const
 「(thisの名前).(index)」を新しい名前とするField
 
template<typename Canvas2D_ = Canvas2D, bool = ::webcface::traits::assertCompleteCanvas2D < std::enable_if_t<std::is_same_v< Canvas2D_, Canvas2D >, Canvas2D_>>()>
Canvas2D_ canvas2D (std::string_view field="") const
 
template<typename Canvas2D_ = Canvas2D, bool = ::webcface::traits::assertCompleteCanvas2D < std::enable_if_t<std::is_same_v< Canvas2D_, Canvas2D >, Canvas2D_>>()>
Canvas2D_ canvas2D (std::wstring_view field) const
 
template<typename Canvas3D_ = Canvas3D, bool = ::webcface::traits::assertCompleteCanvas3D < std::enable_if_t<std::is_same_v< Canvas3D_, Canvas3D >, Canvas3D_>>()>
Canvas3D_ canvas3D (std::string_view field="") const
 
template<typename Canvas3D_ = Canvas3D, bool = ::webcface::traits::assertCompleteCanvas3D < std::enable_if_t<std::is_same_v< Canvas3D_, Canvas3D >, Canvas3D_>>()>
Canvas3D_ canvas3D (std::wstring_view field) const
 
template<typename Func_ = Func, bool = ::webcface::traits::assertCompleteFunc < std::enable_if_t<std::is_same_v< Func_, Func >, Func_>>()>
Func_ func (std::string_view field="") const
 
template<typename Func_ = Func, bool = ::webcface::traits::assertCompleteFunc < std::enable_if_t<std::is_same_v< Func_, Func >, Func_>>()>
Func_ func (std::wstring_view field) const
 
template<typename FuncListener_ = FuncListener, bool = ::webcface::traits::assertCompleteFuncListener < std::enable_if_t<std::is_same_v< FuncListener_, FuncListener >, FuncListener_>>()>
FuncListener_ funcListener (std::string_view field="") const
 
template<typename FuncListener_ = FuncListener, bool = ::webcface::traits::assertCompleteFuncListener < std::enable_if_t<std::is_same_v< FuncListener_, FuncListener >, FuncListener_>>()>
FuncListener_ funcListener (std::wstring_view field) const
 
template<typename Image_ = Image, bool = ::webcface::traits::assertCompleteImage < std::enable_if_t<std::is_same_v< Image_, Image >, Image_>>()>
Image_ image (std::string_view field="") const
 
template<typename Image_ = Image, bool = ::webcface::traits::assertCompleteImage < std::enable_if_t<std::is_same_v< Image_, Image >, Image_>>()>
Image_ image (std::wstring_view field) const
 
template<typename RobotModel_ = RobotModel, bool = ::webcface::traits::assertCompleteRobotModel < std::enable_if_t<std::is_same_v< RobotModel_, RobotModel >, RobotModel_>>()>
RobotModel_ robotModel (std::string_view field="") const
 
template<typename RobotModel_ = RobotModel, bool = ::webcface::traits::assertCompleteRobotModel < std::enable_if_t<std::is_same_v< RobotModel_, RobotModel >, RobotModel_>>()>
RobotModel_ robotModel (std::wstring_view field) const
 
template<typename Text_ = Text, bool = ::webcface::traits::assertCompleteText < std::enable_if_t<std::is_same_v< Text_, Text >, Text_>>()>
Text_ text (std::string_view field="") const
 
template<typename Text_ = Text, bool = ::webcface::traits::assertCompleteText < std::enable_if_t<std::is_same_v< Text_, Text >, Text_>>()>
Text_ text (std::wstring_view field) const
 
template<typename Value_ = Value, bool = ::webcface::traits::assertCompleteValue < std::enable_if_t<std::is_same_v< Value_, Value >, Value_>>()>
Value_ value (std::string_view field="") const
 
template<typename Value_ = Value, bool = ::webcface::traits::assertCompleteValue < std::enable_if_t<std::is_same_v< Value_, Value >, Value_>>()>
Value_ value (std::wstring_view field) const
 
template<typename View_ = View, bool = ::webcface::traits::assertCompleteView < std::enable_if_t<std::is_same_v< View_, View >, View_>>()>
View_ view (std::string_view field="") const
 
template<typename View_ = View, bool = ::webcface::traits::assertCompleteView < std::enable_if_t<std::is_same_v< View_, View >, View_>>()>
View_ view (std::wstring_view field) const
 
template<typename Canvas2D_ = Canvas2D, bool = ::webcface::traits::assertCompleteCanvas2D < std::enable_if_t<std::is_same_v< Canvas2D_, Canvas2D >, Canvas2D_>>()>
std::vector< Canvas2D_ > canvas2DEntries () const
 「(thisの名前).(追加の名前)」で公開されているcanvas2Dのリストを返す。
 
template<typename T , bool >
std::vector< T > canvas2DEntries () const
 
template<typename Canvas3D_ = Canvas3D, bool = ::webcface::traits::assertCompleteCanvas3D < std::enable_if_t<std::is_same_v< Canvas3D_, Canvas3D >, Canvas3D_>>()>
std::vector< Canvas3D_ > canvas3DEntries () const
 「(thisの名前).(追加の名前)」で公開されているcanvas3Dのリストを返す。
 
template<typename T , bool >
std::vector< T > canvas3DEntries () const
 
std::vector< Fieldchildren () const
 「(thisの名前).(追加の名前)」で公開されているデータのリスト
 
std::vector< FieldchildrenRecurse () const
 「(thisの名前).(追加の名前)」で公開されているデータのリスト(再帰)
 
template<typename Func_ = Func, bool = ::webcface::traits::assertCompleteFunc < std::enable_if_t<std::is_same_v< Func_, Func >, Func_>>()>
std::vector< Func_ > funcEntries () const
 「(thisの名前).(追加の名前)」で公開されているfuncのリストを返す。
 
template<typename T , bool >
std::vector< T > funcEntries () const
 
bool hasChildren () const
 「(thisの名前).(追加の名前)」で公開されているデータが存在するかどうかを返す
 
template<typename Image_ = Image, bool = ::webcface::traits::assertCompleteImage < std::enable_if_t<std::is_same_v< Image_, Image >, Image_>>()>
std::vector< Image_ > imageEntries () const
 「(thisの名前).(追加の名前)」で公開されているimageのリストを返す。
 
template<typename T , bool >
std::vector< T > imageEntries () const
 
template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
std::vector< Log_ > logEntries () const
 「(thisの名前).(追加の名前)」で公開されているlogのリストを返す。
 
template<typename T , bool >
std::vector< T > logEntries () const
 
template<typename RobotModel_ = RobotModel, bool = ::webcface::traits::assertCompleteRobotModel < std::enable_if_t<std::is_same_v< RobotModel_, RobotModel >, RobotModel_>>()>
std::vector< RobotModel_ > robotModelEntries () const
 「(thisの名前).(追加の名前)」で公開されているrobotModelのリストを返す。
 
template<typename T , bool >
std::vector< T > robotModelEntries () const
 
template<typename Text_ = Text, bool = ::webcface::traits::assertCompleteText < std::enable_if_t<std::is_same_v< Text_, Text >, Text_>>()>
std::vector< Text_ > textEntries () const
 「(thisの名前).(追加の名前)」で公開されているtextのリストを返す。
 
template<typename T , bool >
std::vector< T > textEntries () const
 
template<typename Value_ = Value, bool = ::webcface::traits::assertCompleteValue < std::enable_if_t<std::is_same_v< Value_, Value >, Value_>>()>
std::vector< Value_ > valueEntries () const
 「(thisの名前).(追加の名前)」で公開されているvalueのリストを返す。
 
template<typename T , bool >
std::vector< T > valueEntries () const
 
template<typename View_ = View, bool = ::webcface::traits::assertCompleteView < std::enable_if_t<std::is_same_v< View_, View >, View_>>()>
std::vector< View_ > viewEntries () const
 「(thisの名前).(追加の名前)」で公開されているviewのリストを返す。
 
template<typename T , bool >
std::vector< T > viewEntries () const
 
template<typename Member_ = Member, bool = ::webcface::traits::assertCompleteMember < std::enable_if_t<std::is_same_v< Member_, Member >, Member_>>()>
Member_ member () const
 Memberを返す
 

Protected Member Functions

bool operator== (const Field &other) const
 
bool operator== (const FieldBase &rhs) const
 
bool operator!= (const Field &other) const
 
bool operator!= (const FieldBase &rhs) const
 
std::shared_ptr< internal::ClientDatadataLock () const
 data_wをlockし、失敗したらruntime_errorを投げる
 
std::shared_ptr< internal::ClientDatasetCheck () const
 data_wをlockし、memberがselfではなければinvalid_argumentを投げる
 
bool expired () const
 
SharedString lastName8 () const
 
std::string lastName () const
 nameのうちピリオドで区切られた最後の部分を取り出す
 
std::wstring lastNameW () const
 nameのうちピリオドで区切られた最後の部分を取り出す (wstring)
 
Field parent () const
 nameの最後のピリオドの前までを新しい名前とするField
 
Field operator[] (std::string_view field) const
 「(thisの名前).(追加の名前)」を新しい名前とするField
 
Field operator[] (std::wstring_view field) const
 「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)
 
Field operator[] (int index) const
 「(thisの名前).(index)」を新しい名前とするField
 
bool isSelf () const
 memberがselfならtrue
 

Protected Attributes

std::weak_ptr< internal::ClientDatadata_w
 ClientDataの参照
 
SharedString member_
 メンバー名
 
SharedString field_
 フィールド名
 

Detailed Description

サーバーに接続するクライアント。

Constructor & Destructor Documentation

◆ Client() [1/6]

Client ( const Client )
delete

◆ Client() [2/6]

Client ( )
inline

名前を指定せずサーバーに接続する

サーバーのホストとポートはlocalhost:7530になる

◆ Client() [3/6]

Client ( const std::string &  name,
const std::string &  host = "127.0.0.1",
int  port = 7530 
)
inlineexplicit

名前を指定しサーバーに接続する

サーバーのホストとポートを省略した場合 127.0.0.1:7530 になる

  • name 名前
  • host サーバーのアドレス
  • port サーバーのポート

◆ Client() [4/6]

Client ( const std::wstring &  name,
const std::wstring &  host = L"127.0.0.1",
int  port = 7530 
)
inlineexplicit

名前を指定しサーバーに接続する (wstring)

Since
ver2.0

サーバーのホストとポートを省略した場合 127.0.0.1:7530 になる

  • name 名前
  • host サーバーのアドレス
  • port サーバーのポート

◆ Client() [5/6]

Client ( const SharedString name,
const SharedString host,
int  port 
)
explicit

◆ Client() [6/6]

Client ( const SharedString name,
const std::shared_ptr< internal::ClientData > &  data 
)
explicit

◆ ~Client()

~Client ( )

接続を切りClientを破棄

Member Function Documentation

◆ autoReconnect() [1/2]

bool autoReconnect ( ) const

通信が切断されたときに自動で再試行するかどうかを取得する。

Since
ver1.11.1

◆ autoReconnect() [2/2]

const Client & autoReconnect ( bool  enabled) const

通信が切断されたときに自動で再試行するかどうかを設定する。

Since
ver1.11.1

デフォルトはtrue

See also
start(), waitConnection()

◆ canvas2D() [1/2]

template<typename Canvas2D_ = Canvas2D, bool = ::webcface::traits::assertCompleteCanvas2D < std::enable_if_t<std::is_same_v< Canvas2D_, Canvas2D >, Canvas2D_>>()>
Canvas2D_ canvas2D ( std::string_view  field = "") const
inlineinherited

◆ canvas2D() [2/2]

template<typename Canvas2D_ = Canvas2D, bool = ::webcface::traits::assertCompleteCanvas2D < std::enable_if_t<std::is_same_v< Canvas2D_, Canvas2D >, Canvas2D_>>()>
Canvas2D_ canvas2D ( std::wstring_view  field) const
inlineinherited

◆ canvas2DEntries() [1/2]

template<typename Canvas2D_ = Canvas2D, bool = ::webcface::traits::assertCompleteCanvas2D < std::enable_if_t<std::is_same_v< Canvas2D_, Canvas2D >, Canvas2D_>>()>
template std::vector< Canvas2D > canvas2DEntries< Canvas2D, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているcanvas2Dのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ canvas2DEntries() [2/2]

template<typename T , bool >
template std::vector< Canvas2D > canvas2DEntries< Canvas2D, true > ( ) const
inherited

◆ canvas3D() [1/2]

template<typename Canvas3D_ = Canvas3D, bool = ::webcface::traits::assertCompleteCanvas3D < std::enable_if_t<std::is_same_v< Canvas3D_, Canvas3D >, Canvas3D_>>()>
Canvas3D_ canvas3D ( std::string_view  field = "") const
inlineinherited

◆ canvas3D() [2/2]

template<typename Canvas3D_ = Canvas3D, bool = ::webcface::traits::assertCompleteCanvas3D < std::enable_if_t<std::is_same_v< Canvas3D_, Canvas3D >, Canvas3D_>>()>
Canvas3D_ canvas3D ( std::wstring_view  field) const
inlineinherited

◆ canvas3DEntries() [1/2]

template<typename T , bool >
template std::vector< Canvas3D > canvas3DEntries< Canvas3D, true > ( ) const
inherited

◆ canvas3DEntries() [2/2]

template<typename Canvas3D_ = Canvas3D, bool = ::webcface::traits::assertCompleteCanvas3D < std::enable_if_t<std::is_same_v< Canvas3D_, Canvas3D >, Canvas3D_>>()>
template std::vector< Canvas3D > canvas3DEntries< Canvas3D, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているcanvas3Dのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ child() [1/4]

Field child ( const SharedString field) const
inherited

◆ child() [2/4]

Field child ( int  index) const
inlineinherited

「(thisの名前).(index)」を新しい名前とするField

Since
ver1.11
Deprecated:
ver2.8〜

◆ child() [3/4]

Field child ( std::string_view  field) const
inlineinherited

「(thisの名前).(追加の名前)」を新しい名前とするField

Since
ver1.11

◆ child() [4/4]

Field child ( std::wstring_view  field) const
inlineinherited

「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)

Since
ver2.0

◆ children()

std::vector< Field > children ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているデータのリスト

Since
ver2.6
  • データ型を問わずすべてのデータを列挙する。
  • childrenRecurse() と異なり、 名前にさらにピリオドが含まれる場合はその前までの名前を返す。
  • 同名で複数のデータが存在する場合も1回のみカウントする。
See also
childrenRecurse(), hasChildren()

◆ childrenRecurse()

std::vector< Field > childrenRecurse ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているデータのリスト(再帰)

Since
ver2.6
  • データ型を問わずすべてのデータを列挙する。
  • 同名で複数のデータが存在する場合も1回のみカウントする。
See also
children(), hasChildren()

◆ close()

const Client & close ( ) const

接続を切り、今後再接続しない

◆ connected()

bool connected ( ) const

サーバーに接続できているときtrueを返す

◆ dataLock()

std::shared_ptr< internal::ClientData > dataLock ( ) const
inherited

data_wをlockし、失敗したらruntime_errorを投げる

◆ exists()

bool exists ( ) const
inherited

Memberのデータが存在するかどうかを返す

Since
ver2.9
  • connected() とは異なり、切断後もサーバーにデータが残っていてまだデータを受信でき、trueになる場合がある

◆ expired()

bool expired ( ) const
inherited

◆ func() [1/2]

template<typename Func_ = Func, bool = ::webcface::traits::assertCompleteFunc < std::enable_if_t<std::is_same_v< Func_, Func >, Func_>>()>
Func_ func ( std::string_view  field = "") const
inlineinherited

◆ func() [2/2]

template<typename Func_ = Func, bool = ::webcface::traits::assertCompleteFunc < std::enable_if_t<std::is_same_v< Func_, Func >, Func_>>()>
Func_ func ( std::wstring_view  field) const
inlineinherited

◆ funcEntries() [1/2]

template<typename Func_ = Func, bool = ::webcface::traits::assertCompleteFunc < std::enable_if_t<std::is_same_v< Func_, Func >, Func_>>()>
template std::vector< Func > funcEntries< Func, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているfuncのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ funcEntries() [2/2]

template<typename T , bool >
template std::vector< Func > funcEntries< Func, true > ( ) const
inherited

◆ funcListener() [1/2]

template<typename FuncListener_ = FuncListener, bool = ::webcface::traits::assertCompleteFuncListener < std::enable_if_t<std::is_same_v< FuncListener_, FuncListener >, FuncListener_>>()>
FuncListener_ funcListener ( std::string_view  field = "") const
inlineinherited

◆ funcListener() [2/2]

template<typename FuncListener_ = FuncListener, bool = ::webcface::traits::assertCompleteFuncListener < std::enable_if_t<std::is_same_v< FuncListener_, FuncListener >, FuncListener_>>()>
FuncListener_ funcListener ( std::wstring_view  field) const
inlineinherited

◆ funcs()

std::vector< Func > funcs ( ) const
inherited

このmemberが公開しているfuncのリストを返す。

Deprecated:
1.6で funcEntries() に変更

◆ hasChildren()

bool hasChildren ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているデータが存在するかどうかを返す

Since
ver2.6
See also
children(), childrenRecurse()

◆ image() [1/2]

template<typename Image_ = Image, bool = ::webcface::traits::assertCompleteImage < std::enable_if_t<std::is_same_v< Image_, Image >, Image_>>()>
Image_ image ( std::string_view  field = "") const
inlineinherited

◆ image() [2/2]

template<typename Image_ = Image, bool = ::webcface::traits::assertCompleteImage < std::enable_if_t<std::is_same_v< Image_, Image >, Image_>>()>
Image_ image ( std::wstring_view  field) const
inlineinherited

◆ imageEntries() [1/2]

template<typename T , bool >
template std::vector< Image > imageEntries< Image, true > ( ) const
inherited

◆ imageEntries() [2/2]

template<typename Image_ = Image, bool = ::webcface::traits::assertCompleteImage < std::enable_if_t<std::is_same_v< Image_, Image >, Image_>>()>
template std::vector< Image > imageEntries< Image, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているimageのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ images()

std::vector< Image > images ( ) const
inherited

このmemberが公開しているimageのリストを返す。

Deprecated:
1.6で imageEntries() に変更

◆ isSelf()

bool isSelf ( ) const
inherited

memberがselfならtrue

data_wがlockできなければruntime_errorを投げる

◆ lastName()

std::string lastName ( ) const
inlineinherited

nameのうちピリオドで区切られた最後の部分を取り出す

Since
ver1.11

◆ lastName8()

SharedString lastName8 ( ) const
protectedinherited

◆ lastNameW()

std::wstring lastNameW ( ) const
inlineinherited

nameのうちピリオドで区切られた最後の部分を取り出す (wstring)

Since
ver2.0

◆ libName()

const std::string & libName ( ) const
inherited

このMemberが使っているWebCFaceライブラリの識別情報

Returns
このライブラリの場合は"cpp", javascriptクライアントは"js", pythonクライアントは"python"を返す。

◆ libVersion()

const std::string & libVersion ( ) const
inherited

このMemberが使っているWebCFaceのバージョン

◆ log() [1/4]

template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
template Log log< Log, true > ( ) const
inherited

ver2.4〜: nameを省略した場合 "default" として送信される。

◆ log() [2/4]

template<typename T , bool >
template Log log< Log, true > ( ) const
inherited

◆ log() [3/4]

template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
Log_ log ( std::string_view  name) const
inlineinherited
Since
ver2.4

◆ log() [4/4]

template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
Log_ log ( std::wstring_view  name) const
inlineinherited
Since
ver2.4

◆ logEntries() [1/2]

template<typename Log_ = Log, bool = ::webcface::traits::assertCompleteLog < std::enable_if_t<std::is_same_v< Log_, Log >, Log_>>()>
template std::vector< Log > logEntries< Log, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているlogのリストを返す。

Since
ver2.4
See also
childrenRecurse()

◆ logEntries() [2/2]

template<typename T , bool >
template std::vector< Log > logEntries< Log, true > ( ) const
inherited

◆ loggerOStream() [1/2]

std::ostream & loggerOStream ( ) const

webcfaceに出力するostream

  • (ver1.11.xまで: 出力先が loggerStreamBuf() に設定されているostream。 すなわち、loggerSink (webcfaceに送られる) と stderr_color_sink_mt (標準エラー出力に送られる) に出力されることになる。)
  • ver2.0〜: std::ostreamの出力先として使用すると、改行が入力されるたびに webcfaceに送られると同時に stderr にも送られる。
  • ver1.0.1で logger_ostream から名前変更
See also
loggerStreamBuf()

◆ loggerOStream() [2/2]

std::ostream & loggerOStream ( std::string_view  name) const

webcfaceに出力するostream

Since
ver2.4
  • nameを省略した場合 "default" になる。

◆ loggerStreamBuf() [1/2]

std::streambuf * loggerStreamBuf ( ) const

webcfaceに出力するstreambuf

  • (ver1.11.xまで: std::ostreamの出力先として使用すると、logger()に送られる。 すなわち、loggerSink (webcfaceに送られる) と stderr_color_sink_mt (標準エラー出力に送られる) に出力されることになる。)
  • ver2.0〜: std::ostreamの出力先として使用すると、改行が入力されるたびに webcfaceに送られると同時に stderr にも送られる。
  • levelは常にinfoになる。
  • std::flushのタイミングとは無関係に、1つの改行ごとに1つのログになる
  • ver1.0.1で logger_streambuf から名前変更
See also
loggerOStream()

◆ loggerStreamBuf() [2/2]

std::streambuf * loggerStreamBuf ( std::string_view  name) const

webcfaceに出力するstreambuf

Since
ver2.4
  • nameを省略した場合 "default" になる。

◆ loggerWOStream() [1/2]

std::wostream & loggerWOStream ( ) const

webcfaceに出力するwostream

Since
ver2.0
See also
loggerOStream

◆ loggerWOStream() [2/2]

std::wostream & loggerWOStream ( std::wstring_view  name) const

webcfaceに出力するwostream

Since
ver2.4
  • nameを省略した場合 "default" になる。

◆ loggerWStreamBuf() [1/2]

std::wstreambuf * loggerWStreamBuf ( ) const

webcfaceに出力するwstreambuf

Since
ver2.0
See also
loggerStreamBuf

◆ loggerWStreamBuf() [2/2]

std::wstreambuf * loggerWStreamBuf ( std::wstring_view  name) const

webcfaceに出力するwstreambuf

Since
ver2.4
  • nameを省略した場合 "default" になる。

◆ loopSync()

const Client & loopSync ( ) const
inline

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。

Since
ver2.0
  • loopSyncFor()と同じだが、close()されるまで無制限にsync()を再試行する。
  • autoReconnectがfalseでサーバーに接続できてない場合はreturnする。 (deadlock回避)
See also
sync(), loopSyncFor(), loopSyncUntil()

◆ loopSyncFor()

const Client & loopSyncFor ( std::chrono::microseconds  timeout) const
inline

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。

Since
ver2.0
  • sync()と同じだが、データを受信してもしなくても timeout 経過するまでは繰り返しsync()を再試行する。 timeout=0 または負の値なら再試行せず即座にreturnする。(sync()と同じ)
  • autoReconnectがfalseでサーバーに接続できてない場合はreturnする。 (deadlock回避)
See also
sync(), loopSyncUntil(), loopSync()

◆ loopSyncUntil()

template<typename Clock , typename Duration >
const Client & loopSyncUntil ( std::chrono::time_point< Clock, Duration >  timeout) const
inline

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。

Since
ver2.0

loopSyncFor() と同じだが、timeoutを絶対時間で指定

See also
sync(), loopSyncFor(), loopSync()

◆ member() [1/3]

template<typename Member_ = Member, bool = ::webcface::traits::assertCompleteMember < std::enable_if_t<std::is_same_v< Member_, Member >, Member_>>()>
Member_ member ( ) const
inlineinherited

Memberを返す

◆ member() [2/3]

Member member ( std::string_view  name) const
inline

他のmemberにアクセスする

      \brief 別スレッドでsync()を自動的に呼び出す間隔を設定する。
      \since ver2.0

      * start() や waitConnection() より前に設定する必要がある。
      *

autoSyncが有効の場合、別スレッドで一定間隔(100μs)ごとにsync()が呼び出され、 各種コールバック (onEntry, onChange, Func::run()など) も別のスレッドで呼ばれることになる (そのためmutexなどを適切に設定すること)

  • デフォルトでは無効なので、手動でsync()などを呼び出す必要がある
Parameters
enabledtrueにすると自動でsync()が呼び出されるようになる
See also
sync(), loopSyncFor(), loopSyncUntil(), loopSync() ‍/ void autoSync(bool enabled);

private: Member member(const SharedString &name) const { if (name.empty()) { return *this; } else { return Member{data, name}; } }

public: /*!

(ver1.7から)nameが空の場合 *this を返す

See also
members(), onMemberEntry()

◆ member() [3/3]

Member member ( std::wstring_view  name) const
inline

他のmemberにアクセスする (wstring)

Since
ver2.0 nameが空の場合 *this を返す
See also
members(), onMemberEntry()

◆ members() [1/2]

std::vector< Member > members ( )

サーバーに接続されている他のmemberのリストを得る。

自分自身と、無名のmemberを除く。

See also
member(), onMemberEntry()

◆ members() [2/2]

std::vector< Member > members ( ) const

サーバーに接続されている他のmemberのリストを得る。

Since
ver2.0.2 (constつけ忘れ)

自分自身と、無名のmemberを除く。

See also
member(), onMemberEntry()

◆ name()

const std::string & name ( ) const
inlineinherited

Member名

◆ nameW()

const std::wstring & nameW ( ) const
inlineinherited

Member名 (wstring)

Since
ver2.0

◆ onCanvas2DEntry()

const Member & onCanvas2DEntry ( std::function< void(Canvas2D)>  callback) const
inherited

canvas2dが追加されたときのイベント

Since
ver2.0
Parameters
callbackCanvas2D型の引数をとる関数

◆ onCanvas3DEntry()

const Member & onCanvas3DEntry ( std::function< void(Canvas3D)>  callback) const
inherited

canvas3dが追加されたときのイベント

Since
ver2.0
Parameters
callbackCanvas3D型の引数をとる関数

◆ onConnect() [1/2]

template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const Client & onConnect ( callback) const
inline

サーバーに接続したときに呼び出されるコールバックを設定

Since
ver2.9
Parameters
callback引数をとらない関数

◆ onConnect() [2/2]

const Member & onConnect ( std::function< void(Member)>  callback) const
inherited

Memberがサーバーに接続したときに呼び出されるコールバックを設定

Since
ver2.9
Parameters
callbackMember型の引数(thisが渡される)を1つ取る関数

◆ onDisconnect() [1/2]

template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const Client & onDisconnect ( callback) const
inline

切断したときに呼び出されるコールバックを設定

Since
ver2.9
Parameters
callback引数をとらない関数
  • 通信が切断されて以降で最初のsync()の中で呼ばれる

◆ onDisconnect() [2/2]

const Member & onDisconnect ( std::function< void(Member)>  callback) const
inherited

Memberが切断したときに呼び出されるコールバックを設定

Since
ver2.9
Parameters
callbackMember型の引数(thisが渡される)を1つ取る関数
  • 自身のサーバーとの通信が切断された場合も、全メンバーについて呼び出される。

◆ onFuncEntry()

const Member & onFuncEntry ( std::function< void(Func)>  callback) const
inherited

funcが追加された時のイベント

Since
ver2.0
Parameters
callbackFunc型の引数をとる関数

◆ onImageEntry()

const Member & onImageEntry ( std::function< void(Image)>  callback) const
inherited

imageが追加されたときのイベント

Since
ver2.0
Parameters
callbackImage型の引数をとる関数

◆ onLogEntry()

const Member & onLogEntry ( std::function< void(Log)>  callback) const
inherited

logが追加されたときのイベント

Since
ver2.4
Parameters
callbackLog型の引数をとる関数

◆ onMemberEntry()

const Client & onMemberEntry ( std::function< void(Member)>  callback) const

Memberが追加された時のイベント

コールバックの型は void(Member)

See also
member(), members()

◆ onPing() [1/2]

template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const Member & onPing ( callback) const
inlineinherited

通信速度が更新された時のイベント

Since
ver2.0
Parameters
callback引数をとらない関数

◆ onPing() [2/2]

const Member & onPing ( std::function< void(Member)>  callback) const
inherited

通信速度が更新された時のイベント

Since
ver2.0
  • 通常は約5秒に1回更新される。
  • pingStatus() と同様、通信速度データのリクエストも行う。
  • ver2.0〜 Client自身に対しても使用可能
Parameters
callbackMember型の引数を取る関数
See also
pingStatus()

◆ onRobotModelEntry()

const Member & onRobotModelEntry ( std::function< void(RobotModel)>  callback) const
inherited

robotModelが追加された時のイベント

Since
ver2.0
Parameters
callbackRobotModel型の引数をとる関数

◆ onSync() [1/2]

template<typename F , typename std::enable_if_t< std::is_invocable_v< F >, std::nullptr_t > = nullptr>
const Member & onSync ( callback) const
inlineinherited

Memberがsync()したときのイベント

Since
ver2.0
Parameters
callback引数をとらない関数

◆ onSync() [2/2]

const Member & onSync ( std::function< void(Member)>  callback) const
inherited

Memberがsync()したときのイベント

Since
ver2.0
Parameters
callbackMember型の引数をとる関数

◆ onTextEntry()

const Member & onTextEntry ( std::function< void(Text)>  callback) const
inherited

textが追加された時のイベント

Since
ver2.0
Parameters
callbackText型の引数をとる関数

◆ onValueEntry()

const Member & onValueEntry ( std::function< void(Value)>  callback) const
inherited

valueが追加された時のイベント

Since
ver2.0
Parameters
callbackValue型の引数をとる関数

◆ onViewEntry()

const Member & onViewEntry ( std::function< void(View)>  callback) const
inherited

viewが追加されたときのイベント

Since
ver2.0
Parameters
callbackView型の引数をとる関数

◆ operator!=() [1/3]

bool operator!= ( const Field other) const
inlineinherited

◆ operator!=() [2/3]

bool operator!= ( const FieldBase rhs) const
inlineinherited

◆ operator!=() [3/3]

template<typename T , typename std::enable_if_t< std::is_same_v< T, Member >, std::nullptr_t > = nullptr>
bool operator!= ( const T &  other) const
inlineinherited

◆ operator=()

const Client & operator= ( const Client )
delete

◆ operator==() [1/3]

bool operator== ( const Field other) const
inherited

◆ operator==() [2/3]

bool operator== ( const FieldBase rhs) const
inlineinherited

◆ operator==() [3/3]

template<typename T , typename std::enable_if_t< std::is_same_v< T, Member >, std::nullptr_t > = nullptr>
bool operator== ( const T &  other) const
inlineinherited

Memberを比較

Since
ver1.11

◆ operator[]() [1/3]

Field operator[] ( int  index) const
inlineinherited

「(thisの名前).(index)」を新しい名前とするField

Since
ver1.11
Deprecated:
ver2.8〜

◆ operator[]() [2/3]

Field operator[] ( std::string_view  field) const
inlineinherited

「(thisの名前).(追加の名前)」を新しい名前とするField

Since
ver1.11

◆ operator[]() [3/3]

Field operator[] ( std::wstring_view  field) const
inlineinherited

「(thisの名前).(追加の名前)」を新しい名前とするField (wstring)

Since
ver2.0

◆ parent()

Field parent ( ) const
inherited

nameの最後のピリオドの前までを新しい名前とするField

Since
ver1.11

◆ pingStatus()

std::optional< int > pingStatus ( ) const
inherited

通信速度を調べる

  • 初回の呼び出しで通信速度データをリクエストし、 sync()後通信速度が得られるようになる
  • ver2.0〜 Client自身に対しても使用可能 (Client::pingStatus() または member("自分の名前").pingStatus())
Returns
初回→ std::nullopt, 2回目以降(取得できれば)→ pingの往復時間 (ms)
See also
onPing()

◆ remoteAddr()

const std::string & remoteAddr ( ) const
inherited

このMemberのIPアドレス

◆ robotModel() [1/2]

template<typename RobotModel_ = RobotModel, bool = ::webcface::traits::assertCompleteRobotModel < std::enable_if_t<std::is_same_v< RobotModel_, RobotModel >, RobotModel_>>()>
RobotModel_ robotModel ( std::string_view  field = "") const
inlineinherited

◆ robotModel() [2/2]

template<typename RobotModel_ = RobotModel, bool = ::webcface::traits::assertCompleteRobotModel < std::enable_if_t<std::is_same_v< RobotModel_, RobotModel >, RobotModel_>>()>
RobotModel_ robotModel ( std::wstring_view  field) const
inlineinherited

◆ robotModelEntries() [1/2]

template<typename T , bool >
template std::vector< RobotModel > robotModelEntries< RobotModel, true > ( ) const
inherited

◆ robotModelEntries() [2/2]

template<typename RobotModel_ = RobotModel, bool = ::webcface::traits::assertCompleteRobotModel < std::enable_if_t<std::is_same_v< RobotModel_, RobotModel >, RobotModel_>>()>
template std::vector< RobotModel > robotModelEntries< RobotModel, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているrobotModelのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ robotModels()

std::vector< RobotModel > robotModels ( ) const
inherited

このmemberが公開しているrobotModelのリストを返す。

Deprecated:
1.6で robotModelEntries() に変更

◆ serverHostName()

const std::string & serverHostName ( ) const

サーバーのホスト名

Since
ver2.0

◆ serverName()

const std::string & serverName ( ) const

WebCFaceサーバーの識別情報

Returns
webcface付属のサーバーであれば通常は "webcface" が返る
See also
serverVersion()

◆ serverVersion()

const std::string & serverVersion ( ) const

WebCFaceサーバーのバージョン情報

◆ setCheck()

std::shared_ptr< internal::ClientData > setCheck ( ) const
inherited

data_wをlockし、memberがselfではなければinvalid_argumentを投げる

◆ start()

const Client & start ( ) const

サーバーへの接続を別スレッドで開始する。

Since
ver1.2
See also
waitConnection(), autoReconnect()

◆ sync()

const Client & sync ( ) const
inline

送信用にセットしたデータをすべて送信キューに入れ、受信したデータを処理する。

  • 実際に送信をするのは別スレッドであり、この関数はブロックしない。
  • ver1.2以降: サーバーに接続していない場合、start()を呼び出す。
  • ver2.0以降: データを受信した場合、各種コールバック(onEntry, onChange, Func::run()など)をこのスレッドで呼び出し、 それがすべて完了するまでこの関数はブロックされる。
    • データをまだ何も受信していない場合やサーバーに接続していない場合は、 即座にreturnする。
See also
start(), loopSyncFor(), loopSyncUntil(), loopSync()

◆ syncTime()

std::chrono::system_clock::time_point syncTime ( ) const
inherited

最後のsync()の時刻を返す

Since
ver1.7 (Value::time(), Text::time() 等から変更)

◆ text() [1/2]

template<typename Text_ = Text, bool = ::webcface::traits::assertCompleteText < std::enable_if_t<std::is_same_v< Text_, Text >, Text_>>()>
Text_ text ( std::string_view  field = "") const
inlineinherited

◆ text() [2/2]

template<typename Text_ = Text, bool = ::webcface::traits::assertCompleteText < std::enable_if_t<std::is_same_v< Text_, Text >, Text_>>()>
Text_ text ( std::wstring_view  field) const
inlineinherited

◆ textEntries() [1/2]

template<typename Text_ = Text, bool = ::webcface::traits::assertCompleteText < std::enable_if_t<std::is_same_v< Text_, Text >, Text_>>()>
template std::vector< Text > textEntries< Text, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているtextのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ textEntries() [2/2]

template<typename T , bool >
template std::vector< Text > textEntries< Text, true > ( ) const
inherited

◆ texts()

std::vector< Text > texts ( ) const
inherited

このmemberが公開しているtextのリストを返す。

Deprecated:
1.6で textEntries() に変更

◆ value() [1/2]

template<typename Value_ = Value, bool = ::webcface::traits::assertCompleteValue < std::enable_if_t<std::is_same_v< Value_, Value >, Value_>>()>
Value_ value ( std::string_view  field = "") const
inlineinherited

◆ value() [2/2]

template<typename Value_ = Value, bool = ::webcface::traits::assertCompleteValue < std::enable_if_t<std::is_same_v< Value_, Value >, Value_>>()>
Value_ value ( std::wstring_view  field) const
inlineinherited

◆ valueEntries() [1/2]

template<typename T , bool >
template std::vector< Value > valueEntries< Value, true > ( ) const
inherited

◆ valueEntries() [2/2]

template<typename Value_ = Value, bool = ::webcface::traits::assertCompleteValue < std::enable_if_t<std::is_same_v< Value_, Value >, Value_>>()>
template std::vector< Value > valueEntries< Value, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているvalueのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ values()

std::vector< Value > values ( ) const
inherited

このmemberが公開しているvalueのリストを返す。

Deprecated:
1.6で valueEntries() に変更

◆ view() [1/2]

template<typename View_ = View, bool = ::webcface::traits::assertCompleteView < std::enable_if_t<std::is_same_v< View_, View >, View_>>()>
View_ view ( std::string_view  field = "") const
inlineinherited

◆ view() [2/2]

template<typename View_ = View, bool = ::webcface::traits::assertCompleteView < std::enable_if_t<std::is_same_v< View_, View >, View_>>()>
View_ view ( std::wstring_view  field) const
inlineinherited

◆ viewEntries() [1/2]

template<typename T , bool >
template std::vector< View > viewEntries< View, true > ( ) const
inherited

◆ viewEntries() [2/2]

template<typename View_ = View, bool = ::webcface::traits::assertCompleteView < std::enable_if_t<std::is_same_v< View_, View >, View_>>()>
template std::vector< View > viewEntries< View, true > ( ) const
inherited

「(thisの名前).(追加の名前)」で公開されているviewのリストを返す。

Since
ver1.6
See also
childrenRecurse()

◆ views()

std::vector< View > views ( ) const
inherited

このmemberが公開しているviewのリストを返す。

Deprecated:
1.6で viewEntries() に変更

◆ waitConnection()

const Client & waitConnection ( ) const

サーバーへの接続を別スレッドで開始し、成功するまで待機する。

Since
ver1.2
  • ver1.11.1以降: autoReconnect が false の場合は1回目の接続のみ待機し、失敗しても再接続せずreturnする。
  • ver2.0以降: 接続だけでなくentryの受信や初期化が完了するまで待機する。 loopSync() と同様、このスレッドで受信処理 (onEntry コールバックの呼び出しなど) が行われる。
See also
start(), autoReconnect()

Member Data Documentation

◆ data_w

std::weak_ptr<internal::ClientData> data_w
inherited

ClientDataの参照

ClientData内に保持するクラスもあるので循環参照を避けるためweak_ptr

◆ field_

SharedString field_
inherited

フィールド名

Memberなどフィールド名が不要なクラスでは使用しない

◆ member_

SharedString member_
inherited

メンバー名


The documentation for this class was generated from the following files: