/*****************************************************************************
*
* OBJECTS.H - Header file for object addition/search functions
*
* Copyright (c) 1999-2006 Ethan Galstad (nagios@nagios.org)
* Last Modified: 03-21-2006
*
* License:
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*****************************************************************************/
#ifndef _OBJECTS_H
#define _OBJECTS_H
#include "config.h"
#include "common.h"
#ifdef __cplusplus
extern "C" {
#endif
/*************** CURRENT OBJECT REVISION **************/
#define CURRENT_OBJECT_STRUCTURE_VERSION 2
/***************** OBJECT SIZE LIMITS *****************/
#define MAX_HOSTNAME_LENGTH 64 /* max. host name length */
#define MAX_SERVICEDESC_LENGTH 64 /* max. service description length */
#define MAX_PLUGINOUTPUT_LENGTH 332 /* max. length of plugin output */
#define MAX_STATE_HISTORY_ENTRIES 21 /* max number of old states to keep track of for flap detection */
#define MAX_CONTACT_ADDRESSES 6 /* max number of custom addresses a contact can have */
/***************** CHAINED HASH LIMITS ****************/
#define SERVICE_HASHSLOTS 1024
#define HOST_HASHSLOTS 1024
#define COMMAND_HASHSLOTS 256
#define TIMEPERIOD_HASHSLOTS 64
#define CONTACT_HASHSLOTS 128
#define CONTACTGROUP_HASHSLOTS 64
#define HOSTGROUP_HASHSLOTS 128
#define SERVICEGROUP_HASHSLOTS 128
#define HOSTEXTINFO_HASHSLOTS 1024
#define SERVICEEXTINFO_HASHSLOTS 1024
#define HOSTDEPENDENCY_HASHSLOTS 1024
#define SERVICEDEPENDENCY_HASHSLOTS 1024
#define HOSTESCALATION_HASHSLOTS 1024
#define SERVICEESCALATION_HASHSLOTS 1024
/****************** DATA STRUCTURES *******************/
/* TIMERANGE structure */
typedef struct timerange_struct{
unsigned long range_start;
unsigned long range_end;
struct timerange_struct *next;
}timerange;
/* TIMEPERIOD structure */
typedef struct timeperiod_struct{
char *name;
char *alias;
timerange *days[7];
struct timeperiod_struct *next;
struct timeperiod_struct *nexthash;
}timeperiod;
/* CONTACTGROUPMEMBER structure */
typedef struct contactgroupmember_struct{
char *contact_name;
struct contactgroupmember_struct *next;
}contactgroupmember;
=1= |