diff options
Diffstat (limited to 'contrib/bind9/lib/dns/include/dns/rdatasetiter.h')
-rw-r--r-- | contrib/bind9/lib/dns/include/dns/rdatasetiter.h | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/contrib/bind9/lib/dns/include/dns/rdatasetiter.h b/contrib/bind9/lib/dns/include/dns/rdatasetiter.h deleted file mode 100644 index b2e13f8..0000000 --- a/contrib/bind9/lib/dns/include/dns/rdatasetiter.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC") - * Copyright (C) 1999-2001 Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH - * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, - * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE - * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -/* $Id: rdatasetiter.h,v 1.15.18.2 2005/04/29 00:16:19 marka Exp $ */ - -#ifndef DNS_RDATASETITER_H -#define DNS_RDATASETITER_H 1 - -/***** - ***** Module Info - *****/ - -/*! \file - * \brief - * The DNS Rdataset Iterator interface allows iteration of all of the - * rdatasets at a node. - * - * The dns_rdatasetiter_t type is like a "virtual class". To actually use - * it, an implementation of the class is required. This implementation is - * supplied by the database. - * - * It is the client's responsibility to call dns_rdataset_disassociate() - * on all rdatasets returned. - * - * XXX more XXX - * - * MP: - *\li The iterator itself is not locked. The caller must ensure - * synchronization. - * - *\li The iterator methods ensure appropriate database locking. - * - * Reliability: - *\li No anticipated impact. - * - * Resources: - *\li TBS - * - * Security: - *\li No anticipated impact. - * - * Standards: - *\li None. - */ - -/***** - ***** Imports - *****/ - -#include <isc/lang.h> -#include <isc/magic.h> -#include <isc/stdtime.h> - -#include <dns/types.h> - -ISC_LANG_BEGINDECLS - -/***** - ***** Types - *****/ - -typedef struct dns_rdatasetitermethods { - void (*destroy)(dns_rdatasetiter_t **iteratorp); - isc_result_t (*first)(dns_rdatasetiter_t *iterator); - isc_result_t (*next)(dns_rdatasetiter_t *iterator); - void (*current)(dns_rdatasetiter_t *iterator, - dns_rdataset_t *rdataset); -} dns_rdatasetitermethods_t; - -#define DNS_RDATASETITER_MAGIC ISC_MAGIC('D','N','S','i') -#define DNS_RDATASETITER_VALID(i) ISC_MAGIC_VALID(i, DNS_RDATASETITER_MAGIC) - -/*% - * This structure is actually just the common prefix of a DNS db - * implementation's version of a dns_rdatasetiter_t. - * \brief - * Direct use of this structure by clients is forbidden. DB implementations - * may change the structure. 'magic' must be #DNS_RDATASETITER_MAGIC for - * any of the dns_rdatasetiter routines to work. DB implementations must - * maintain all DB rdataset iterator invariants. - */ -struct dns_rdatasetiter { - /* Unlocked. */ - unsigned int magic; - dns_rdatasetitermethods_t * methods; - dns_db_t * db; - dns_dbnode_t * node; - dns_dbversion_t * version; - isc_stdtime_t now; -}; - -void -dns_rdatasetiter_destroy(dns_rdatasetiter_t **iteratorp); -/*%< - * Destroy '*iteratorp'. - * - * Requires: - * - *\li '*iteratorp' is a valid iterator. - * - * Ensures: - * - *\li All resources used by the iterator are freed. - * - *\li *iteratorp == NULL. - */ - -isc_result_t -dns_rdatasetiter_first(dns_rdatasetiter_t *iterator); -/*%< - * Move the rdataset cursor to the first rdataset at the node (if any). - * - * Requires: - *\li 'iterator' is a valid iterator. - * - * Returns: - *\li ISC_R_SUCCESS - *\li ISC_R_NOMORE There are no rdatasets at the node. - * - *\li Other results are possible, depending on the DB implementation. - */ - -isc_result_t -dns_rdatasetiter_next(dns_rdatasetiter_t *iterator); -/*%< - * Move the rdataset cursor to the next rdataset at the node (if any). - * - * Requires: - *\li 'iterator' is a valid iterator. - * - * Returns: - *\li ISC_R_SUCCESS - *\li ISC_R_NOMORE There are no more rdatasets at the - * node. - * - *\li Other results are possible, depending on the DB implementation. - */ - -void -dns_rdatasetiter_current(dns_rdatasetiter_t *iterator, - dns_rdataset_t *rdataset); -/*%< - * Return the current rdataset. - * - * Requires: - *\li 'iterator' is a valid iterator. - * - *\li 'rdataset' is a valid, disassociated rdataset. - * - *\li The rdataset cursor of 'iterator' is at a valid location (i.e. the - * result of last call to a cursor movement command was #ISC_R_SUCCESS). - */ - -ISC_LANG_ENDDECLS - -#endif /* DNS_RDATASETITER_H */ |