diff --git a/Socket.cpp b/Socket.cpp
index f3e724d..0168536 100644
--- a/Socket.cpp
+++ b/Socket.cpp
@@ -68,7 +68,7 @@ namespace core
void Socket::onUnregistered() {}
bool Socket::eventReceived(struct epoll_event event, long long eventId) {
- lock.lock();
+// lock.lock();
inHandler = true;
if(event.events & EPOLLRDHUP) {
readHangup = true;
@@ -85,7 +85,7 @@ namespace core
shutdown();
}
inHandler = false;
- lock.unlock();
+// lock.unlock();
return !shutDown;
}
@@ -149,9 +149,9 @@ namespace core
fifo.emplace(data);
outlock.unlock();
if(sender && (sender != this))
- lock.lock();
- ePoll.resetSocket(this);
- lock.unlock();
+ if(!inHandler) {
+ ePoll.resetSocket(this);
+ }
return 1;
}
diff --git a/Socket.h b/Socket.h
index 8d36251..9f988df 100644
--- a/Socket.h
+++ b/Socket.h
@@ -167,7 +167,7 @@ namespace core {
std::string text;
int descriptor = -1;
std::mutex outlock;
- std::mutex lock;
+// std::mutex lock;
bool readHangup = false;
volatile bool inHandler = false;
diff --git a/TCPServer.h b/TCPServer.h
index 1feb96c..2a85e10 100644
--- a/TCPServer.h
+++ b/TCPServer.h
@@ -46,7 +46,7 @@ namespace core
virtual ~TCPServer();
virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
- virtual bool compareAlias(void *alias, void *compare);
+
///
/// getSocketAccept is designed to allow a polymorphic extension of this object to
/// return a type of object that extends the definition of the server socket.
diff --git a/TCPSession.cpp b/TCPSession.cpp
index 5f4efb5..f1a3c5b 100644
--- a/TCPSession.cpp
+++ b/TCPSession.cpp
@@ -42,6 +42,10 @@ namespace core
return this->alias = alias;
}
+ void TCPSession::outputAlias(std::stringstream &out) {
+ out << alias;
+ }
+
void TCPSession::onRegistered()
{
onConnected();
diff --git a/html/Socket_8h_source.html b/html/Socket_8h_source.html
index 84d33e5..63d37de 100644
--- a/html/Socket_8h_source.html
+++ b/html/Socket_8h_source.html
@@ -147,7 +147,7 @@ $(function() {
-
+
171 bool readHangup =
false;
172 volatile bool inHandler =
false;
diff --git a/html/TCPServer_8h_source.html b/html/TCPServer_8h_source.html
index d8ab9e1..1bf1758 100644
--- a/html/TCPServer_8h_source.html
+++ b/html/TCPServer_8h_source.html
@@ -91,7 +91,7 @@ $(function() {
48 virtual void sessionErrorHandler(std::string errorString, std::stringstream &out);
- 49 virtual bool compareAlias(
void *alias,
void *compare);
+
diff --git a/html/TCPSession_8h_source.html b/html/TCPSession_8h_source.html
index a58f465..86ccc2d 100644
--- a/html/TCPSession_8h_source.html
+++ b/html/TCPSession_8h_source.html
@@ -113,57 +113,59 @@ $(function() {
90 virtual bool compareAlias(
void *
alias);
-
-
-
+ 92 virtual void outputAlias(std::stringstream &
out);
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
- 142 virtual void protocol(coreutils::ZString &data);
+
+
-
-
+ 144 virtual void protocol(coreutils::ZString &data);
+
-
- 153 char *lineBuffer = NULL;
- 154 int lineBufferSize = 0;
-
-
-
-
-
-
-
-
+
+
+
+ 155 char *lineBuffer = NULL;
+ 156 int lineBufferSize = 0;
+
+
+
+
+
+
-
+
+
+
Definition: TCPServer.h:28
Definition: TCPSession.h:26
void * alias
Definition: TCPSession.h:84
-void send()
Definition: TCPSession.cpp:115
+void send()
Definition: TCPSession.cpp:119
char uuid[37]
Definition: TCPSession.h:76
-void terminate()
Definition: TCPSession.cpp:121
-virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:100
+void terminate()
Definition: TCPSession.cpp:125
+virtual void onLineReceived(coreutils::ZString &line)
Definition: TCPSession.cpp:104
virtual void output(std::stringstream &data)
Definition: TCPSession.cpp:25
-void setBlockSize(int size=0)
Definition: TCPSession.cpp:95
-virtual void onConnected()
Definition: TCPSession.cpp:55
+void setBlockSize(int size=0)
Definition: TCPSession.cpp:99
+virtual void onConnected()
Definition: TCPSession.cpp:59
virtual void protocol(coreutils::ZString &data)
Definition: TCPSession.cpp:30
-virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:108
+virtual void onBlockReceived(coreutils::ZString &block)
Definition: TCPSession.cpp:112
std::stringstream out
Definition: TCPSession.h:68
-virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:45
-virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:57
+virtual void onRegistered() override
Called after the socket has been registered with epoll processing.
Definition: TCPSession.cpp:49
+virtual void onDataReceived(coreutils::ZString &data) override
Definition: TCPSession.cpp:61
Definition: TCPSocket.h:20
diff --git a/html/classcore_1_1ConsoleServer-members.html b/html/classcore_1_1ConsoleServer-members.html
index d658ee0..2807248 100644
--- a/html/classcore_1_1ConsoleServer-members.html
+++ b/html/classcore_1_1ConsoleServer-members.html
@@ -74,49 +74,48 @@ $(function() {
blackList | core::TCPServer | |
commands | core::TCPServer | |
- compareAlias(void *alias, void *compare) (defined in core::TCPServer) | core::TCPServer | virtual |
- connect(IPAddress &address) (defined in core::TCPSocket) | core::TCPSocket | |
- ConsoleServer(EPoll &ePoll, IPAddress address) (defined in core::ConsoleServer) | core::ConsoleServer | |
- ePoll (defined in core::Socket) | core::Socket | protected |
- eventReceived(struct epoll_event event, long long eventId) | core::Socket | |
- getBufferSize() (defined in core::Socket) | core::Socket | protected |
- getDescriptor() | core::Socket | |
- getSessionByAlias(void *alias) | core::TCPServer | |
- getSocketAccept(EPoll &ePoll) override | core::ConsoleServer | virtual |
- ipAddress (defined in core::TCPSocket) | core::TCPSocket | |
- logSend(std::string out) override (defined in core::ConsoleServer) | core::ConsoleServer | |
- needsToWrite() (defined in core::Socket) | core::Socket | |
- onDataReceived(std::string data) override | core::TCPServer | protectedvirtual |
- onDataReceived(coreutils::ZString &data) (defined in core::Socket) | core::Socket | protectedvirtual |
- onRegister() | core::Socket | virtual |
- onRegistered() | core::Socket | virtual |
- onUnregister() (defined in core::Socket) | core::Socket | virtual |
- onUnregistered() | core::Socket | virtual |
- output(std::stringstream &out) | core::TCPServer | virtual |
- processCommand(coreutils::ZString &request, TCPSession &session) override | core::TCPServer | protectedvirtual |
- receiveData(coreutils::ZString &buffer) | core::Socket | protectedvirtual |
- removeFromSessionList(TCPSession *session) (defined in core::TCPServer) | core::TCPServer | |
- reset (defined in core::Socket) | core::Socket | |
- sendToAll(std::stringstream &out) (defined in core::TCPServer) | core::TCPServer | |
- sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter) | core::TCPServer | |
- sendToAll(std::stringstream &out, TCPSession &sender) | core::TCPServer | |
- sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer) | core::TCPServer | virtual |
- sessions | core::TCPServer | |
- setBufferSize(int length) (defined in core::Socket) | core::Socket | protected |
- setDescriptor(int descriptor) | core::Socket | |
- shutDown (defined in core::Socket) | core::Socket | |
+ connect(IPAddress &address) (defined in core::TCPSocket) | core::TCPSocket | |
+ ConsoleServer(EPoll &ePoll, IPAddress address) (defined in core::ConsoleServer) | core::ConsoleServer | |
+ ePoll (defined in core::Socket) | core::Socket | protected |
+ eventReceived(struct epoll_event event, long long eventId) | core::Socket | |
+ getBufferSize() (defined in core::Socket) | core::Socket | protected |
+ getDescriptor() | core::Socket | |
+ getSessionByAlias(void *alias) | core::TCPServer | |
+ getSocketAccept(EPoll &ePoll) override | core::ConsoleServer | virtual |
+ ipAddress (defined in core::TCPSocket) | core::TCPSocket | |
+ logSend(std::string out) override (defined in core::ConsoleServer) | core::ConsoleServer | |
+ needsToWrite() (defined in core::Socket) | core::Socket | |
+ onDataReceived(std::string data) override | core::TCPServer | protectedvirtual |
+ onDataReceived(coreutils::ZString &data) (defined in core::Socket) | core::Socket | protectedvirtual |
+ onRegister() | core::Socket | virtual |
+ onRegistered() | core::Socket | virtual |
+ onUnregister() (defined in core::Socket) | core::Socket | virtual |
+ onUnregistered() | core::Socket | virtual |
+ output(std::stringstream &out) | core::TCPServer | virtual |
+ processCommand(coreutils::ZString &request, TCPSession &session) override | core::TCPServer | protectedvirtual |
+ receiveData(coreutils::ZString &buffer) | core::Socket | protectedvirtual |
+ removeFromSessionList(TCPSession *session) (defined in core::TCPServer) | core::TCPServer | |
+ reset (defined in core::Socket) | core::Socket | |
+ sendToAll(std::stringstream &out) (defined in core::TCPServer) | core::TCPServer | |
+ sendToAll(std::stringstream &out, TCPSession &sender, SessionFilter filter) | core::TCPServer | |
+ sendToAll(std::stringstream &out, TCPSession &sender) | core::TCPServer | |
+ sessionErrorHandler(std::string errorString, std::stringstream &out) (defined in core::TCPServer) | core::TCPServer | virtual |
+ sessions | core::TCPServer | |
+ setBufferSize(int length) (defined in core::Socket) | core::Socket | protected |
+ setDescriptor(int descriptor) | core::Socket | |
shutdown(std::string text="unknown") | core::Socket | |
- Socket(EPoll &ePoll, std::string text="") | core::Socket | |
- subscriptions | core::TCPServer | |
- TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="") | core::TCPServer | |
- TCPSocket(EPoll &ePoll) (defined in core::TCPSocket) | core::TCPSocket | |
- TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket) | core::TCPSocket | |
- whiteList | core::TCPServer | |
- write(std::string data, Socket *sender=NULL) | core::Socket | |
- write(char *buffer, int length) (defined in core::Socket) | core::Socket | |
- ~Socket() | core::Socket | virtual |
- ~TCPServer() | core::TCPServer | virtual |
- ~TCPSocket() (defined in core::TCPSocket) | core::TCPSocket | virtual |
+ shutDown (defined in core::Socket) | core::Socket | |
+ Socket(EPoll &ePoll, std::string text="") | core::Socket | |
+ subscriptions | core::TCPServer | |
+ TCPServer(EPoll &ePoll, IPAddress address, std::string delimiter=" ", int depth=10, std::string text="") | core::TCPServer | |
+ TCPSocket(EPoll &ePoll) (defined in core::TCPSocket) | core::TCPSocket | |
+ TCPSocket(EPoll &ePoll, std::string text) (defined in core::TCPSocket) | core::TCPSocket | |
+ whiteList | core::TCPServer | |
+ write(std::string data, Socket *sender=NULL) | core::Socket | |
+ write(char *buffer, int length) (defined in core::Socket) | core::Socket | |
+ ~Socket() | core::Socket | virtual |
+ ~TCPServer() | core::TCPServer | virtual |
+ ~TCPSocket() (defined in core::TCPSocket) | core::TCPSocket | virtual |