nagios4/xdata/xodtemplate.h
2017-05-19 22:22:40 +02:00

973 lines
34 KiB
C

/*****************************************************************************
*
* XODTEMPLATE.H - Template-based object configuration data header file
*
* Copyright (c) 2001-2008 Ethan Galstad (egalstad@nagios.org)
* Last Modified: 02-17-2008
*
* 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 _XODTEMPLATE_H
#define _XODTEMPLATE_H
/*********** GENERAL DEFINITIONS ************/
#define XODTEMPLATE_NULL "null"
#define MAX_XODTEMPLATE_INPUT_BUFFER 1024
#define MAX_XODTEMPLATE_CONTACT_ADDRESSES 6
#define XODTEMPLATE_NONE 0
#define XODTEMPLATE_TIMEPERIOD 1
#define XODTEMPLATE_COMMAND 2
#define XODTEMPLATE_CONTACT 3
#define XODTEMPLATE_CONTACTGROUP 4
#define XODTEMPLATE_HOST 5
#define XODTEMPLATE_HOSTGROUP 6
#define XODTEMPLATE_SERVICE 7
#define XODTEMPLATE_SERVICEDEPENDENCY 8
#define XODTEMPLATE_HOSTGROUPESCALATION 9 /* no longer implemented */
#define XODTEMPLATE_SERVICEESCALATION 10
#define XODTEMPLATE_HOSTESCALATION 11
#define XODTEMPLATE_HOSTDEPENDENCY 12
#define XODTEMPLATE_HOSTEXTINFO 13
#define XODTEMPLATE_SERVICEEXTINFO 14
#define XODTEMPLATE_SERVICEGROUP 15
/***************** SKIP LISTS ****************/
#define NUM_XOBJECT_SKIPLISTS 15
#define X_HOST_SKIPLIST 1
#define X_SERVICE_SKIPLIST 2
#define X_COMMAND_SKIPLIST 3
#define X_TIMEPERIOD_SKIPLIST 4
#define X_CONTACT_SKIPLIST 5
#define X_CONTACTGROUP_SKIPLIST 6
#define X_HOSTGROUP_SKIPLIST 7
#define X_SERVICEGROUP_SKIPLIST 8
#define X_HOSTDEPENDENCY_SKIPLIST 9
#define X_SERVICEDEPENDENCY_SKIPLIST 10
#define X_HOSTESCALATION_SKIPLIST 11
#define X_SERVICEESCALATION_SKIPLIST 12
#define X_HOSTEXTINFO_SKIPLIST 13
#define X_SERVICEEXTINFO_SKIPLIST 14
/********** STRUCTURE DEFINITIONS **********/
/* CUSTOMVARIABLESMEMBER structure */
typedef struct xodtemplate_customvariablesmember_struct {
char *variable_name;
char *variable_value;
struct xodtemplate_customvariablesmember_struct *next;
} xodtemplate_customvariablesmember;
/* DATERANGE structure */
typedef struct xodtemplate_daterange_struct {
int type;
int syear; /* start year */
int smon; /* start month */
int smday; /* start day of month (may 3rd, last day in feb) */
int swday; /* start day of week (thursday) */
int swday_offset; /* start weekday offset (3rd thursday, last monday in jan) */
int eyear;
int emon;
int emday;
int ewday;
int ewday_offset;
int skip_interval;
char *timeranges;
struct xodtemplate_daterange_struct *next;
} xodtemplate_daterange;
/* TIMEPERIOD TEMPLATE STRUCTURE */
typedef struct xodtemplate_timeperiod_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *timeperiod_name;
char *alias;
char *timeranges[7];
xodtemplate_daterange *exceptions[DATERANGE_TYPES];
char *exclusions;
int has_been_resolved;
int register_object;
struct xodtemplate_timeperiod_struct *next;
} xodtemplate_timeperiod;
/* COMMAND TEMPLATE STRUCTURE */
typedef struct xodtemplate_command_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *command_name;
char *command_line;
int has_been_resolved;
int register_object;
struct xodtemplate_command_struct *next;
} xodtemplate_command;
/* CONTACT TEMPLATE STRUCTURE */
typedef struct xodtemplate_contact_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *contact_name;
char *alias;
char *contact_groups;
char *email;
char *pager;
char *address[MAX_XODTEMPLATE_CONTACT_ADDRESSES];
char *host_notification_period;
char *host_notification_commands;
int notify_on_host_down;
int notify_on_host_unreachable;
int notify_on_host_recovery;
int notify_on_host_flapping;
int notify_on_host_downtime;
char *service_notification_period;
char *service_notification_commands;
int notify_on_service_unknown;
int notify_on_service_warning;
int notify_on_service_critical;
int notify_on_service_recovery;
int notify_on_service_flapping;
int notify_on_service_downtime;
int host_notifications_enabled;
int service_notifications_enabled;
int can_submit_commands;
int retain_status_information;
int retain_nonstatus_information;
xodtemplate_customvariablesmember *custom_variables;
int have_contact_groups;
int have_email;
int have_pager;
int have_address[MAX_XODTEMPLATE_CONTACT_ADDRESSES];
int have_host_notification_period;
int have_host_notification_commands;
int have_service_notification_period;
int have_service_notification_commands;
int have_host_notification_options;
int have_service_notification_options;
int have_host_notifications_enabled;
int have_service_notifications_enabled;
int have_can_submit_commands;
int have_retain_status_information;
int have_retain_nonstatus_information;
int has_been_resolved;
int register_object;
struct xodtemplate_contact_struct *next;
} xodtemplate_contact;
/* CONTACTGROUP TEMPLATE STRUCTURE */
typedef struct xodtemplate_contactgroup_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *contactgroup_name;
char *alias;
char *members;
char *contactgroup_members;
int have_members;
int have_contactgroup_members;
int has_been_resolved;
int register_object;
struct xodtemplate_contactgroup_struct *next;
} xodtemplate_contactgroup;
/* HOST TEMPLATE STRUCTURE */
typedef struct xodtemplate_host_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *display_name;
char *alias;
char *address;
char *parents;
char *host_groups;
char *check_command;
char *check_period;
int initial_state;
double check_interval;
double retry_interval;
int max_check_attempts;
int active_checks_enabled;
int passive_checks_enabled;
int obsess_over_host;
char *event_handler;
int event_handler_enabled;
int check_freshness;
int freshness_threshold;
float low_flap_threshold;
float high_flap_threshold;
int flap_detection_enabled;
int flap_detection_on_up;
int flap_detection_on_down;
int flap_detection_on_unreachable;
char *contact_groups;
char *contacts;
int notify_on_down;
int notify_on_unreachable;
int notify_on_recovery;
int notify_on_flapping;
int notify_on_downtime;
int notifications_enabled;
char *notification_period;
double notification_interval;
double first_notification_delay;
int stalk_on_up;
int stalk_on_down;
int stalk_on_unreachable;
int process_perf_data;
int failure_prediction_enabled;
char *failure_prediction_options;
char *notes;
char *notes_url;
char *action_url;
char *icon_image;
char *icon_image_alt;
char *vrml_image;
char *statusmap_image;
int x_2d;
int y_2d;
double x_3d;
double y_3d;
double z_3d;
int retain_status_information;
int retain_nonstatus_information;
xodtemplate_customvariablesmember *custom_variables;
int have_display_name;
int have_parents;
int have_host_groups;
int have_check_command;
int have_check_period;
int have_event_handler;
int have_contact_groups;
int have_contacts;
int have_notification_period;
int have_failure_prediction_options;
int have_notes;
int have_notes_url;
int have_action_url;
int have_icon_image;
int have_icon_image_alt;
int have_vrml_image;
int have_statusmap_image;
int have_initial_state;
int have_check_interval;
int have_retry_interval;
int have_max_check_attempts;
int have_active_checks_enabled;
int have_passive_checks_enabled;
int have_obsess_over_host;
int have_event_handler_enabled;
int have_check_freshness;
int have_freshness_threshold;
int have_low_flap_threshold;
int have_high_flap_threshold;
int have_flap_detection_enabled;
int have_flap_detection_options;
int have_notification_options;
int have_notifications_enabled;
int have_notification_interval;
int have_first_notification_delay;
int have_stalking_options;
int have_process_perf_data;
int have_failure_prediction_enabled;
int have_2d_coords;
int have_3d_coords;
int have_retain_status_information;
int have_retain_nonstatus_information;
int has_been_resolved;
int register_object;
struct xodtemplate_host_struct *next;
} xodtemplate_host;
/* HOSTGROUP TEMPLATE STRUCTURE */
typedef struct xodtemplate_hostgroup_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *hostgroup_name;
char *alias;
char *members;
char *hostgroup_members;
char *notes;
char *notes_url;
char *action_url;
int have_members;
int have_hostgroup_members;
int have_notes;
int have_notes_url;
int have_action_url;
int has_been_resolved;
int register_object;
struct xodtemplate_hostgroup_struct *next;
} xodtemplate_hostgroup;
/* SERVICE TEMPLATE STRUCTURE */
typedef struct xodtemplate_service_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *service_description;
char *display_name;
char *hostgroup_name;
char *service_groups;
char *check_command;
int initial_state;
int max_check_attempts;
double check_interval;
double retry_interval;
char *check_period;
int active_checks_enabled;
int passive_checks_enabled;
int parallelize_check;
int is_volatile;
int obsess_over_service;
char *event_handler;
int event_handler_enabled;
int check_freshness;
int freshness_threshold;
double low_flap_threshold;
double high_flap_threshold;
int flap_detection_enabled;
int flap_detection_on_ok;
int flap_detection_on_warning;
int flap_detection_on_unknown;
int flap_detection_on_critical;
int notify_on_unknown;
int notify_on_warning;
int notify_on_critical;
int notify_on_recovery;
int notify_on_flapping;
int notify_on_downtime;
int notifications_enabled;
char *notification_period;
double notification_interval;
double first_notification_delay;
char *contact_groups;
char *contacts;
int stalk_on_ok;
int stalk_on_unknown;
int stalk_on_warning;
int stalk_on_critical;
int process_perf_data;
int failure_prediction_enabled;
char *failure_prediction_options;
char *notes;
char *notes_url;
char *action_url;
char *icon_image;
char *icon_image_alt;
int retain_status_information;
int retain_nonstatus_information;
xodtemplate_customvariablesmember *custom_variables;
int have_host_name;
int have_service_description;
int have_display_name;
int have_hostgroup_name;
int have_service_groups;
int have_check_command;
int have_important_check_command;
int have_check_period;
int have_event_handler;
int have_notification_period;
int have_contact_groups;
int have_contacts;
int have_failure_prediction_options;
int have_notes;
int have_notes_url;
int have_action_url;
int have_icon_image;
int have_icon_image_alt;
int have_initial_state;
int have_max_check_attempts;
int have_check_interval;
int have_retry_interval;
int have_active_checks_enabled;
int have_passive_checks_enabled;
int have_parallelize_check;
int have_is_volatile;
int have_obsess_over_service;
int have_event_handler_enabled;
int have_check_freshness;
int have_freshness_threshold;
int have_low_flap_threshold;
int have_high_flap_threshold;
int have_flap_detection_enabled;
int have_flap_detection_options;
int have_notification_options;
int have_notifications_enabled;
int have_notification_dependencies;
int have_notification_interval;
int have_first_notification_delay;
int have_stalking_options;
int have_process_perf_data;
int have_failure_prediction_enabled;
int have_retain_status_information;
int have_retain_nonstatus_information;
int has_been_resolved;
int register_object;
struct xodtemplate_service_struct *next;
} xodtemplate_service;
/* SERVICEGROUP TEMPLATE STRUCTURE */
typedef struct xodtemplate_servicegroup_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *servicegroup_name;
char *alias;
char *members;
char *servicegroup_members;
char *notes;
char *notes_url;
char *action_url;
int have_members;
int have_servicegroup_members;
int have_notes;
int have_notes_url;
int have_action_url;
int has_been_resolved;
int register_object;
struct xodtemplate_servicegroup_struct *next;
} xodtemplate_servicegroup;
/* SERVICEDEPENDENCY TEMPLATE STRUCTURE */
typedef struct xodtemplate_servicedependency_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *service_description;
char *dependent_host_name;
char *dependent_service_description;
char *servicegroup_name;
char *hostgroup_name;
char *dependent_servicegroup_name;
char *dependent_hostgroup_name;
char *dependency_period;
int inherits_parent;
int fail_notify_on_ok;
int fail_notify_on_unknown;
int fail_notify_on_warning;
int fail_notify_on_critical;
int fail_notify_on_pending;
int fail_execute_on_ok;
int fail_execute_on_unknown;
int fail_execute_on_warning;
int fail_execute_on_critical;
int fail_execute_on_pending;
int have_host_name;
int have_service_description;
int have_dependent_host_name;
int have_dependent_service_description;
int have_servicegroup_name;
int have_hostgroup_name;
int have_dependent_servicegroup_name;
int have_dependent_hostgroup_name;
int have_dependency_period;
int have_inherits_parent;
int have_notification_dependency_options;
int have_execution_dependency_options;
int has_been_resolved;
int register_object;
struct xodtemplate_servicedependency_struct *next;
} xodtemplate_servicedependency;
/* SERVICEESCALATION TEMPLATE STRUCTURE */
typedef struct xodtemplate_serviceescalation_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *service_description;
char *servicegroup_name;
char *hostgroup_name;
int first_notification;
int last_notification;
double notification_interval;
char *escalation_period;
int escalate_on_warning;
int escalate_on_unknown;
int escalate_on_critical;
int escalate_on_recovery;
char *contact_groups;
char *contacts;
int have_host_name;
int have_service_description;
int have_servicegroup_name;
int have_hostgroup_name;
int have_escalation_period;
int have_contact_groups;
int have_contacts;
int have_first_notification;
int have_last_notification;
int have_notification_interval;
int have_escalation_options;
int has_been_resolved;
int register_object;
struct xodtemplate_serviceescalation_struct *next;
} xodtemplate_serviceescalation;
/* HOSTDEPENDENCY TEMPLATE STRUCTURE */
typedef struct xodtemplate_hostdependency_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *dependent_host_name;
char *hostgroup_name;
char *dependent_hostgroup_name;
char *dependency_period;
int inherits_parent;
int fail_notify_on_up;
int fail_notify_on_down;
int fail_notify_on_unreachable;
int fail_notify_on_pending;
int fail_execute_on_up;
int fail_execute_on_down;
int fail_execute_on_unreachable;
int fail_execute_on_pending;
int have_host_name;
int have_dependent_host_name;
int have_hostgroup_name;
int have_dependent_hostgroup_name;
int have_dependency_period;
int have_inherits_parent;
int have_notification_dependency_options;
int have_execution_dependency_options;
int has_been_resolved;
int register_object;
struct xodtemplate_hostdependency_struct *next;
} xodtemplate_hostdependency;
/* HOSTESCALATION TEMPLATE STRUCTURE */
typedef struct xodtemplate_hostescalation_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *hostgroup_name;
int first_notification;
int last_notification;
double notification_interval;
char *escalation_period;
int escalate_on_down;
int escalate_on_unreachable;
int escalate_on_recovery;
char *contact_groups;
char *contacts;
int have_host_name;
int have_hostgroup_name;
int have_escalation_period;
int have_contact_groups;
int have_contacts;
int have_first_notification;
int have_last_notification;
int have_notification_interval;
int have_escalation_options;
int has_been_resolved;
int register_object;
struct xodtemplate_hostescalation_struct *next;
} xodtemplate_hostescalation;
/* HOSTEXTINFO TEMPLATE STRUCTURE */
typedef struct xodtemplate_hostextinfo_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *hostgroup_name;
char *notes;
char *notes_url;
char *action_url;
char *icon_image;
char *icon_image_alt;
char *vrml_image;
char *statusmap_image;
int x_2d;
int y_2d;
double x_3d;
double y_3d;
double z_3d;
int have_host_name;
int have_hostgroup_name;
int have_notes;
int have_notes_url;
int have_action_url;
int have_icon_image;
int have_icon_image_alt;
int have_vrml_image;
int have_statusmap_image;
int have_2d_coords;
int have_3d_coords;
int has_been_resolved;
int register_object;
struct xodtemplate_hostextinfo_struct *next;
} xodtemplate_hostextinfo;
/* SERVICEEXTINFO TEMPLATE STRUCTURE */
typedef struct xodtemplate_serviceextinfo_struct {
char *template;
char *name;
int _config_file;
int _start_line;
char *host_name;
char *hostgroup_name;
char *service_description;
char *notes;
char *notes_url;
char *action_url;
char *icon_image;
char *icon_image_alt;
int have_host_name;
int have_hostgroup_name;
int have_service_description;
int have_notes;
int have_notes_url;
int have_action_url;
int have_icon_image;
int have_icon_image_alt;
int has_been_resolved;
int register_object;
struct xodtemplate_serviceextinfo_struct *next;
} xodtemplate_serviceextinfo;
/* CONTACT LIST STRUCTURE */
typedef struct xodtemplate_contactlist_struct {
char *contact_name;
struct xodtemplate_contactlist_struct *next;
} xodtemplate_contactlist;
/* HOST LIST STRUCTURE */
typedef struct xodtemplate_hostlist_struct {
char *host_name;
struct xodtemplate_hostlist_struct *next;
} xodtemplate_hostlist;
/* SERVICE LIST STRUCTURE */
typedef struct xodtemplate_servicelist_struct {
char *host_name;
char *service_description;
struct xodtemplate_servicelist_struct *next;
} xodtemplate_servicelist;
/* MEMBER LIST STRUCTURE */
typedef struct xodtemplate_memberlist_struct {
char *name1;
char *name2;
struct xodtemplate_memberlist_struct *next;
} xodtemplate_memberlist;
/***** CHAINED HASH DATA STRUCTURES ******/
typedef struct xodtemplate_service_cursor_struct {
int xodtemplate_service_iterator;
xodtemplate_service *current_xodtemplate_service;
} xodtemplate_service_cursor;
/********* FUNCTION DEFINITIONS **********/
int xodtemplate_read_config_data(char *, int, int, int); /* top-level routine processes all config files */
int xodtemplate_grab_config_info(char *); /* grabs variables from main config file */
int xodtemplate_process_config_file(char *, int); /* process data in a specific config file */
int xodtemplate_process_config_dir(char *, int); /* process all files in a specific config directory */
#ifdef NSCORE
xodtemplate_memberlist *xodtemplate_expand_contactgroups_and_contacts(char *, char *, int, int);
int xodtemplate_expand_contactgroups(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
int xodtemplate_expand_contacts(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
int xodtemplate_add_contactgroup_members_to_memberlist(xodtemplate_memberlist **, xodtemplate_contactgroup *, int, int);
xodtemplate_memberlist *xodtemplate_expand_hostgroups_and_hosts(char *, char *, int, int);
int xodtemplate_expand_hostgroups(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
int xodtemplate_expand_hosts(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
int xodtemplate_add_hostgroup_members_to_memberlist(xodtemplate_memberlist **, xodtemplate_hostgroup *, int, int);
xodtemplate_memberlist *xodtemplate_expand_servicegroups_and_services(char *, char *, char *, int, int);
int xodtemplate_expand_servicegroups(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
int xodtemplate_expand_services(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, char *, int, int);
int xodtemplate_add_servicegroup_members_to_memberlist(xodtemplate_memberlist **, xodtemplate_servicegroup *, int, int);
char *xodtemplate_process_contactgroup_names(char *, int, int);
int xodtemplate_get_contactgroup_names(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
char *xodtemplate_process_hostgroup_names(char *, int, int);
int xodtemplate_get_hostgroup_names(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
char *xodtemplate_process_servicegroup_names(char *, int, int);
int xodtemplate_get_servicegroup_names(xodtemplate_memberlist **, xodtemplate_memberlist **, char *, int, int);
int xodtemplate_add_member_to_memberlist(xodtemplate_memberlist **, char *, char *);
int xodtemplate_free_memberlist(xodtemplate_memberlist **);
void xodtemplate_remove_memberlist_item(xodtemplate_memberlist *, xodtemplate_memberlist **);
#endif
int xodtemplate_begin_object_definition(char *, int, int, int);
int xodtemplate_add_object_property(char *, int);
int xodtemplate_end_object_definition(int);
int xodtemplate_parse_timeperiod_directive(xodtemplate_timeperiod *, char *, char *);
xodtemplate_daterange *xodtemplate_add_exception_to_timeperiod(xodtemplate_timeperiod *, int, int, int, int, int, int, int, int, int, int, int, int, char *);
int xodtemplate_get_month_from_string(char *, int *);
int xodtemplate_get_weekday_from_string(char *, int *);
xodtemplate_customvariablesmember *xodtemplate_add_custom_variable_to_host(xodtemplate_host *, char *, char *);
xodtemplate_customvariablesmember *xodtemplate_add_custom_variable_to_service(xodtemplate_service *, char *, char *);
xodtemplate_customvariablesmember *xodtemplate_add_custom_variable_to_contact(xodtemplate_contact *, char *, char *);
xodtemplate_customvariablesmember *xodtemplate_add_custom_variable_to_object(xodtemplate_customvariablesmember **, char *, char *);
int xodtemplate_register_objects(void);
int xodtemplate_free_memory(void);
#ifdef NSCORE
int xodtemplate_duplicate_objects(void);
int xodtemplate_duplicate_services(void);
int xodtemplate_inherit_object_properties(void);
int xodtemplate_resolve_objects(void);
int xodtemplate_sort_objects(void);
int xodtemplate_compare_strings1(char *, char *);
int xodtemplate_compare_strings2(char *, char *, char *, char *);
int xodtemplate_cache_objects(char *);
int xodtemplate_duplicate_service(xodtemplate_service *, char *);
int xodtemplate_duplicate_hostescalation(xodtemplate_hostescalation *, char *);
int xodtemplate_duplicate_serviceescalation(xodtemplate_serviceescalation *, char *, char *);
int xodtemplate_duplicate_hostdependency(xodtemplate_hostdependency *, char *, char *);
int xodtemplate_duplicate_servicedependency(xodtemplate_servicedependency *, char *, char *, char *, char *, char *, char *, char *, char *);
int xodtemplate_duplicate_hostextinfo(xodtemplate_hostextinfo *, char *);
int xodtemplate_duplicate_serviceextinfo(xodtemplate_serviceextinfo *, char *);
int xodtemplate_recombobulate_contactgroups(void);
int xodtemplate_recombobulate_contactgroup_subgroups(xodtemplate_contactgroup *, char **);
int xodtemplate_recombobulate_object_contacts(void);
int xodtemplate_recombobulate_hostgroups(void);
int xodtemplate_recombobulate_hostgroup_subgroups(xodtemplate_hostgroup *, char **);
int xodtemplate_recombobulate_servicegroups(void);
int xodtemplate_recombobulate_servicegroup_subgroups(xodtemplate_servicegroup *, char **);
int xodtemplate_resolve_timeperiod(xodtemplate_timeperiod *);
int xodtemplate_resolve_command(xodtemplate_command *);
int xodtemplate_resolve_contactgroup(xodtemplate_contactgroup *);
int xodtemplate_resolve_hostgroup(xodtemplate_hostgroup *);
int xodtemplate_resolve_servicegroup(xodtemplate_servicegroup *);
int xodtemplate_resolve_servicedependency(xodtemplate_servicedependency *);
int xodtemplate_resolve_serviceescalation(xodtemplate_serviceescalation *);
int xodtemplate_resolve_contact(xodtemplate_contact *);
int xodtemplate_resolve_host(xodtemplate_host *);
int xodtemplate_resolve_service(xodtemplate_service *);
int xodtemplate_resolve_hostdependency(xodtemplate_hostdependency *);
int xodtemplate_resolve_hostescalation(xodtemplate_hostescalation *);
int xodtemplate_resolve_hostextinfo(xodtemplate_hostextinfo *);
int xodtemplate_resolve_serviceextinfo(xodtemplate_serviceextinfo *);
int xodtemplate_sort_timeperiods(void);
int xodtemplate_sort_commands(void);
int xodtemplate_sort_contactgroups(void);
int xodtemplate_sort_hostgroups(void);
int xodtemplate_sort_servicegroups(void);
int xodtemplate_sort_contacts(void);
int xodtemplate_sort_hosts(void);
int xodtemplate_sort_services(void);
int xodtemplate_sort_servicedependencies(void);
int xodtemplate_sort_serviceescalations(void);
int xodtemplate_sort_hostdependencies(void);
int xodtemplate_sort_hostescalations(void);
int xodtemplate_merge_extinfo_ojects(void);
int xodtemplate_merge_host_extinfo_object(xodtemplate_host *, xodtemplate_hostextinfo *);
int xodtemplate_merge_service_extinfo_object(xodtemplate_service *, xodtemplate_serviceextinfo *);
xodtemplate_timeperiod *xodtemplate_find_timeperiod(char *);
xodtemplate_command *xodtemplate_find_command(char *);
xodtemplate_contactgroup *xodtemplate_find_contactgroup(char *);
xodtemplate_contactgroup *xodtemplate_find_real_contactgroup(char *);
xodtemplate_hostgroup *xodtemplate_find_hostgroup(char *);
xodtemplate_hostgroup *xodtemplate_find_real_hostgroup(char *);
xodtemplate_servicegroup *xodtemplate_find_servicegroup(char *);
xodtemplate_servicegroup *xodtemplate_find_real_servicegroup(char *);
xodtemplate_servicedependency *xodtemplate_find_servicedependency(char *);
xodtemplate_serviceescalation *xodtemplate_find_serviceescalation(char *);
xodtemplate_contact *xodtemplate_find_contact(char *);
xodtemplate_contact *xodtemplate_find_real_contact(char *);
xodtemplate_host *xodtemplate_find_host(char *);
xodtemplate_host *xodtemplate_find_real_host(char *);
xodtemplate_service *xodtemplate_find_service(char *);
xodtemplate_service *xodtemplate_find_real_service(char *, char *);
xodtemplate_hostdependency *xodtemplate_find_hostdependency(char *);
xodtemplate_hostescalation *xodtemplate_find_hostescalation(char *);
xodtemplate_hostextinfo *xodtemplate_find_hostextinfo(char *);
xodtemplate_serviceextinfo *xodtemplate_find_serviceextinfo(char *);
int xodtemplate_get_inherited_string(int *, char **, int *, char **);
int xodtemplate_clean_additive_string(char **);
int xodtemplate_clean_additive_strings(void);
#endif
int xodtemplate_register_timeperiod(xodtemplate_timeperiod *);
int xodtemplate_get_time_ranges(char *, unsigned long *, unsigned long *);
int xodtemplate_register_command(xodtemplate_command *);
int xodtemplate_register_contactgroup(xodtemplate_contactgroup *);
int xodtemplate_register_hostgroup(xodtemplate_hostgroup *);
int xodtemplate_register_servicegroup(xodtemplate_servicegroup *);
int xodtemplate_register_servicedependency(xodtemplate_servicedependency *);
int xodtemplate_register_serviceescalation(xodtemplate_serviceescalation *);
int xodtemplate_register_contact(xodtemplate_contact *);
int xodtemplate_register_host(xodtemplate_host *);
int xodtemplate_register_service(xodtemplate_service *);
int xodtemplate_register_hostdependency(xodtemplate_hostdependency *);
int xodtemplate_register_hostescalation(xodtemplate_hostescalation *);
int xodtemplate_init_xobject_skiplists(void);
int xodtemplate_free_xobject_skiplists(void);
int xodtemplate_skiplist_compare_text(const char *val1a, const char *val1b, const char *val2a, const char *val2b);
int xodtemplate_skiplist_compare_host_template(void *a, void *b);
int xodtemplate_skiplist_compare_service_template(void *a, void *b);
int xodtemplate_skiplist_compare_command_template(void *a, void *b);
int xodtemplate_skiplist_compare_timeperiod_template(void *a, void *b);
int xodtemplate_skiplist_compare_contact_template(void *a, void *b);
int xodtemplate_skiplist_compare_contactgroup_template(void *a, void *b);
int xodtemplate_skiplist_compare_hostgroup_template(void *a, void *b);
int xodtemplate_skiplist_compare_servicegroup_template(void *a, void *b);
int xodtemplate_skiplist_compare_hostdependency_template(void *a, void *b);
int xodtemplate_skiplist_compare_servicedependency_template(void *a, void *b);
int xodtemplate_skiplist_compare_hostescalation_template(void *a, void *b);
int xodtemplate_skiplist_compare_serviceescalation_template(void *a, void *b);
int xodtemplate_skiplist_compare_hostextinfo_template(void *a, void *b);
int xodtemplate_skiplist_compare_serviceextinfo_template(void *a, void *b);
int xodtemplate_skiplist_compare_host(void *a, void *b);
int xodtemplate_skiplist_compare_service(void *a, void *b);
int xodtemplate_skiplist_compare_contact(void *a, void *b);
int xodtemplate_skiplist_compare_contactgroup(void *a, void *b);
int xodtemplate_skiplist_compare_hostgroup(void *a, void *b);
int xodtemplate_skiplist_compare_servicegroup(void *a, void *b);
int xodtemplate_skiplist_compare_command(void *a, void *b);
int xodtemplate_skiplist_compare_timeperiod(void *a, void *b);
int xodtemplate_skiplist_compare_hostdependency(void *a, void *b);
int xodtemplate_skiplist_compare_servicedependency(void *a, void *b);
int xodtemplate_skiplist_compare_hostescalation(void *a, void *b);
int xodtemplate_skiplist_compare_serviceescalation(void *a, void *b);
#endif