/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */

#include "base/configobject.hpp"
#include <cstdint>

library remote;

namespace icinga
{

class Endpoint : ConfigObject
{
	load_after Zone;

	[config] String host;
	[config, required] String port {
		default {{{ return "5665"; }}}
	};
	[config] double log_duration {
		default {{{ return 86400; }}}
	};

	[state] Timestamp local_log_position;
	[state] Timestamp remote_log_position;
	[state] "unsigned long" icinga_version {
		default {{{ return 0; }}}
	};
	[state] uint_fast64_t capabilities {
		default {{{ return 0; }}}
	};

	[no_user_modify] bool connecting;
	[no_user_modify] bool syncing;

	[no_user_modify, no_storage] bool connected {
		get;
	};

	Timestamp last_message_sent;
	Timestamp last_message_received;

	[no_user_modify, no_storage] double messages_sent_per_second {
		get;
	};

	[no_user_modify, no_storage] double messages_received_per_second {
		get;
	};

	[no_user_modify, no_storage] double bytes_sent_per_second {
		get;
	};

	[no_user_modify, no_storage] double bytes_received_per_second {
		get;
	};
};

}
