[Network] 6. FlatBuffers + Boost Asio 콘솔 서버 예제 (2)
프로그래밍 언어/Flatbuffers2021. 7. 5. 18:25
CChatRoom 클래스
채팅방 클래스는 생각보다 단순하여 인라인으로 구성합니다. 방에 들어온 유저 세션을 set 컨테이너에서 관리하며 접속된 유저들에게 데이터를 보낼 수 있는 write 함수로 간단히 구성됩니다.
CChatRoom.h
#pragma once
#include <set>
#include "Session.h"
class CChatRoom
{
private:
enum { max_recent_msgs = 10 };
public:
CChatRoom() {}
~CChatRoom() { m_SessionSet.clear(); }
public:
void Enter(std::shared_ptr<CSession> session)
{
m_SessionSet.insert(session);
}
void Leave(std::shared_ptr<CSession> session)
{
m_SessionSet.erase(session);
}
void Write(const CMessage& msg)
{
for (auto session : m_SessionSet)
session->Write(msg);
}
private:
std::set<std::shared_ptr<CSession>> m_SessionSet;
};
'프로그래밍 언어 > Flatbuffers' 카테고리의 다른 글
[Network] 8. FlatBuffers + Boost Asio 콘솔 서버 예제 (4) (0) | 2021.07.08 |
---|---|
[Network] 7. FlatBuffers + Boost Asio 콘솔 서버 예제 (3) (0) | 2021.07.07 |
[Network] 5. FlatBuffers + Boost Asio 콘솔 서버 예제 (1) (0) | 2021.07.04 |
[Network] 4. Flatbuffers + Boost Asio 콘솔 채팅 서버 클라이언트 예제 (0) | 2021.07.03 |
[Network] 3. FlatBuffers 사용 예제 코드 (0) | 2021.05.28 |