/* * Name: * err_ems.c * Purpose: * Implement the "err" module for the DRAMA ERS error system. * Description: * This file implements an alternative "err" module for the AST * library. It is used to deliver error messages through the * DRAMA ERS error message system rather than by the default mechanism. * Copyright: * Copyright (C) 2008 Science and Technology Facilities Council. * Copyright (C) 1997-2006 Council for the Central Laboratory of the * Research Councils * Licence: * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation, either * version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General * License along with this program. If not, see * . * Authors: * DSB: David S. Berry (UCLan) * TIMJ: Tim Jenness (JAC, Hawaii) * RFWS: R.F. Warren-Smith (STARLINK) * {enter_new_authors_here} * History: * 6-NOV-1996 (DSB): * Original version. * 16-SEP-2008 (TIMJ): * Use modern EMS interface * 13-NOV-2008 (TIMJ): * Modify for DRAMA * {enter_changes_here} */ #if HAVE_CONFIG_H #include #endif /* Module Macros. */ /* ============== */ /* Define the astCLASS macro (even although this is not a class implementation). This indicates to header files that they should make "protected" symbols available. */ #define astCLASS /* Include files. */ /* ============== */ /* Interface definitions. */ /* ---------------------- */ #include "err.h" /* Interface to this module */ /* Need to define these for DRAMA. Otherwise we have to include drama.h in the distribution as well */ #if HAVE_STDARG_H # define DSTDARG_OK #endif #define ERS_STANDALONE #include "Ers.h" /* Interface to the Ers system */ /* Function implementations. */ /* ========================= */ void astPutErr_( int status, const char *message ) { /* *+ * Name: * astPutErr * Purpose: * Deliver an error message. * Type: * Protected function. * Synopsis: * #include "err.h" * void astPutErr( int status, const char *message ) * Description: * This function delivers an error message and (optionally) an * accompanying status value to the user. It may be re-implemented * in order to deliver error messages in different ways, according * to the environment in which the AST library is being used. * Parameters: * status * The error status value. * message * A pointer to a null-terminated character string containing * the error message to be delivered. This should not contain * newline characters. * Notes: * - This function is documented as "protected" but, in fact, is * publicly accessible so that it may be re-implemented as * required. *- */ /* Local Variables: */ StatusType local_status; /* Local status value */ /* Make a copy of the status value supplied. Then invoke ems_rep_c to report the error message through EMS and to associate the error status with it. Ignore any returned status value. */ local_status = status; ErsRep( 0, &local_status, "%s", message ); }