载入中...
搜索中...
未找到
Session.cpp
浏览该文件的文档.
1#include "network/Session.h"
2#include "network/Channel.h"
3#include "network/TcpSocket.h"
4
5namespace eve::network {
6
10
11void Session::add(std::string name, Channel* ch) {
12 channels_[std::move(name)] = ch;
13}
14
15Channel* Session::get(std::string name) {
16 auto it = channels_.find(name);
17 return it == channels_.end() ? nullptr : it->second;
18}
19
20void Session::remove(std::string name) {
21 channels_.erase(name);
22}
23
25 for (auto& kv : channels_) {
26 if (kv.second && kv.second->getSocket()) kv.second->getSocket()->close();
27 }
28 channels_.clear();
29}
30
31} // namespace eve::network
const char * name
Definition RockMesh.cpp:21
Length-prefixed (big-endian uint32) message framing over a TcpSocket. sendMsg() writes one framed mes...
Definition Channel.h:21
void remove(std::string name)
Removes a channel from the session (does not delete it).
Definition Session.cpp:20
void add(std::string name, Channel *ch)
Registers a channel under a name (replaces an existing entry).
Definition Session.cpp:11
void closeAll()
Closes every channel in the session.
Definition Session.cpp:24
Channel * get(std::string name)
Finds a channel by name, or nullptr.
Definition Session.cpp:15