# Copyright (C) 2011  Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or 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.

# \brief Message Utility Message File
#
# This is the source of the set of messages generated by the message and
# logging components.  The associated .h and .cc files are created by hand from
# this file though and are not built during the build process; this is to avoid
# the chicken-and-egg situation where we need the files to build the message
# compiler, yet we need the compiler to build the files.

$PREFIX MSG_
$NAMESPACE isc::log

% DUPMSGID      duplicate message ID (%1) in compiled code
Indicative of a programming error, when it started up, BIND10 detected that
the given message ID had been registered by one or more modules.  (All message
IDs should be unique throughout BIND10.)  This has no impact on the operation
of the server other that erroneous messages may be logged.  (When BIND10 loads
the message IDs (and their associated text), if a duplicate ID is found it is
discarded.  However, when the module that supplied the duplicate ID logs that
particular message, the text supplied by the module that added the original
ID will be output - something that may bear no relation to the condition being
logged.

% DUPLNS        line %1: duplicate $NAMESPACE directive found
When reading a message file, more than one $NAMESPACE directive was found.  In
this version of the code, such a condition is regarded as an error and the
read will be abandoned.

% IDNOTFND      could not replace message text for '%1': no such message
During start-up a local message file was read.  A line with the listed
message identification was found in the file, but the identification is not
one contained in the compiled-in message dictionary.  Either the message
identification has been mis-spelled in the file, or the local file was used
for an earlier version of the software and the message with that
identification has been removed.

This message may appear a number of times in the file, once for every such
unknown message identification.

% INVMSGID      line %1: invalid message identification '%2'
The concatenation of the prefix and the message identification is used as
a symbol in the C++ module; as such it may only contain 

% NOMSGID       line %1: message definition line found without a message ID
Message definition lines are lines starting with a "%".  The rest of the line
should comprise the message ID and text describing the message.  This error
indicates the message compiler found a line in the message file comprising
just the "%" and nothing else.

% NOMSGTXT      line %1: line found containing a message ID ('%2') and no text
Message definition lines are lines starting with a "%".  The rest of the line
should comprise the message ID and text describing the message.  This error
is generated when a line is found in the message file that contains the
leading "%" and the message identification but no text.

% NSEXTRARG     line %1: $NAMESPACE directive has too many arguments
The $NAMESPACE directive takes a single argument, a namespace in which all the
generated symbol names are placed.  This error is generated when the
compiler finds a $NAMESPACE directive with more than one argument.

% NSINVARG      line %1: $NAMESPACE directive has an invalid argument ('%2')
The $NAMESPACE argument should be a valid C++ namespace.  The reader does a
cursory check on its validity, checking that the characters in the namespace
are correct.  The error is generated when the reader finds an invalid
character. (Valid are alphanumeric characters, underscores and colons.)

% NSNOARG       line %1: no arguments were given to the $NAMESPACE directive
The $NAMESPACE directive takes a single argument, a namespace in which all the
generated symbol names are placed.  This error is generated when the
compiler finds a $NAMESPACE directive with no arguments.

% OPENIN        unable to open message file %1 for input: %2
The program was not able to open the specified input message file for the
reason given.

% OPENOUT       unable to open %1 for output: %2
The program was not able to open the specified output file for the reason
given.

% PRFEXTRARG    line %1: $PREFIX directive has too many arguments
The $PREFIX directive takes a single argument, a prefix to be added to the
symbol names when a C++ .h file is created.  This error is generated when the
compiler finds a $PREFIX directive with more than one argument.

% PRFINVARG     line %1: $PREFIX directive has an invalid argument ('%2')
The $PREFIX argument is used in a symbol name in a C++ header file.  As such,
it must adhere to restrictions on C++ symbol names (e.g. may only contain
alphanumeric characters or underscores, and may nor start with a digit).
A $PREFIX directive was found with an argument (given in the message) that
violates those restictions.

% RDLOCMES      reading local message file %1
This is an informational message output by BIND10 when it starts to read a
local message file.  (A local message file may replace the text of one of more
messages; the ID of the message will not be changed though.)

% READERR       error reading from message file %1: %2
The specified error was encountered reading from the named message file.

% WRITERR       error writing to %1: %2
The specified error was encountered by the message compiler when writing to
the named output file.

% UNRECDIR      line %1: unrecognised directive '%2'
A line starting with a dollar symbol was found, but the first word on the line
(shown in the message) was not a recognised message compiler directive.
