sets.h
上传用户:pycemail
上传日期:2007-01-04
资源大小:329k
文件大小:2k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. /*
  2.  * ProFTPD - FTP server daemon
  3.  * Copyright (c) 1997, 1998 Public Flood Software
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 2 of the License, or
  8.  * (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
  18.  */
  19. /* $Id: sets.h,v 1.1.1.1 1998/10/18 02:24:41 flood Exp $
  20.  */
  21. #ifndef __SETS_H
  22. #define __SETS_H
  23. #include "pool.h"
  24. typedef struct XAsetmember xasetmember_t;
  25. typedef struct XAset xaset_t;
  26. typedef int (*XASET_COMPARE)(xasetmember_t *v1,xasetmember_t *v2);
  27. typedef xasetmember_t* (*XASET_MCOPY)(xasetmember_t *mem);
  28. struct XAsetmember {
  29.   xasetmember_t *next,*prev;
  30. };
  31. struct XAset {
  32.   xasetmember_t *xas_list;
  33.   
  34.   pool *mempool;
  35.   XASET_COMPARE xas_compare;
  36. };
  37. /* Prototypes */
  38. xaset_t *xaset_create(pool *pool,XASET_COMPARE compf);
  39. xaset_t *xaset_copy(pool *pool,xaset_t *set, size_t msize,
  40.                     XASET_MCOPY copyf);
  41. xaset_t *xaset_subtract(pool *pool, xaset_t *set1, xaset_t *set2, 
  42.                         size_t msize,
  43.                         XASET_MCOPY copyf);
  44. xaset_t *xaset_union(pool *pool, xaset_t *set1, xaset_t *set2,
  45.                      size_t msize,
  46.              XASET_MCOPY copyf);
  47. int xaset_insert(xaset_t *set, xasetmember_t *member);
  48. int xaset_insert_end(xaset_t *set, xasetmember_t *member);
  49. int xaset_remove(xaset_t *set, xasetmember_t *member);
  50. int xaset_insert_sort(xaset_t *set, xasetmember_t *member, int dupes_allowed);
  51. #endif /* __SETS_H */