$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
- -I${top_srcdir}/lib/icinga \
- -I${top_srcdir}/lib/cib
+ -I${top_srcdir}/lib/remoting \
+ -I${top_srcdir}/lib/icinga
checker_la_LDFLAGS = \
$(BOOST_LDFLAGS) \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
- ${top_builddir}/lib/icinga/libicinga.la \
- ${top_builddir}/lib/cib/libcib.la
+ ${top_builddir}/lib/remoting/libremoting.la \
+ ${top_builddir}/lib/icinga/libicinga.la
#include <i2-base.h>
#include <i2-icinga.h>
-#include <i2-cib.h>
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/ordered_index.hpp>
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
- -I${top_srcdir}/lib/icinga \
- -I${top_srcdir}/lib/cib
+ -I${top_srcdir}/lib/remoting \
+ -I${top_srcdir}/lib/icinga
cibsync_la_LDFLAGS = \
$(BOOST_LDFLAGS) \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
- ${top_builddir}/lib/icinga/libicinga.la \
- ${top_builddir}/lib/cib/libcib.la
+ ${top_builddir}/lib/remoting/libremoting.la \
+ ${top_builddir}/lib/icinga/libicinga.la
*/
#include <i2-base.h>
-#include <i2-jsonrpc.h>
+#include <i2-remoting.h>
#include <i2-icinga.h>
-#include <i2-cib.h>
#include "cibsynccomponent.h"
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
- -I${top_srcdir}/lib/icinga \
- -I${top_srcdir}/lib/cib
+ -I${top_srcdir}/lib/remoting \
+ -I${top_srcdir}/lib/icinga
compat_la_LDFLAGS = \
$(BOOST_LDFLAGS) \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
- ${top_builddir}/lib/icinga/libicinga.la \
- ${top_builddir}/lib/cib/libcib.la
+ ${top_builddir}/lib/remoting/libremoting.la \
+ ${top_builddir}/lib/icinga/libicinga.la
*/
#include <i2-base.h>
-#include <i2-jsonrpc.h>
+#include <i2-remoting.h>
#include <i2-icinga.h>
-#include <i2-cib.h>
#include <fstream>
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
- -I${top_srcdir}/lib/icinga \
- -I${top_srcdir}/lib/cib
+ -I${top_srcdir}/lib/remoting \
+ -I${top_srcdir}/lib/icinga
convenience_la_LDFLAGS = \
$(BOOST_LDFLAGS) \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
- ${top_builddir}/lib/icinga/libicinga.la \
- ${top_builddir}/lib/cib/libcib.la
+ ${top_builddir}/lib/remoting/libremoting.la \
+ ${top_builddir}/lib/icinga/libicinga.la
#include <i2-base.h>
#include <i2-config.h>
-#include <i2-jsonrpc.h>
+#include <i2-remoting.h>
#include <i2-icinga.h>
-#include <i2-cib.h>
#include "conveniencecomponent.h"
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
- -I${top_srcdir}/lib/icinga \
- -I${top_srcdir}/lib/cib
+ -I${top_srcdir}/lib/remoting \
+ -I${top_srcdir}/lib/icinga
delegation_la_LDFLAGS = \
$(BOOST_LDFLAGS) \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
- ${top_builddir}/lib/icinga/libicinga.la \
- ${top_builddir}/lib/cib/libcib.la
+ ${top_builddir}/lib/remoting/libremoting.la \
+ ${top_builddir}/lib/icinga/libicinga.la
#include <i2-base.h>
#include <i2-icinga.h>
-#include <i2-cib.h>
#include "delegationcomponent.h"
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
+ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga
demo_la_LDFLAGS = \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
+ ${top_builddir}/lib/remoting/libremoting.la \
${top_builddir}/lib/icinga/libicinga.la
*/
#include <i2-base.h>
-#include <i2-jsonrpc.h>
+#include <i2-remoting.h>
#include <i2-icinga.h>
#include "democomponent.h"
icinga-app/Makefile
lib/Makefile
lib/base/Makefile
-lib/cib/Makefile
lib/config/Makefile
lib/icinga/Makefile
-lib/jsonrpc/Makefile
+lib/remoting/Makefile
test/Makefile
third-party/Makefile
third-party/cJSON/Makefile
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
+ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \
-I${top_srcdir}
$(BOOST_SYSTEM_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
+ ${top_builddir}/lib/remoting/libremoting.la \
${top_builddir}/lib/icinga/libicinga.la \
-dlopen ${top_builddir}/components/checker/checker.la \
-dlopen ${top_builddir}/components/cibsync/cibsync.la \
SUBDIRS = \
base \
config \
- jsonrpc \
- icinga \
- cib
+ remoting \
+ icinga
+++ /dev/null
-## Process this file with automake to produce Makefile.in
-
-pkglib_LTLIBRARIES = \
- libcib.la
-
-libcib_la_SOURCES = \
- cib.cpp \
- cib.h \
- host.cpp \
- host.h \
- hostgroup.cpp \
- hostgroup.h \
- i2-cib.h \
- macroprocessor.cpp \
- macroprocessor.h \
- nagioschecktask.cpp \
- nagioschecktask.h \
- nullchecktask.cpp \
- nullchecktask.h \
- service.cpp \
- service.h \
- servicegroup.cpp \
- servicegroup.h \
- servicestatechangemessage.cpp \
- servicestatechangemessage.h
-
-libcib_la_CPPFLAGS = \
- -DI2_CIB_BUILD \
- $(BOOST_CPPFLAGS) \
- -I${top_srcdir}/lib/base \
- -I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
- -I${top_srcdir}/lib/icinga
-
-libcib_la_LDFLAGS = \
- $(BOOST_LDFLAGS) \
- -no-undefined \
- @RELEASE_INFO@ \
- @VERSION_INFO@
-
-libcib_la_LIBADD = \
- $(BOOST_SIGNALS_LIB) \
- $(BOOST_THREAD_LIB) \
- ${top_builddir}/lib/base/libbase.la \
- ${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la \
- ${top_builddir}/lib/icinga/libicinga.la
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{538D7F53-A6A0-459A-AE4F-70DB135BC9AF}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>cib</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <IncludePath>$(SolutionDir)\lib\base;$(SolutionDir)\lib\icinga;$(SolutionDir)\lib\jsonrpc;$(SolutionDir)\lib\config;$(IncludePath)</IncludePath>
- <LibraryPath>$(OutDir);$(LibraryPath)</LibraryPath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <IncludePath>$(SolutionDir)\lib\base;$(SolutionDir)\lib\icinga;$(SolutionDir)\lib\jsonrpc;$(SolutionDir)\lib\config;$(IncludePath)</IncludePath>
- <LibraryPath>$(OutDir);$(LibraryPath)</LibraryPath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>_WINDLL;I2_CIB_BUILD;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <PrecompiledHeaderFile>i2-cib.h</PrecompiledHeaderFile>
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>base.lib;icinga.lib;jsonrpc.lib;config.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>_WINDLL;I2_CIB_BUILD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <PrecompiledHeaderFile>i2-cib.h</PrecompiledHeaderFile>
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>base.lib;icinga.lib;jsonrpc.lib;config.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="cib.h" />
- <ClInclude Include="host.h" />
- <ClInclude Include="hostgroup.h" />
- <ClInclude Include="i2-cib.h" />
- <ClInclude Include="macroprocessor.h" />
- <ClInclude Include="nagioschecktask.h" />
- <ClInclude Include="nullchecktask.h" />
- <ClInclude Include="service.h" />
- <ClInclude Include="servicegroup.h" />
- <ClInclude Include="servicestatechangemessage.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="cib.cpp" />
- <ClCompile Include="host.cpp" />
- <ClCompile Include="hostgroup.cpp" />
- <ClCompile Include="i2-cib.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="macroprocessor.cpp" />
- <ClCompile Include="nagioschecktask.cpp" />
- <ClCompile Include="nullchecktask.cpp" />
- <ClCompile Include="service.cpp" />
- <ClCompile Include="servicegroup.cpp" />
- <ClCompile Include="servicestatechangemessage.cpp" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Quelldateien">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Headerdateien">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="cib.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="host.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="hostgroup.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="i2-cib.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="macroprocessor.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="nagioschecktask.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="service.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="servicegroup.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="nullchecktask.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- <ClInclude Include="servicestatechangemessage.h">
- <Filter>Headerdateien</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="cib.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="host.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="hostgroup.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="macroprocessor.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="nagioschecktask.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="service.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="servicegroup.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="i2-cib.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="nullchecktask.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- <ClCompile Include="servicestatechangemessage.cpp">
- <Filter>Quelldateien</Filter>
- </ClCompile>
- </ItemGroup>
-</Project>
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
- * 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 *
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
- ******************************************************************************/
-
-/* This file is used by MSVC to generate the pre-compiled hedader. */
-
-#include "i2-cib.h"
+++ /dev/null
-/******************************************************************************
- * 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 *
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
- ******************************************************************************/
-
-#ifndef I2CIB_H
-#define I2CIB_H
-
-/**
- * @defgroup cib Common Information Base
- *
- * The CIB component implements functionality to gather status
- * updates from all the other Icinga components.
- */
-
-#include <i2-config.h>
-#include <i2-icinga.h>
-
-#ifdef I2_CIB_BUILD
-# define I2_CIB_API I2_EXPORT
-#else /* I2_CIB_BUILD */
-# define I2_CIB_API I2_IMPORT
-#endif /* I2_CIB_BUILD */
-
-#include "host.h"
-#include "hostgroup.h"
-#include "service.h"
-#include "servicegroup.h"
-
-#include "macroprocessor.h"
-#include "nagioschecktask.h"
-#include "nullchecktask.h"
-
-#include "servicestatechangemessage.h"
-
-#include "cib.h"
-
-#endif /* I2CIB_H */
libicinga.la
libicinga_la_SOURCES = \
- endpoint.cpp \
- endpoint.h \
- endpointmanager.cpp \
- endpointmanager.h \
+ cib.cpp \
+ cib.h \
+ host.cpp \
+ hostgroup.cpp \
+ hostgroup.h \
+ host.h \
+ i2-icinga.h \
icingaapplication.cpp \
icingaapplication.h \
- i2-icinga.h
+ macroprocessor.cpp \
+ macroprocessor.h \
+ nagioschecktask.cpp \
+ nagioschecktask.h \
+ nullchecktask.cpp \
+ nullchecktask.h \
+ service.cpp \
+ servicegroup.cpp \
+ servicegroup.h \
+ service.h \
+ servicestatechangemessage.cpp \
+ servicestatechangemessage.h
libicinga_la_CPPFLAGS = \
-DI2_ICINGA_BUILD \
$(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \
- -I${top_srcdir}/lib/jsonrpc \
+ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}
libicinga_la_LDFLAGS = \
$(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \
- ${top_builddir}/lib/jsonrpc/libjsonrpc.la
+ ${top_builddir}/lib/remoting/libremoting.la
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API CIB
+class I2_ICINGA_API CIB
{
public:
static void UpdateTaskStatistics(long tv, int num);
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API Host : public DynamicObject
+class I2_ICINGA_API Host : public DynamicObject
{
public:
typedef shared_ptr<Host> Ptr;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API HostGroup : public DynamicObject
+class I2_ICINGA_API HostGroup : public DynamicObject
{
public:
typedef shared_ptr<HostGroup> Ptr;
#include <i2-base.h>
#include <i2-config.h>
-#include <i2-jsonrpc.h>
-#include <set>
+#include <i2-remoting.h>
using boost::iterator_range;
using boost::algorithm::is_any_of;
#include "endpointmanager.h"
#include "icingaapplication.h"
+#include "host.h"
+#include "hostgroup.h"
+#include "service.h"
+#include "servicegroup.h"
+
+#include "macroprocessor.h"
+#include "nagioschecktask.h"
+#include "nullchecktask.h"
+
+#include "servicestatechangemessage.h"
+
+#include "cib.h"
+
#endif /* I2ICINGA_H */
EndpointManager::GetInstance()->SetIdentity(identity);
m_SSLContext = Utility::MakeSSLContext(GetCertificateFile(), GetCertificateFile(), GetCAFile());
+
+ EndpointManager::GetInstance()->SetSSLContext(m_SSLContext);
}
/* create the primary RPC listener */
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API MacroProcessor
+class I2_ICINGA_API MacroProcessor
{
public:
static String ResolveMacros(const String& str, const vector<Dictionary::Ptr>& macroDicts);
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API NagiosCheckTask
+class I2_ICINGA_API NagiosCheckTask
{
public:
static void Register(void);
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API NullCheckTask
+class I2_ICINGA_API NullCheckTask
{
public:
static void Register(void);
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
class CheckResultMessage;
class ServiceStatusMessage;
-class I2_CIB_API Service : public DynamicObject
+class I2_ICINGA_API Service : public DynamicObject
{
public:
typedef shared_ptr<Service> Ptr;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API ServiceGroup : public DynamicObject
+class I2_ICINGA_API ServiceGroup : public DynamicObject
{
public:
typedef shared_ptr<ServiceGroup> Ptr;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-cib.h"
+#include "i2-icinga.h"
using namespace icinga;
namespace icinga
{
-class I2_CIB_API ServiceStateChangeMessage : public MessagePart
+class I2_ICINGA_API ServiceStateChangeMessage : public MessagePart
{
public:
ServiceStateChangeMessage(void) : MessagePart() { }
pkglib_LTLIBRARIES = \
- libjsonrpc.la
+ libremoting.la
-libjsonrpc_la_SOURCES = \
- i2-jsonrpc.h \
+libremoting_la_SOURCES = \
+ endpoint.cpp \
+ endpoint.h \
+ endpointmanager.cpp \
+ endpointmanager.h \
+ i2-remoting.h \
jsonrpcclient.cpp \
jsonrpcclient.h \
jsonrpcserver.cpp \
responsemessage.cpp \
responsemessage.h
-libjsonrpc_la_CPPFLAGS = \
- -DI2_JSONRPC_BUILD \
+libremoting_la_CPPFLAGS = \
+ -DI2_REMOTING_BUILD \
$(BOOST_CPPFLAGS) \
- -I${top_srcdir}/lib/base
+ -I${top_srcdir}/lib/base \
+ -I${top_srcdir}/lib/config
-libjsonrpc_la_LDFLAGS = \
+libremoting_la_LDFLAGS = \
$(BOOST_LDFLAGS) \
-no-undefined \
@RELEASE_INFO@ \
@VERSION_INFO@
-libjsonrpc_la_LIBADD = \
- ${top_builddir}/lib/base/libbase.la
+libremoting_la_LIBADD = \
+ ${top_builddir}/lib/base/libbase.la \
+ ${top_builddir}/lib/config/libconfig.la
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-icinga.h"
+#include "i2-remoting.h"
using namespace icinga;
String subscription;
BOOST_FOREACH(tie(tuples::ignore, subscription), oldSubscriptions) {
if (!newSubscriptions || !newSubscriptions->Contains(subscription)) {
- Logger::Write(LogInformation, "icinga", "Removed subscription for '" + GetName() + "': " + subscription);
+ Logger::Write(LogInformation, "remoting", "Removed subscription for '" + GetName() + "': " + subscription);
OnSubscriptionUnregistered(GetSelf(), subscription);
}
}
String subscription;
BOOST_FOREACH(tie(tuples::ignore, subscription), newSubscriptions) {
if (!oldSubscriptions || !oldSubscriptions->Contains(subscription)) {
- Logger::Write(LogInformation, "icinga", "New subscription for '" + GetName() + "': " + subscription);
+ Logger::Write(LogInformation, "remoting", "New subscription for '" + GetName() + "': " + subscription);
OnSubscriptionRegistered(GetSelf(), subscription);
}
}
*
* @ingroup icinga
*/
-class I2_ICINGA_API Endpoint : public DynamicObject
+class I2_REMOTING_API Endpoint : public DynamicObject
{
public:
typedef shared_ptr<Endpoint> Ptr;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-icinga.h"
+#include "i2-remoting.h"
using namespace icinga;
m_ReconnectTimer->Start();
}
+/**
+ * Sets the SSL context.
+ *
+ * @param sslContext The new SSL context.
+ */
+void EndpointManager::SetSSLContext(const shared_ptr<SSL_CTX>& sslContext)
+{
+ m_SSLContext = sslContext;
+}
+
+/**
+ * Retrieves the SSL context.
+ *
+ * @returns The SSL context.
+ */
+shared_ptr<SSL_CTX> EndpointManager::GetSSLContext(void) const
+{
+ return m_SSLContext;
+}
+
/**
* Sets the identity of the endpoint manager. This identity is used when
* connecting to remote peers.
*/
void EndpointManager::AddListener(const String& service)
{
- shared_ptr<SSL_CTX> sslContext = IcingaApplication::GetInstance()->GetSSLContext();
+ shared_ptr<SSL_CTX> sslContext = GetSSLContext();
if (!sslContext)
throw_exception(logic_error("SSL context is required for AddListener()"));
* @param service The remote port.
*/
void EndpointManager::AddConnection(const String& node, const String& service) {
- JsonRpcClient::Ptr client = boost::make_shared<JsonRpcClient>(RoleOutbound,
- IcingaApplication::GetInstance()->GetSSLContext());
+ shared_ptr<SSL_CTX> sslContext = GetSSLContext();
+
+ if (!sslContext)
+ throw_exception(logic_error("SSL context is required for AddConnection()"));
+
+ JsonRpcClient::Ptr client = boost::make_shared<JsonRpcClient>(RoleOutbound, sslContext);
client->Connect(node, service);
NewClientHandler(client);
}
*
* @ingroup icinga
*/
-class I2_ICINGA_API EndpointManager : public Object
+class I2_REMOTING_API EndpointManager : public Object
{
public:
typedef shared_ptr<EndpointManager> Ptr;
typedef weak_ptr<EndpointManager> WeakPtr;
-// typedef map<String, Endpoint::Ptr>::iterator Iterator;
-
EndpointManager(void);
static EndpointManager::Ptr GetInstance(void);
String m_Identity;
Endpoint::Ptr m_Endpoint;
+ shared_ptr<SSL_CTX> m_SSLContext;
+
Timer::Ptr m_SubscriptionTimer;
Timer::Ptr m_ReconnectTimer;
*
* @ingroup icinga
*/
- struct I2_ICINGA_API PendingRequest
+ struct I2_REMOTING_API PendingRequest
{
double Timeout;
RequestMessage Request;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#ifndef I2JSONRPC_H
-#define I2JSONRPC_H
+#ifndef I2REMOTING_H
+#define I2REMOTING_H
/**
- * @defgroup jsonrpc JSON-RPC
+ * @defgroup remoting JSON-RPC library
*
* The JSON-RPC library implements server and client classes for the JSON-RPC
* protocol.
*/
-#include <map>
#include <i2-base.h>
+#include <i2-config.h>
-#ifdef I2_JSONRPC_BUILD
-# define I2_JSONRPC_API I2_EXPORT
-#else /* I2_JSONRPC_BUILD */
-# define I2_JSONRPC_API I2_IMPORT
-#endif /* I2_JSONRPC_BUILD */
+#ifdef I2_REMOTING_BUILD
+# define I2_REMOTING_API I2_EXPORT
+#else /* I2_REMOTING_BUILD */
+# define I2_REMOTING_API I2_IMPORT
+#endif /* I2_REMOTING_BUILD */
#include "messagepart.h"
#include "requestmessage.h"
#include "responsemessage.h"
#include "jsonrpcclient.h"
#include "jsonrpcserver.h"
+#include "endpoint.h"
+#include "endpointmanager.h"
-#endif /* I2JSONRPC_H */
+#endif /* I2REMOTING_H */
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-jsonrpc.h"
+#include "i2-remoting.h"
using namespace icinga;
/**
* A JSON-RPC client.
*
- * @ingroup jsonrpc
+ * @ingroup remoting
*/
-class I2_JSONRPC_API JsonRpcClient : public TlsClient
+class I2_REMOTING_API JsonRpcClient : public TlsClient
{
public:
typedef shared_ptr<JsonRpcClient> Ptr;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-jsonrpc.h"
+#include "i2-remoting.h"
using namespace icinga;
/**
* A JSON-RPC server.
*
- * @ingroup jsonrpc
+ * @ingroup remoting
*/
-class I2_JSONRPC_API JsonRpcServer : public TcpServer
+class I2_REMOTING_API JsonRpcServer : public TcpServer
{
public:
typedef shared_ptr<JsonRpcServer> Ptr;
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-jsonrpc.h"
+#include "i2-remoting.h"
using namespace icinga;
/**
* A part of an RPC message.
*
- * @ingroup jsonrpc
+ * @ingroup remoting
*/
-class I2_JSONRPC_API MessagePart
+class I2_REMOTING_API MessagePart
{
public:
MessagePart(void);
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-jsonrpc.h"
+#include "i2-remoting.h"
using namespace icinga;
/**
* A JSON-RPC request message.
*
- * @ingroup jsonrpc
+ * @ingroup remoting
*/
-class I2_JSONRPC_API RequestMessage : public MessagePart
+class I2_REMOTING_API RequestMessage : public MessagePart
{
public:
/**
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
-#include "i2-jsonrpc.h"
+#include "i2-remoting.h"
using namespace icinga;
/**
* A JSON-RPC response message.
*
- * @ingroup jsonrpc
+ * @ingroup remoting
*/
-class I2_JSONRPC_API ResponseMessage : public MessagePart
+class I2_REMOTING_API ResponseMessage : public MessagePart
{
public:
/**