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

#include <webcface/server/store.h>

Collaboration diagram for ServerStorage:
[legend]

Public Member Functions

auto clientsCopy ()
 
auto clientsByIdCopy ()
 
 ServerStorage (Server *server, int keep_log=1000)
 
 ~ServerStorage ()
 
void clear ()
 
void newClient (const wsConnPtr &con, const std::string &remote_addr, const spdlog::sink_ptr &sink, spdlog::level::level_enum level)
 
void initClientId (unsigned int id, const wsConnPtr &con)
 
void removeClient (const wsConnPtr &con)
 
MemberDataPtr getClient (const wsConnPtr &con)
 
void clientSendAll ()
 
void findAndDo (const SharedString &name, const std::function< void(MemberDataPtr)> &func, const std::function< void()> &func_else=nullptr)
 指定したnameのclientがあればfuncを、そうでなければfunc_elseを実行
 
void findAndDo (unsigned int id, const std::function< void(MemberDataPtr)> &func, const std::function< void()> &func_else=nullptr)
 指定したidのclientがあればfuncを、そうでなければfunc_elseを実行
 
void findConnectedAndDo (unsigned int id, const std::function< void(MemberDataPtr)> &func, const std::function< void()> &func_else=nullptr)
 指定したidのclientが切断前であればfuncを、そうでなければfunc_elseを実行
 
void forEach (const std::function< void(MemberDataPtr)> &func)
 各ClientDataに対して処理をする
 
void forEachWithName (const std::function< void(MemberDataPtr)> &func)
 名前のある各ClientDataに対して処理をする
 

Public Attributes

std::shared_ptr< std::unordered_map< unsigned int, int > > ping_status
 
Serverserver
 
int keep_log
 
std::string hostname
 

Constructor & Destructor Documentation

◆ ServerStorage()

ServerStorage ( Server server,
int  keep_log = 1000 
)
inlineexplicit

◆ ~ServerStorage()

~ServerStorage ( )
inline

Member Function Documentation

◆ clear()

void clear ( )

clientをすべてonCloseを呼んで削除

◆ clientsByIdCopy()

auto clientsByIdCopy ( )
inline

◆ clientsCopy()

auto clientsCopy ( )
inline

◆ clientSendAll()

void clientSendAll ( )

◆ findAndDo() [1/2]

void findAndDo ( const SharedString name,
const std::function< void(MemberDataPtr)> &  func,
const std::function< void()> &  func_else = nullptr 
)

指定したnameのclientがあればfuncを、そうでなければfunc_elseを実行

◆ findAndDo() [2/2]

void findAndDo ( unsigned int  id,
const std::function< void(MemberDataPtr)> &  func,
const std::function< void()> &  func_else = nullptr 
)

指定したidのclientがあればfuncを、そうでなければfunc_elseを実行

◆ findConnectedAndDo()

void findConnectedAndDo ( unsigned int  id,
const std::function< void(MemberDataPtr)> &  func,
const std::function< void()> &  func_else = nullptr 
)

指定したidのclientが切断前であればfuncを、そうでなければfunc_elseを実行

◆ forEach()

void forEach ( const std::function< void(MemberDataPtr)> &  func)

各ClientDataに対して処理をする

切断後も含む

◆ forEachWithName()

void forEachWithName ( const std::function< void(MemberDataPtr)> &  func)

名前のある各ClientDataに対して処理をする

切断後も含む

◆ getClient()

MemberDataPtr getClient ( const wsConnPtr con)

◆ initClientId()

void initClientId ( unsigned int  id,
const wsConnPtr con 
)

◆ newClient()

void newClient ( const wsConnPtr con,
const std::string &  remote_addr,
const spdlog::sink_ptr &  sink,
spdlog::level::level_enum  level 
)

◆ removeClient()

void removeClient ( const wsConnPtr con)

Member Data Documentation

◆ hostname

std::string hostname

◆ keep_log

int keep_log

◆ ping_status

std::shared_ptr<std::unordered_map<unsigned int, int> > ping_status

◆ server

Server* server

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