Ilya I / Mbed 2 deprecated iva2k_NetHttpServerTcpSockets

Dependencies:   mbed

Committer:
iva2k
Date:
Mon Jun 14 03:24:33 2010 +0000
Revision:
1:3ee499525aa5
Parent:
0:e614f7875b60

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iva2k 0:e614f7875b60 1
iva2k 0:e614f7875b60 2 /*
iva2k 0:e614f7875b60 3 Copyright (c) 2010 IVA2K
iva2k 0:e614f7875b60 4
iva2k 0:e614f7875b60 5 Permission is hereby granted, free of charge, to any person obtaining a copy
iva2k 0:e614f7875b60 6 of this software and associated documentation files (the "Software"), to deal
iva2k 0:e614f7875b60 7 in the Software without restriction, including without limitation the rights
iva2k 0:e614f7875b60 8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
iva2k 0:e614f7875b60 9 copies of the Software, and to permit persons to whom the Software is
iva2k 0:e614f7875b60 10 furnished to do so, subject to the following conditions:
iva2k 0:e614f7875b60 11
iva2k 0:e614f7875b60 12 The above copyright notice and this permission notice shall be included in
iva2k 0:e614f7875b60 13 all copies or substantial portions of the Software.
iva2k 0:e614f7875b60 14
iva2k 0:e614f7875b60 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
iva2k 0:e614f7875b60 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
iva2k 0:e614f7875b60 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
iva2k 0:e614f7875b60 18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
iva2k 0:e614f7875b60 19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
iva2k 0:e614f7875b60 20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
iva2k 0:e614f7875b60 21 THE SOFTWARE.
iva2k 0:e614f7875b60 22 */
iva2k 0:e614f7875b60 23
iva2k 0:e614f7875b60 24 #ifndef _STREAMSERVER_H_
iva2k 0:e614f7875b60 25 #define _STREAMSERVER_H_
iva2k 0:e614f7875b60 26
iva2k 0:e614f7875b60 27 #include "if/net/net.h"
iva2k 0:e614f7875b60 28 #include "api/TCPSocket.h"
iva2k 0:e614f7875b60 29
iva2k 0:e614f7875b60 30 #include <string>
iva2k 0:e614f7875b60 31 using std::string;
iva2k 0:e614f7875b60 32
iva2k 0:e614f7875b60 33 #include <list>
iva2k 0:e614f7875b60 34 using std::list;
iva2k 0:e614f7875b60 35
iva2k 0:e614f7875b60 36 class StreamRequestDispatcher;
iva2k 0:e614f7875b60 37
iva2k 0:e614f7875b60 38 class StreamServer
iva2k 0:e614f7875b60 39 {
iva2k 0:e614f7875b60 40 public:
iva2k 0:e614f7875b60 41 StreamServer();
iva2k 0:e614f7875b60 42 ~StreamServer();
iva2k 0:e614f7875b60 43
iva2k 0:e614f7875b60 44 typedef list<StreamRequestDispatcher*> tClients;
iva2k 0:e614f7875b60 45
iva2k 0:e614f7875b60 46 // template<typename T>
iva2k 0:e614f7875b60 47 // void addHandler(const char* path) //Template decl in header
iva2k 0:e614f7875b60 48 // { m_lpHandlers[path] = &T::inst; }
iva2k 0:e614f7875b60 49
iva2k 0:e614f7875b60 50 void bind(int port = 123);
iva2k 0:e614f7875b60 51 void sendToAll(const char* buf, int len);
iva2k 1:3ee499525aa5 52 int countClients(void);
iva2k 0:e614f7875b60 53
iva2k 0:e614f7875b60 54 private:
iva2k 0:e614f7875b60 55 friend class StreamRequestDispatcher;
iva2k 0:e614f7875b60 56
iva2k 0:e614f7875b60 57 void onTcpSocketEvent(TCPSocketEvent e);
iva2k 0:e614f7875b60 58
iva2k 0:e614f7875b60 59 TCPSocket* m_pTcpSocket;
iva2k 0:e614f7875b60 60 tClients m_lpClients;
iva2k 0:e614f7875b60 61
iva2k 0:e614f7875b60 62 };
iva2k 0:e614f7875b60 63
iva2k 0:e614f7875b60 64 //BEGIN REQUEST DISPATCHER======================================================
iva2k 0:e614f7875b60 65 #include "mbed.h"
iva2k 0:e614f7875b60 66 class StreamRequestDispatcher : public NetService
iva2k 0:e614f7875b60 67 {
iva2k 0:e614f7875b60 68 public:
iva2k 0:e614f7875b60 69 StreamRequestDispatcher(StreamServer* pSvr, TCPSocket* pTcpSocket);
iva2k 0:e614f7875b60 70 virtual ~StreamRequestDispatcher();
iva2k 0:e614f7875b60 71
iva2k 0:e614f7875b60 72 int writeData(const char* buf, int len);
iva2k 0:e614f7875b60 73
iva2k 0:e614f7875b60 74 private:
iva2k 0:e614f7875b60 75
iva2k 0:e614f7875b60 76 void dispatchRequest();
iva2k 0:e614f7875b60 77
iva2k 0:e614f7875b60 78 virtual void close(); //Close TCPSocket and destroy data
iva2k 0:e614f7875b60 79
iva2k 0:e614f7875b60 80 void onTcpSocketEvent(TCPSocketEvent e);
iva2k 0:e614f7875b60 81
iva2k 0:e614f7875b60 82 bool getRequest(string* request);
iva2k 0:e614f7875b60 83
iva2k 0:e614f7875b60 84 StreamServer* m_pSvr;
iva2k 0:e614f7875b60 85 TCPSocket* m_pTcpSocket;
iva2k 0:e614f7875b60 86
iva2k 0:e614f7875b60 87 bool m_closed;
iva2k 0:e614f7875b60 88 };
iva2k 0:e614f7875b60 89 //END REQUEST DISPATCHER========================================================
iva2k 0:e614f7875b60 90
iva2k 0:e614f7875b60 91 //Including handlers here for more convenience
iva2k 0:e614f7875b60 92 //#include "impl/RpcHandler.h"
iva2k 0:e614f7875b60 93 //#include "impl/FSHandler.h"
iva2k 0:e614f7875b60 94 //#include "impl/SimpleHandler.h"
iva2k 0:e614f7875b60 95
iva2k 0:e614f7875b60 96 #endif // _STREAMSERVER_H_