diff options
author | mataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-05-04 19:04:57 +0000 |
---|---|---|
committer | mataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-05-04 19:04:57 +0000 |
commit | 8007a659cd115857a71947cf6d309ab8e96895dc (patch) | |
tree | fe683f411ed91815a135dc70ee3a8c31299b3d38 /FavContacts/src/cserver.h | |
parent | bed6bee936ff79d32c08245f0fedaee9d839f76f (diff) |
added FavContacts
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@65 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'FavContacts/src/cserver.h')
-rw-r--r-- | FavContacts/src/cserver.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/FavContacts/src/cserver.h b/FavContacts/src/cserver.h new file mode 100644 index 0000000..007a341 --- /dev/null +++ b/FavContacts/src/cserver.h @@ -0,0 +1,42 @@ +#ifndef cserver_h__
+#define cserver_h__
+
+class IConnectionProcessor
+{
+public:
+ virtual ~IConnectionProcessor() {}
+ virtual void ProcessConnection() = 0;
+};
+
+class IConnectionProcessorFactory
+{
+public:
+ virtual IConnectionProcessor *Create(CSocket *s) = 0;
+};
+
+class CServer
+{
+private:
+ SOCKET m_socket;
+ IConnectionProcessorFactory *m_connectionProcessorFactory;
+
+ DWORD ConnectionAcceptThread();
+ DWORD ConnectionProcessThread(SOCKET s);
+
+ static DWORD WINAPI GlobalConnectionAcceptThread(void *arg);
+
+ struct GlobalConnectionProcessThreadArgs
+ {
+ CServer *m_server;
+ SOCKET m_socket;
+
+ GlobalConnectionProcessThreadArgs(CServer *server, SOCKET s): m_server(server), m_socket(s) {}
+ };
+ static DWORD WINAPI GlobalConnectionProcessThread(void *arg);
+
+public:
+ void Start(int port, IConnectionProcessorFactory *connectionProcessorFactory, bool background);
+ void Stop();
+};
+
+#endif // cserver_h__
|