mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-27 06:34:11 +00:00
82 lines
2.1 KiB
C
82 lines
2.1 KiB
C
/*
|
|
connection.h
|
|
|
|
connection management
|
|
|
|
Copyright (C) 2004 Bill Currie <bill@taniwha.org>
|
|
|
|
Author: Bill Currie
|
|
Date: 2004/02/20
|
|
|
|
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:
|
|
|
|
Free Software Foundation, Inc.
|
|
59 Temple Place - Suite 330
|
|
Boston, MA 02111-1307, USA
|
|
|
|
*/
|
|
|
|
#ifndef __connection_h
|
|
#define __connection_h
|
|
|
|
#include "netchan.h"
|
|
|
|
/** \defgroup qtv_connection Connection Management
|
|
\ingroup qtv
|
|
*/
|
|
///@{
|
|
|
|
typedef struct connection_s {
|
|
netadr_t address; ///< Address of the remote end.
|
|
void *object; ///< Connection specific data.
|
|
/** Handler for incoming packets.
|
|
\param con This connection. ("this", "self"...)
|
|
\param obj The connection specific data (object)
|
|
*/
|
|
void (*handler) (struct connection_s *con, void *obj);
|
|
} connection_t;
|
|
|
|
/** Initialize the connection management system.
|
|
*/
|
|
void Connection_Init (void);
|
|
|
|
/** Add a new connection.
|
|
|
|
\param address The address of the remote end.
|
|
\param object Connection specific data. Will be passed to \a handler.
|
|
\param handler Callback for handling incoming packets.
|
|
connection_t::handler
|
|
\return The new connection object.
|
|
*/
|
|
connection_t *Connection_Add (netadr_t *address, void *object,
|
|
void (*handler)(connection_t *, void *));
|
|
|
|
/** Delete a connection.
|
|
|
|
\param con The connection to be deleted.
|
|
*/
|
|
void Connection_Del (connection_t *con);
|
|
|
|
/** Search for an established connection based on the remote address.
|
|
|
|
\param address The remote address.
|
|
\return The connection associated with the remote address, or
|
|
NULL if not found.
|
|
*/
|
|
connection_t *Connection_Find (netadr_t *address);
|
|
|
|
///@}
|
|
|
|
#endif//__connection_h
|