Refactored the libraries.

This commit is contained in:
Gunnar Beutner 2012-09-10 14:07:32 +02:00
parent c7b29c6b46
commit 037e3d913b
60 changed files with 164 additions and 432 deletions

View File

@ -12,9 +12,8 @@ checker_la_CPPFLAGS = \
$(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) \
@ -28,6 +27,5 @@ checker_la_LIBADD = \
$(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

View File

@ -28,7 +28,6 @@
#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>

View File

@ -12,9 +12,8 @@ cibsync_la_CPPFLAGS = \
$(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) \
@ -28,6 +27,5 @@ cibsync_la_LIBADD = \
$(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

View File

@ -27,9 +27,8 @@
*/
#include <i2-base.h>
#include <i2-jsonrpc.h>
#include <i2-remoting.h>
#include <i2-icinga.h>
#include <i2-cib.h>
#include "cibsynccomponent.h"

View File

@ -12,9 +12,8 @@ compat_la_CPPFLAGS = \
$(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) \
@ -28,6 +27,5 @@ compat_la_LIBADD = \
$(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

View File

@ -27,9 +27,8 @@
*/
#include <i2-base.h>
#include <i2-jsonrpc.h>
#include <i2-remoting.h>
#include <i2-icinga.h>
#include <i2-cib.h>
#include <fstream>

View File

@ -12,9 +12,8 @@ convenience_la_CPPFLAGS = \
$(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) \
@ -28,6 +27,5 @@ convenience_la_LIBADD = \
$(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

View File

@ -30,9 +30,8 @@
#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"

View File

@ -12,9 +12,8 @@ delegation_la_CPPFLAGS = \
$(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) \
@ -28,6 +27,5 @@ delegation_la_LIBADD = \
$(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

View File

@ -28,7 +28,6 @@
#include <i2-base.h>
#include <i2-icinga.h>
#include <i2-cib.h>
#include "delegationcomponent.h"

View File

@ -12,7 +12,7 @@ demo_la_CPPFLAGS = \
$(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 = \
@ -27,5 +27,5 @@ demo_la_LIBADD = \
$(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

View File

@ -27,7 +27,7 @@
*/
#include <i2-base.h>
#include <i2-jsonrpc.h>
#include <i2-remoting.h>
#include <i2-icinga.h>
#include "democomponent.h"

View File

@ -78,10 +78,9 @@ docs/Doxyfile
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

View File

@ -13,7 +13,7 @@ icinga_CPPFLAGS = \
$(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}
@ -27,6 +27,7 @@ icinga_LDADD = \
$(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 \

View File

@ -4,6 +4,5 @@
SUBDIRS = \
base \
config \
jsonrpc \
icinga \
cib
remoting \
icinga

View File

@ -1,47 +0,0 @@
## 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

View File

@ -1,114 +0,0 @@
<?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>

View File

@ -1,77 +0,0 @@
<?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>

View File

@ -1,22 +0,0 @@
/******************************************************************************
* 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"

View File

@ -1,52 +0,0 @@
/******************************************************************************
* 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 */

View File

@ -5,20 +5,34 @@ pkglib_LTLIBRARIES = \
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 = \
@ -31,4 +45,4 @@ libicinga_la_LIBADD = \
$(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

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API CIB
class I2_ICINGA_API CIB
{
public:
static void UpdateTaskStatistics(long tv, int num);

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API Host : public DynamicObject
class I2_ICINGA_API Host : public DynamicObject
{
public:
typedef shared_ptr<Host> Ptr;

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API HostGroup : public DynamicObject
class I2_ICINGA_API HostGroup : public DynamicObject
{
public:
typedef shared_ptr<HostGroup> Ptr;

View File

@ -29,8 +29,7 @@
#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;
@ -45,4 +44,17 @@ 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 */

View File

@ -134,6 +134,8 @@ int IcingaApplication::Main(const vector<String>& args)
EndpointManager::GetInstance()->SetIdentity(identity);
m_SSLContext = Utility::MakeSSLContext(GetCertificateFile(), GetCertificateFile(), GetCAFile());
EndpointManager::GetInstance()->SetSSLContext(m_SSLContext);
}
/* create the primary RPC listener */

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API MacroProcessor
class I2_ICINGA_API MacroProcessor
{
public:
static String ResolveMacros(const String& str, const vector<Dictionary::Ptr>& macroDicts);

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API NagiosCheckTask
class I2_ICINGA_API NagiosCheckTask
{
public:
static void Register(void);

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API NullCheckTask
class I2_ICINGA_API NullCheckTask
{
public:
static void Register(void);

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -41,7 +41,7 @@ enum ServiceStateType
class CheckResultMessage;
class ServiceStatusMessage;
class I2_CIB_API Service : public DynamicObject
class I2_ICINGA_API Service : public DynamicObject
{
public:
typedef shared_ptr<Service> Ptr;

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API ServiceGroup : public DynamicObject
class I2_ICINGA_API ServiceGroup : public DynamicObject
{
public:
typedef shared_ptr<ServiceGroup> Ptr;

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-cib.h"
#include "i2-icinga.h"
using namespace icinga;

View File

@ -23,7 +23,7 @@
namespace icinga
{
class I2_CIB_API ServiceStateChangeMessage : public MessagePart
class I2_ICINGA_API ServiceStateChangeMessage : public MessagePart
{
public:
ServiceStateChangeMessage(void) : MessagePart() { }

View File

@ -2,10 +2,14 @@
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 \
@ -17,16 +21,18 @@ libjsonrpc_la_SOURCES = \
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

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-icinga.h"
#include "i2-remoting.h"
using namespace icinga;
@ -234,7 +234,7 @@ void Endpoint::OnAttributeChanged(const String& name, const Value& oldValue)
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);
}
}
@ -244,7 +244,7 @@ void Endpoint::OnAttributeChanged(const String& name, const Value& oldValue)
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);
}
}

View File

@ -30,7 +30,7 @@ class EndpointManager;
*
* @ingroup icinga
*/
class I2_ICINGA_API Endpoint : public DynamicObject
class I2_REMOTING_API Endpoint : public DynamicObject
{
public:
typedef shared_ptr<Endpoint> Ptr;

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-icinga.h"
#include "i2-remoting.h"
using namespace icinga;
@ -43,6 +43,26 @@ EndpointManager::EndpointManager(void)
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.
@ -81,7 +101,7 @@ String EndpointManager::GetIdentity(void) const
*/
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()"));
@ -108,8 +128,12 @@ void EndpointManager::AddListener(const String& service)
* @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);
}

View File

@ -28,14 +28,12 @@ namespace icinga
*
* @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);
@ -68,6 +66,8 @@ private:
String m_Identity;
Endpoint::Ptr m_Endpoint;
shared_ptr<SSL_CTX> m_SSLContext;
Timer::Ptr m_SubscriptionTimer;
Timer::Ptr m_ReconnectTimer;
@ -80,7 +80,7 @@ private:
*
* @ingroup icinga
*/
struct I2_ICINGA_API PendingRequest
struct I2_REMOTING_API PendingRequest
{
double Timeout;
RequestMessage Request;

View File

@ -17,29 +17,31 @@
* 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 */

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-jsonrpc.h"
#include "i2-remoting.h"
using namespace icinga;

View File

@ -26,9 +26,9 @@ 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;

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-jsonrpc.h"
#include "i2-remoting.h"
using namespace icinga;

View File

@ -26,9 +26,9 @@ 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;

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-jsonrpc.h"
#include "i2-remoting.h"
using namespace icinga;

View File

@ -30,9 +30,9 @@ typedef ::cJSON json_t;
/**
* A part of an RPC message.
*
* @ingroup jsonrpc
* @ingroup remoting
*/
class I2_JSONRPC_API MessagePart
class I2_REMOTING_API MessagePart
{
public:
MessagePart(void);

View File

@ -17,6 +17,6 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-jsonrpc.h"
#include "i2-remoting.h"
using namespace icinga;

View File

@ -26,9 +26,9 @@ 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:
/**

View File

@ -17,6 +17,6 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/
#include "i2-jsonrpc.h"
#include "i2-remoting.h"
using namespace icinga;

View File

@ -26,9 +26,9 @@ 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:
/**