summaryrefslogtreecommitdiff
path: root/Sockets/tests/x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Sockets/tests/x.cpp')
-rw-r--r--Sockets/tests/x.cpp298
1 files changed, 0 insertions, 298 deletions
diff --git a/Sockets/tests/x.cpp b/Sockets/tests/x.cpp
deleted file mode 100644
index 2ca9b26..0000000
--- a/Sockets/tests/x.cpp
+++ /dev/null
@@ -1,298 +0,0 @@
-#include <SocketHandler.h>
-#include <TcpSocket.h>
-#include <StdoutLog.h>
-#ifndef _WIN32
-#include <signal.h>
-#endif
-#include <IEventOwner.h>
-#include <EventHandler.h>
-
-#define HOST "localhost"
-#define PORT 2222
-
-#define TIME_US 250000
-
-#define DEB(x) x
-
-
-static bool quit = false;
-static EventHandler *ph = NULL;
-
-static int lc = 0;
-static int l2c = 0;
-static int l3c = 0;
-
-
-#ifndef _WIN32
-void sighandler(int s)
-{
- quit = true;
- ph -> SetQuit();
-}
-
-
-void sigpipe(int s)
-{
-}
-#endif
-
-
-class evHandler : public EventHandler
-{
-public:
- evHandler() : EventHandler() {}
- evHandler(StdLog *p) : EventHandler(p) {}
-
- void CloseAll() {
- for (socket_m::iterator it = m_sockets.begin(); it != m_sockets.end(); it++)
- {
- Socket *p = it -> second;
- p -> SetCloseAndDelete();
- }
- }
-
-};
-
-
-class lSocket : public TcpSocket, public IEventOwner
-{
-public:
- lSocket(ISocketHandler& h, bool first = false) : TcpSocket(h), IEventOwner(static_cast<evHandler&>(h)), m_id(0), m_first(first) {
- SetLineProtocol();
- lc++;
- }
- ~lSocket() {
- }
-
- void OnConnect() {
- if (!m_id)
- {
- m_id = AddEvent(0, TIME_US);
- }
- printf(".");
- fflush(stdout);
- }
- void OnConnectFailed() {
- printf("lSocket::OnConnectFailed\n");
- }
-
- void OnDelete() {
- if (m_first)
- printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@ OnDelete() first @@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
- }
-
- void OnEvent(int id) {
- if (id != m_id)
- {
- printf("ID MISMATCH!\n");
- exit(-1);
- }
- if (!quit)
- {
- lSocket *p = new lSocket(Handler());
- p -> SetDeleteByHandler();
- p -> Open(HOST, PORT);
- Handler().Add(p);
- }
- static_cast<evHandler&>(Handler()).SetQuit( quit );
- SetCloseAndDelete();
- }
-
-private:
- int m_id;
- bool m_first;
-};
-
-
-class l2Socket : public TcpSocket, public IEventOwner
-{
-public:
- l2Socket(ISocketHandler& h, bool first = false) : TcpSocket(h), IEventOwner(static_cast<evHandler&>(h)), m_id(0), m_first(first) {
- SetLineProtocol();
- l2c++;
- }
- ~l2Socket() {
- }
-
- void OnConnect() {
- printf(".");
- fflush(stdout);
- }
- void OnConnectFailed() {
- printf("l2Socket::OnConnectFailed\n");
- }
-
- void OnLine(const std::string& line) {
- if (!m_id)
- {
- m_id = AddEvent(0, TIME_US);
- }
- }
-
- void OnDelete() {
- if (m_first)
- printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@ OnDelete() first @@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
- }
-
- void OnEvent(int id) {
- if (id != m_id)
- {
- printf("ID MISMATCH!\n");
- exit(-1);
- }
- if (!quit)
- {
- l2Socket *p = new l2Socket(Handler());
- p -> SetDeleteByHandler();
- p -> Open(HOST, PORT);
- Handler().Add(p);
- }
- static_cast<evHandler&>(Handler()).SetQuit( quit );
- SetCloseAndDelete();
- }
-
-private:
- int m_id;
- bool m_first;
-};
-
-
-class l3Socket : public TcpSocket, public IEventOwner
-{
-public:
- l3Socket(ISocketHandler& h, bool first = false) : TcpSocket(h), IEventOwner(static_cast<evHandler&>(h)), m_ehlo(false), m_id(0), m_first(first) {
- SetLineProtocol();
- l3c++;
- }
- ~l3Socket() {
- }
-
- void OnConnect() {
- printf(".");
- fflush(stdout);
- }
- void OnConnectFailed() {
- printf("l3Socket::OnConnectFailed\n");
- }
-
- void OnLine(const std::string& line) {
- if (!m_ehlo)
- {
- Send("EHLO alhem.net\r\n");
- m_ehlo = true;
- }
- else
- if (!m_id)
- {
- m_id = AddEvent(0, TIME_US);
- }
- }
-
- void OnDelete() {
- if (m_first)
- printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@ OnDelete() first @@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
- "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
- }
-
- void OnEvent(int id) {
- if (id != m_id)
- {
- printf("ID MISMATCH!\n");
- exit(-1);
- }
- if (!quit)
- {
- l3Socket *p = new l3Socket(Handler());
- p -> SetDeleteByHandler();
- p -> Open(HOST, PORT);
- Handler().Add(p);
- }
- static_cast<evHandler&>(Handler()).SetQuit( quit );
- Send("QUIT\r\n");
- }
-
-private:
- bool m_ehlo;
- int m_id;
- bool m_first;
-};
-
-
-int main(int argc, char *argv[])
-{
-#ifndef _WIN32
- signal(SIGHUP, sighandler);
- signal(SIGINT, sighandler);
- signal(SIGPIPE, sigpipe);
-#endif
-
- time_t tstart = time(NULL);
- {
- StdoutLog log;
- {
- evHandler h(&log);
- ph = &h;
- {
- lSocket sock(h, true);
- sock.Open(HOST, PORT);
- h.Add(&sock);
- {
- l2Socket sock2(h, true);
- sock2.Open(HOST, PORT);
- h.Add(&sock2);
- {
- l3Socket sock3(h, true);
- sock3.Open(HOST, PORT);
- h.Add(&sock3);
-
- h.EventLoop();
- h.CloseAll();
-
- // %! one socket refuses to go away
- while (h.GetCount() > 1)
- {
- h.Select(1, 0);
- }
- printf("Exiting 1...\n");
- fflush(stdout);
- }
- printf("Exiting 2...\n");
- fflush(stdout);
- }
- printf("Exiting 3...\n");
- fflush(stdout);
- }
- printf("Exiting 4...\n");
- fflush(stdout);
- }
- printf("Exiting 5...\n");
- fflush(stdout);
- }
- printf("Exiting 6...\n");
- fflush(stdout);
-
- time_t tstop = time(NULL);
-
- time_t total = tstop - tstart + 1;
-
- printf("lc: %d\n", lc);
- printf("l2c: %d\n", l2c);
- printf("l3c: %d\n", l3c);
-
- printf("lc: %f\n", (double)lc / (double)total);
- printf("l2c: %f\n", (double)l2c / (double)total);
- printf("l3c: %f\n", (double)l3c / (double)total);
-}
-
-