⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 appserver.h

📁 SMC takes a state machine stored in a .sm file and generates a State pattern in twelve programming l
💻 H
字号:
#ifndef _H_APPSERVER#define _H_APPSERVER//// The contents of this file are subject to the Mozilla Public// License Version 1.1 (the "License"); you may not use this file// except in compliance with the License. You may obtain a copy of// the License at http://www.mozilla.org/MPL/// // Software distributed under the License is distributed on an "AS// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or// implied. See the License for the specific language governing// rights and limitations under the License.// // The Original Code is State Machine Compiler (SMC).// // The Initial Developer of the Original Code is Charles W. Rapp.// Portions created by Charles W. Rapp are// Copyright (C) 2000 - 2003 Charles W. Rapp.// All Rights Reserved.// // Contributor(s): //// Name//  AppServer.h//// Description//  Encapsulates a TcpServer object.//// RCS ID// $Id: AppServer.h,v 1.5 2007/12/28 12:34:40 cwrapp Exp $//// CHANGE LOG// $Log: AppServer.h,v $// Revision 1.5  2007/12/28 12:34:40  cwrapp// Version 5.0.1 check-in.//// Revision 1.4  2005/05/28 13:31:18  cwrapp// Updated C++ examples.//// Revision 1.0  2003/12/14 19:35:24  charlesr// Initial revision//#include "TcpServer.h"#include "TcpClient.h"#include "TcpConnectionListener.h"#include "TimerListener.h"// Foward declarations.class AppClient;class AppServer :    /* implements */ public TcpConnectionListener,    /* implements */ public TimerListener{// Member functions.public:    // Default constructor.    AppServer();    // Destructor.    virtual ~AppServer();    // Create a TCP server object and open it.    void open(unsigned short port);    // Close the TCP service.    void close();    // Accepted client socket closed.    void clientClosed(const AppClient& client);    // TCP connection listener callback methods.    void opened(TcpConnection& connection);    void openFailed(const char *reason,                    TcpConnection& connection);    inline void halfClosed(TcpConnection&)    {};    void closed(const char *reason,                TcpConnection& connection);    void accepted(TcpClient& client, TcpServer& server);    // These callbacks are never generated by a TCP server.    void transmitted(TcpConnection&) {};    void transmitFailed(const char*, TcpConnection&) {};    void receive(const char*, int, TcpConnection&) {};    // The "delete clients" timer has expired.    void handleTimeout(const char *name);protected:private:// Nested classes.public:protected:private:    class ClientEntry    {    public:        ClientEntry(AppClient& client)        : _client(&client),          _next(NULL)        {};        ~ClientEntry() {};        AppClient* getClient() const        { return(_client);};        ClientEntry* getNext() const        { return(_next);};        void setNext(ClientEntry *entry)        { _next = entry; };    private:        AppClient *_client;        ClientEntry *_next;        friend class AppServer;    };// Member data.public:protected:private:    // The TCP service itself.    TcpServer *_server;    // Keep track of all the accepted client connections.    // When this application terminates, they will all be    // closed and deleted.    ClientEntry *_clientList;    // Delete these clients when the timer expires.    ClientEntry *_deleteList;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -