PageRenderTime 30ms CodeModel.GetById 24ms app.highlight 2ms RepoModel.GetById 2ms app.codeStats 0ms

/contrib/ntp/include/isc/msgcat.h

https://bitbucket.org/freebsd/freebsd-head/
C++ Header | 132 lines | 14 code | 13 blank | 105 comment | 0 complexity | dfe9b448ed36b2068a3175b07e85d976 MD5 | raw file
  1/*
  2 * Copyright (C) 1999-2001  Internet Software Consortium.
  3 *
  4 * Permission to use, copy, modify, and distribute this software for any
  5 * purpose with or without fee is hereby granted, provided that the above
  6 * copyright notice and this permission notice appear in all copies.
  7 *
  8 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
  9 * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
 10 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
 11 * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
 13 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 14 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 15 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 16 */
 17
 18/* $Id: msgcat.h,v 1.8 2001/01/09 21:57:13 bwelling Exp $ */
 19
 20#ifndef ISC_MSGCAT_H
 21#define ISC_MSGCAT_H 1
 22
 23/*****
 24 ***** Module Info
 25 *****/
 26
 27/*
 28 * ISC Message Catalog
 29 *
 30 * Message catalogs aid internationalization of applications by allowing
 31 * messages to be retrieved from locale-specific files instead of
 32 * hardwiring them into the application.  This allows translations of
 33 * messages appropriate to the locale to be supplied without recompiling
 34 * the application.
 35 *
 36 * Notes:
 37 *	It's very important that message catalogs work, even if only the
 38 *	default_text can be used.
 39 *
 40 * MP:
 41 *	The caller must ensure appropriate synchronization of
 42 *	isc_msgcat_open() and isc_msgcat_close().  isc_msgcat_get()
 43 *	ensures appropriate synchronization.
 44 *
 45 * Reliability:
 46 *	No anticipated impact.
 47 *
 48 * Resources:
 49 *	<TBS>
 50 *
 51 * Security:
 52 *	No anticipated impact.
 53 *
 54 * Standards:
 55 *	None.
 56 */
 57
 58/*****
 59 ***** Imports
 60 *****/
 61
 62#include <isc/lang.h>
 63#include <isc/types.h>
 64
 65ISC_LANG_BEGINDECLS
 66
 67/*****
 68 ***** Methods
 69 *****/
 70
 71void
 72isc_msgcat_open(const char *name, isc_msgcat_t **msgcatp);
 73/*
 74 * Open a message catalog.
 75 *
 76 * Notes:
 77 *
 78 *	If memory cannot be allocated or other failures occur, *msgcatp
 79 *	will be set to NULL.  If a NULL msgcat is given to isc_msgcat_get(),
 80 *	the default_text will be returned, ensuring that some message text
 81 *	will be available, no matter what's going wrong.
 82 *
 83 * Requires:
 84 *
 85 *	'name' is a valid string.
 86 *
 87 *	msgcatp != NULL && *msgcatp == NULL
 88 */
 89
 90void
 91isc_msgcat_close(isc_msgcat_t **msgcatp);
 92/*
 93 * Close a message catalog.
 94 *
 95 * Notes:
 96 *
 97 *	Any string pointers returned by prior calls to isc_msgcat_get() are
 98 *	invalid after isc_msgcat_close() has been called and must not be
 99 *	used.
100 *
101 * Requires:
102 *
103 *	*msgcatp is a valid message catalog or is NULL.
104 *
105 * Ensures:
106 *
107 *	All resources associated with the message catalog are released.
108 *
109 *	*msgcatp == NULL
110 */
111
112const char *
113isc_msgcat_get(isc_msgcat_t *msgcat, int set, int message,
114	       const char *default_text);
115/*
116 * Get message 'message' from message set 'set' in 'msgcat'.  If it
117 * is not available, use 'default_text'.
118 *
119 * Requires:
120 *
121 *	'msgcat' is a valid message catalog or is NULL.
122 *
123 *	set > 0
124 *
125 *	message > 0
126 *
127 *	'default_text' is a valid string.
128 */
129
130ISC_LANG_ENDDECLS
131
132#endif /* ISC_MSGCAT_H */