summaryrefslogblamecommitdiffstats
path: root/endpoint.h
blob: 506689a72782487169f216fefd71fccbdca6de9d (plain) (tree)




















































                                                                                                 
/*****************************************************************************\
**                                                                           **
** PBX4Linux                                                                 **
**                                                                           **
**---------------------------------------------------------------------------**
** Copyright: Andreas Eversberg                                              **
**                                                                           **
** Endpoint header file                                                      **
**                                                                           **
\*****************************************************************************/ 


/* structure of port_list */
struct port_list {
	struct port_list	*next;
	unsigned long		port_id;
	int			port_type;
};

/* structure of an Enpoint */
class Endpoint
{
	public:
	Endpoint(int port_id, int call_id);
	~Endpoint();
	class Endpoint		*next;		/* next in list */
	unsigned long		ep_serial;	/* a unique serial to identify */
	int			handler(void);

	/* applocaton relation */
	class EndpointApp 	*ep_app;		/* link to application class */

	/* port relation */
	struct port_list 	*ep_portlist;	/* link to list of ports */
	struct port_list *portlist_new(unsigned long port_id, int port_type);
	void free_portlist(struct port_list *portlist);

	/* call relation */
	unsigned long 		ep_call_id;	/* link to call */

	/* if still used by threads */
	int			ep_use;

	/* application indipendant states */
	int			ep_park;		/* indicates that the epoint is parked */
	unsigned char		ep_park_callid[8];
	int			ep_park_len;
};

extern class Endpoint *epoint_first;

class Endpoint *find_epoint_id(unsigned long epoint_id);