[BACK]Return to ClientConnection.h CVS log [TXT][DIR] Up to [Development] / fam / fam

Annotation of fam/fam/ClientConnection.h, Revision 1.1.1.1

1.1       trev        1: //  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved.
                      2: //
                      3: //  This program is free software; you can redistribute it and/or modify it
                      4: //  under the terms of version 2 of the GNU General Public License as
                      5: //  published by the Free Software Foundation.
                      6: //
                      7: //  This program is distributed in the hope that it would be useful, but
                      8: //  WITHOUT ANY WARRANTY; without even the implied warranty of
                      9: //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any
                     10: //  license provided herein, whether implied or otherwise, is limited to
                     11: //  this program in accordance with the express provisions of the GNU
                     12: //  General Public License.  Patent licenses, if any, provided herein do not
                     13: //  apply to combinations of this program with other product or programs, or
                     14: //  any other product whatsoever.  This program is distributed without any
                     15: //  warranty that the program is delivered free of the rightful claim of any
                     16: //  third person by way of infringement or the like.  See the GNU General
                     17: //  Public License for more details.
                     18: //
                     19: //  You should have received a copy of the GNU General Public License along
                     20: //  with this program; if not, write the Free Software Foundation, Inc., 59
                     21: //  Temple Place - Suite 330, Boston MA 02111-1307, USA.
                     22:
                     23: #ifndef ClientConnection_included
                     24: #define ClientConnection_included
                     25:
                     26: #include <sys/param.h>
                     27: #include <limits.h>
                     28: #include "NetConnection.h"
                     29: #include "Request.h"
                     30:
                     31: class Event;
                     32:
                     33: //  ClientConnection implements the fam server protocol.  It generates
                     34: //  fam events.  It does not parse fam requests because the API for its
                     35: //  caller would be really messy.  Instead it hands received messages
                     36: //  to its owner unparsed.
                     37: //
                     38: //  The field order is important -- the big net buffers are last.
                     39: //  Since the output buffer is twice as big as the input buffer,
                     40: //  it comes after the input buffer.
                     41:
                     42: struct sockaddr_un;
                     43: class ClientConnection : public NetConnection {
                     44:
                     45: public:
                     46:
                     47:     typedef bool (*InputHandler)(const char *, unsigned nbytes, void *closure);
                     48:
                     49:     ClientConnection(int fd, InputHandler, UnblockHandler, void *closure);
                     50:
                     51:     void send_event(const Event&, Request, const char *name);
                     52:     void send_sockaddr_un(const sockaddr_un &sun);
                     53:
                     54: protected:
                     55:
                     56:     bool input_msg(const char *, unsigned);
                     57:
                     58: private:
                     59:     InputHandler ihandler;
                     60:     void *iclosure;
                     61: };
                     62:
                     63: #endif /* !ClientConnection_included */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>