aboutsummaryrefslogtreecommitdiff
path: root/src/server/authserver/RealmSocket.h
diff options
context:
space:
mode:
authorclick <none@none>2010-06-05 22:44:53 +0200
committerclick <none@none>2010-06-05 22:44:53 +0200
commitfd28bc6aff6fe356262b5ac20e152c6ec8569c43 (patch)
tree79cdf14a40d1fcbb3ded952e67831a8fb0ecdb46 /src/server/authserver/RealmSocket.h
parent1f87b6d34aee1e98981763adb017a79dfc211b67 (diff)
rename world server directory (trinitycore) to worldserver, rename authserver directory (trinityrealm) to authserver to reflect their real purposes
--HG-- branch : trunk rename : src/server/trinityrealm/AuthCodes.cpp => src/server/authserver/AuthCodes.cpp rename : src/server/trinityrealm/AuthCodes.h => src/server/authserver/AuthCodes.h rename : src/server/trinityrealm/AuthSocket.cpp => src/server/authserver/AuthSocket.cpp rename : src/server/trinityrealm/AuthSocket.h => src/server/authserver/AuthSocket.h rename : src/server/trinityrealm/CMakeLists.txt => src/server/authserver/CMakeLists.txt rename : src/server/trinityrealm/Main.cpp => src/server/authserver/Main.cpp rename : src/server/trinityrealm/RealmAcceptor.h => src/server/authserver/RealmAcceptor.h rename : src/server/trinityrealm/RealmList.cpp => src/server/authserver/RealmList.cpp rename : src/server/trinityrealm/RealmList.h => src/server/authserver/RealmList.h rename : src/server/trinityrealm/RealmSocket.cpp => src/server/authserver/RealmSocket.cpp rename : src/server/trinityrealm/RealmSocket.h => src/server/authserver/RealmSocket.h rename : src/server/trinityrealm/TrinityRealm.ico => src/server/authserver/TrinityRealm.ico rename : src/server/trinityrealm/TrinityRealm.rc => src/server/authserver/TrinityRealm.rc rename : src/server/trinityrealm/resource.h => src/server/authserver/resource.h rename : src/server/trinityrealm/trinityrealm.conf.dist => src/server/authserver/trinityrealm.conf.dist rename : src/server/trinitycore/CMakeLists.txt => src/server/worldserver/CMakeLists.txt rename : src/server/trinitycore/CliRunnable.cpp => src/server/worldserver/CliRunnable.cpp rename : src/server/trinitycore/CliRunnable.h => src/server/worldserver/CliRunnable.h rename : src/server/trinitycore/Main.cpp => src/server/worldserver/Main.cpp rename : src/server/trinitycore/Master.cpp => src/server/worldserver/Master.cpp rename : src/server/trinitycore/Master.h => src/server/worldserver/Master.h rename : src/server/trinitycore/RASocket.cpp => src/server/worldserver/RASocket.cpp rename : src/server/trinitycore/RASocket.h => src/server/worldserver/RASocket.h rename : src/server/trinitycore/TrinityCore.ico => src/server/worldserver/TrinityCore.ico rename : src/server/trinitycore/TrinityCore.rc => src/server/worldserver/TrinityCore.rc rename : src/server/trinitycore/WorldRunnable.cpp => src/server/worldserver/WorldRunnable.cpp rename : src/server/trinitycore/WorldRunnable.h => src/server/worldserver/WorldRunnable.h rename : src/server/trinitycore/resource.h => src/server/worldserver/resource.h rename : src/server/trinitycore/trinitycore.conf.dist => src/server/worldserver/trinitycore.conf.dist
Diffstat (limited to 'src/server/authserver/RealmSocket.h')
-rw-r--r--src/server/authserver/RealmSocket.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/server/authserver/RealmSocket.h b/src/server/authserver/RealmSocket.h
new file mode 100644
index 00000000000..13be8327533
--- /dev/null
+++ b/src/server/authserver/RealmSocket.h
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2005-2010 MaNGOS <http://getmangos.com/>
+ *
+ * Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/** \file
+ \ingroup realmd
+ */
+
+#ifndef __REALMSOCKET_H__
+#define __REALMSOCKET_H__
+
+#include <ace/Basic_Types.h>
+#include <ace/Synch_Traits.h>
+#include <ace/Svc_Handler.h>
+#include <ace/SOCK_Stream.h>
+#include <ace/Message_Block.h>
+#include <ace/Basic_Types.h>
+
+class RealmSocket : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+{
+ private:
+ typedef ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> Base;
+
+ public:
+ class Session
+ {
+ public:
+ Session(void);
+ virtual ~Session(void);
+
+ virtual void OnRead(void) = 0;
+ virtual void OnAccept(void) = 0;
+ virtual void OnClose(void) = 0;
+ };
+
+ RealmSocket(void);
+ virtual ~RealmSocket(void);
+
+ size_t recv_len(void) const;
+ bool recv_soft(char *buf, size_t len);
+ bool recv(char *buf, size_t len);
+ void recv_skip(size_t len);
+
+ bool send(const char *buf, size_t len);
+
+ const ACE_CString& get_remote_address(void) const;
+
+ virtual int open(void *);
+
+ virtual int close(int);
+
+ virtual int handle_input(ACE_HANDLE = ACE_INVALID_HANDLE);
+ virtual int handle_output(ACE_HANDLE = ACE_INVALID_HANDLE);
+
+ virtual int handle_close(ACE_HANDLE = ACE_INVALID_HANDLE,
+ ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
+
+ void set_session(Session* session);
+
+ private:
+ ssize_t noblk_send(ACE_Message_Block &message_block);
+
+ private:
+ ACE_Message_Block input_buffer_;
+ Session* session_;
+ ACE_CString remote_address_;
+};
+
+#endif /* __REALMSOCKET_H__ */