obsolete/jabber_s/xjab_presence.h
f9d07200
 /*
eab2eef2
  * $Id$
  *
f9d07200
  * XJAB module
  *
  *
95072403
  * Copyright (C) 2001-2003 FhG Fokus
f9d07200
  *
  * This file is part of ser, a free SIP server.
  *
  * ser 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
  *
  * For a license to use the ser software under conditions
  * other than those described here, or to purchase support for this
  * software, please contact iptel.org by e-mail at the following addresses:
  *    info@iptel.org
  *
  * ser 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 the Free Software 
9e1ff448
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
f9d07200
  */
 
 #ifndef _XJAB_PRESENCE_H_
 #define _XJAB_PRESENCE_H_
 
 #include "../../str.h"
 #include "xjab_base.h"
 
307bdfe4
 #define XJ_PS_CHECK			-1
 #define XJ_PS_OFFLINE		0
 #define XJ_PS_ONLINE		1
 #define XJ_PS_TERMINATED	2
 #define XJ_PS_REFUSED		3
f9d07200
 
 #define XJ_PRES_STATUS_NULL		0
 #define XJ_PRES_STATUS_SUBS		1
 #define XJ_PRES_STATUS_WAIT		2
 
 typedef struct _xj_pres_cell
 {
 	int key;
 	str userid;
 	int state;
 	int status;
 	pa_callback_f cbf;
 	void *cbp;
 	struct _xj_pres_cell *prev;
 	struct _xj_pres_cell *next;
 } t_xj_pres_cell, *xj_pres_cell;
 
 typedef struct _xj_pres_list
 {
 	int nr;
 	xj_pres_cell clist;
 } t_xj_pres_list, *xj_pres_list;
 
 xj_pres_cell xj_pres_cell_new();
 void xj_pres_cell_free(xj_pres_cell);
 void xj_pres_cell_free_all(xj_pres_cell);
 int xj_pres_cell_init(xj_pres_cell, str*, pa_callback_f, void*);
 int xj_pres_cell_init(xj_pres_cell, str*, pa_callback_f, void*);
 int xj_pres_cell_update(xj_pres_cell, pa_callback_f, void*);
 
 xj_pres_list xj_pres_list_init();
 void xj_pres_list_free(xj_pres_list);
 xj_pres_cell xj_pres_list_add(xj_pres_list, xj_pres_cell);
 int xj_pres_list_del(xj_pres_list, str*);
 xj_pres_cell xj_pres_list_check(xj_pres_list, str*);
5bc99d39
 void xj_pres_list_notifyall(xj_pres_list,int);
f9d07200
 
 #endif