-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathServerContext.cpp
41 lines (29 loc) · 1.09 KB
/
ServerContext.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "ServerContext.h"
#include "ChatApp.h"
#include <iostream>
#include <string> // for string
ServerContext::ServerContext(core::socket::stream::SocketConnection* socketConnection)
: core::socket::stream::SocketContext(socketConnection) {
}
void ServerContext::onConnected() {
std::cout << "Context connected to Peer" << std::endl;
ChatApp::instance().addServerContext(this);
}
void ServerContext::onDisconnected() {
std::cout << "Context disconnecte4d from Peer" << std::endl;
ChatApp::instance().removeServerContext(this);
}
bool ServerContext::onSignal(int signum) {
return true;
}
std::size_t ServerContext::onReceivedFromPeer() {
char buffer[1024];
std::size_t numBytesRead = readFromPeer(buffer, 1023);
buffer[numBytesRead] = 0;
std::cout << "Buffer: " << buffer << std::endl;
ChatApp::instance().echoToAll(std::string(buffer, numBytesRead));
return numBytesRead;
}
core::socket::stream::SocketContext* ServerContextFactory::create(core::socket::stream::SocketConnection* socketConnection) {
return new ServerContext(socketConnection);
}