PageRenderTime 9ms CodeModel.GetById 1ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/bind9/lib/dns/include/dns/rdatalist.h

https://bitbucket.org/freebsd/freebsd-head/
C++ Header | 124 lines | 23 code | 13 blank | 88 comment | 0 complexity | 47ccc2fae115e3becf7f046317cb703f MD5 | raw file
  1/*
  2 * Copyright (C) 2004-2008  Internet Systems Consortium, Inc. ("ISC")
  3 * Copyright (C) 1999-2001  Internet Software Consortium.
  4 *
  5 * Permission to use, copy, modify, and/or distribute this software for any
  6 * purpose with or without fee is hereby granted, provided that the above
  7 * copyright notice and this permission notice appear in all copies.
  8 *
  9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
 10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 11 * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
 14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 15 * PERFORMANCE OF THIS SOFTWARE.
 16 */
 17
 18/* $Id: rdatalist.h,v 1.22 2008/04/03 06:09:05 tbox Exp $ */
 19
 20#ifndef DNS_RDATALIST_H
 21#define DNS_RDATALIST_H 1
 22
 23/*****
 24 ***** Module Info
 25 *****/
 26
 27/*! \file dns/rdatalist.h
 28 * \brief
 29 * A DNS rdatalist is a list of rdata of a common type and class.
 30 *
 31 * MP:
 32 *\li	Clients of this module must impose any required synchronization.
 33 *
 34 * Reliability:
 35 *\li	No anticipated impact.
 36 *
 37 * Resources:
 38 *\li	TBS
 39 *
 40 * Security:
 41 *\li	No anticipated impact.
 42 *
 43 * Standards:
 44 *\li	None.
 45 */
 46
 47#include <isc/lang.h>
 48
 49#include <dns/types.h>
 50
 51/*%
 52 * Clients may use this type directly.
 53 */
 54struct dns_rdatalist {
 55	dns_rdataclass_t		rdclass;
 56	dns_rdatatype_t			type;
 57	dns_rdatatype_t			covers;
 58	dns_ttl_t			ttl;
 59	ISC_LIST(dns_rdata_t)		rdata;
 60	ISC_LINK(dns_rdatalist_t)	link;
 61};
 62
 63ISC_LANG_BEGINDECLS
 64
 65void
 66dns_rdatalist_init(dns_rdatalist_t *rdatalist);
 67/*%<
 68 * Initialize rdatalist.
 69 *
 70 * Ensures:
 71 *\li	All fields of rdatalist have been initialized to their default
 72 *	values.
 73 */
 74
 75isc_result_t
 76dns_rdatalist_tordataset(dns_rdatalist_t *rdatalist,
 77			 dns_rdataset_t *rdataset);
 78/*%<
 79 * Make 'rdataset' refer to the rdata in 'rdatalist'.
 80 *
 81 * Note:
 82 *\li	The caller must ensure that 'rdatalist' remains valid and unchanged
 83 *	while 'rdataset' is associated with it.
 84 *
 85 * Requires:
 86 *
 87 *\li	'rdatalist' is a valid rdatalist.
 88 *
 89 *\li	'rdataset' is a valid rdataset that is not currently associated with
 90 *	any rdata.
 91 *
 92 * Ensures,
 93 *	on success,
 94 *
 95 *\li		'rdataset' is associated with the rdata in rdatalist.
 96 *
 97 * Returns:
 98 *\li	#ISC_R_SUCCESS
 99 */
100
101isc_result_t
102dns_rdatalist_fromrdataset(dns_rdataset_t *rdataset,
103			   dns_rdatalist_t **rdatalist);
104/*%<
105 * Point 'rdatalist' to the rdatalist in 'rdataset'.
106 *
107 * Requires:
108 *
109 *\li	'rdatalist' is a pointer to a NULL dns_rdatalist_t pointer.
110 *
111 *\li	'rdataset' is a valid rdataset associated with an rdatalist.
112 *
113 * Ensures,
114 *	on success,
115 *
116 *\li		'rdatalist' is pointed to the rdatalist in rdataset.
117 *
118 * Returns:
119 *\li	#ISC_R_SUCCESS
120 */
121
122ISC_LANG_ENDDECLS
123
124#endif /* DNS_RDATALIST_H */