blob: a47f4f0aa30f017e6e3bbc7b8ac013d3538628b4 [file] [log] [blame]
/*
* Copyright (C) Tildeslash Ltd. All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License version 3.
*
* 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* In addition, as a special exception, the copyright holders give
* permission to link the code of portions of this program with the
* OpenSSL library under certain conditions as described in each
* individual source file, and distribute linked combinations
* including the two.
*
* You must obey the GNU Affero General Public License in all respects
* for all of the code used other than OpenSSL.
*/
#ifndef BOOTSTRAP_INCLUDED
#define BOOTSTRAP_INCLUDED
/**
* Temporary interface for bootstrapping libmonit from Monit.
*
* @see http://www.mmonit.com/
* @file
*/
/**
* Bootstrap libmonit. This method should be called from Monit at startup
*/
void Bootstrap(void);
/**
* Set the function to call if a fatal error occurs in the library. In
* practice this means Out-Of-Memory errors or uncatched exceptions.
* Clients may optionally provide this function. If not provided
* the library will call <code>abort(3)</code> upon encountering a
* fatal error. This method provide clients with means to close down
* execution gracefully. It is an unchecked runtime error to continue
* using the library after the <code>abortHandler</code> was called.
* @param abortHandler The handler function to call should a fatal
* error occur in the library. An explanatory error message is
* passed to the handler function in the string <code>error</code>
* @see Exception.h
*/
void Bootstrap_setAbortHandler(void(*abortHandler)(const char *error, va_list ap));
/**
* Set the function the library should call for (logging) error messages.
* If not provided, the library will write error messages to stderr.
* @param errorHandler The handler function to call when the library
* emit an error message. The error message is passed to the handler
* function in the string <code>error</code> with optional variable
* arguments.
* @see Exception.h
*/
void Bootstrap_setErrorHandler(void(*errorHandler)(const char *error, va_list ap));
#endif