icinga2/icinga/endpoint.cpp

168 lines
4.1 KiB
C++
Raw Normal View History

/******************************************************************************
* Icinga 2 *
* Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation; either version 2 *
* 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 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 *
2012-05-11 13:33:57 +02:00
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-icinga.h"
using namespace icinga;
Endpoint::Endpoint(void)
{
2012-05-08 10:13:15 +02:00
m_ReceivedWelcome = false;
m_SentWelcome = false;
}
string Endpoint::GetIdentity(void) const
{
return m_Identity;
}
void Endpoint::SetIdentity(string identity)
{
m_Identity = identity;
2012-04-23 16:49:02 +02:00
EventArgs ea;
ea.Source = shared_from_this();
OnIdentityChanged(ea);
}
bool Endpoint::HasIdentity(void) const
{
return !m_Identity.empty();
}
2012-04-18 15:22:25 +02:00
EndpointManager::Ptr Endpoint::GetEndpointManager(void) const
{
return m_EndpointManager.lock();
2012-04-18 15:22:25 +02:00
}
void Endpoint::SetEndpointManager(EndpointManager::WeakPtr manager)
2012-04-18 15:22:25 +02:00
{
m_EndpointManager = manager;
}
2012-04-16 16:27:41 +02:00
void Endpoint::RegisterMethodSink(string method)
{
2012-04-16 16:27:41 +02:00
m_MethodSinks.insert(method);
}
2012-04-16 16:27:41 +02:00
void Endpoint::UnregisterMethodSink(string method)
{
2012-04-16 16:27:41 +02:00
m_MethodSinks.erase(method);
}
2012-04-18 15:22:25 +02:00
bool Endpoint::IsMethodSink(string method) const
{
2012-04-16 16:27:41 +02:00
return (m_MethodSinks.find(method) != m_MethodSinks.end());
}
2012-05-08 09:20:42 +02:00
void Endpoint::ForEachMethodSink(function<int (const NewMethodEventArgs&)> callback)
2012-04-18 15:22:25 +02:00
{
for (set<string>::iterator i = m_MethodSinks.begin(); i != m_MethodSinks.end(); i++) {
NewMethodEventArgs nmea;
nmea.Source = shared_from_this();
nmea.Method = *i;
callback(nmea);
}
}
2012-04-16 16:27:41 +02:00
void Endpoint::RegisterMethodSource(string method)
{
m_MethodSources.insert(method);
}
void Endpoint::UnregisterMethodSource(string method)
{
m_MethodSources.erase(method);
}
2012-04-18 15:22:25 +02:00
bool Endpoint::IsMethodSource(string method) const
2012-04-16 16:27:41 +02:00
{
return (m_MethodSources.find(method) != m_MethodSources.end());
}
2012-04-18 15:22:25 +02:00
2012-05-08 09:20:42 +02:00
void Endpoint::ForEachMethodSource(function<int (const NewMethodEventArgs&)> callback)
2012-04-18 15:22:25 +02:00
{
for (set<string>::iterator i = m_MethodSources.begin(); i != m_MethodSources.end(); i++) {
NewMethodEventArgs nmea;
nmea.Source = shared_from_this();
nmea.Method = *i;
callback(nmea);
}
}
void Endpoint::ClearMethodSinks(void)
{
m_MethodSinks.clear();
}
void Endpoint::ClearMethodSources(void)
{
m_MethodSources.clear();
}
int Endpoint::CountMethodSinks(void) const
{
return m_MethodSinks.size();
}
int Endpoint::CountMethodSources(void) const
{
return m_MethodSources.size();
}
set<string>::const_iterator Endpoint::BeginSinks(void) const
{
return m_MethodSinks.begin();
}
set<string>::const_iterator Endpoint::EndSinks(void) const
{
return m_MethodSinks.end();
}
set<string>::const_iterator Endpoint::BeginSources(void) const
{
return m_MethodSources.begin();
}
set<string>::const_iterator Endpoint::EndSources(void) const
{
return m_MethodSources.end();
}
2012-05-08 10:13:15 +02:00
void Endpoint::SetReceivedWelcome(bool value)
{
2012-05-08 10:13:15 +02:00
m_ReceivedWelcome = value;
}
2012-05-08 10:13:15 +02:00
bool Endpoint::GetReceivedWelcome(void) const
{
2012-05-08 10:13:15 +02:00
return m_ReceivedWelcome;
}
2012-05-08 10:13:15 +02:00
void Endpoint::SetSentWelcome(bool value)
{
m_SentWelcome = value;
}
bool Endpoint::GetSentWelcome(void) const
{
return m_SentWelcome;
2012-05-09 13:49:26 +02:00
}