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) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \ -I${top_srcdir}/lib/icinga
-I${top_srcdir}/lib/cib
checker_la_LDFLAGS = \ checker_la_LDFLAGS = \
$(BOOST_LDFLAGS) \ $(BOOST_LDFLAGS) \
@ -28,6 +27,5 @@ checker_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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 \ ${top_builddir}/lib/icinga/libicinga.la
${top_builddir}/lib/cib/libcib.la

View File

@ -28,7 +28,6 @@
#include <i2-base.h> #include <i2-base.h>
#include <i2-icinga.h> #include <i2-icinga.h>
#include <i2-cib.h>
#include <boost/multi_index_container.hpp> #include <boost/multi_index_container.hpp>
#include <boost/multi_index/ordered_index.hpp> #include <boost/multi_index/ordered_index.hpp>

View File

@ -12,9 +12,8 @@ cibsync_la_CPPFLAGS = \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \ -I${top_srcdir}/lib/icinga
-I${top_srcdir}/lib/cib
cibsync_la_LDFLAGS = \ cibsync_la_LDFLAGS = \
$(BOOST_LDFLAGS) \ $(BOOST_LDFLAGS) \
@ -28,6 +27,5 @@ cibsync_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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 \ ${top_builddir}/lib/icinga/libicinga.la
${top_builddir}/lib/cib/libcib.la

View File

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

View File

@ -12,9 +12,8 @@ compat_la_CPPFLAGS = \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \ -I${top_srcdir}/lib/icinga
-I${top_srcdir}/lib/cib
compat_la_LDFLAGS = \ compat_la_LDFLAGS = \
$(BOOST_LDFLAGS) \ $(BOOST_LDFLAGS) \
@ -28,6 +27,5 @@ compat_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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 \ ${top_builddir}/lib/icinga/libicinga.la
${top_builddir}/lib/cib/libcib.la

View File

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

View File

@ -12,9 +12,8 @@ convenience_la_CPPFLAGS = \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \ -I${top_srcdir}/lib/icinga
-I${top_srcdir}/lib/cib
convenience_la_LDFLAGS = \ convenience_la_LDFLAGS = \
$(BOOST_LDFLAGS) \ $(BOOST_LDFLAGS) \
@ -28,6 +27,5 @@ convenience_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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 \ ${top_builddir}/lib/icinga/libicinga.la
${top_builddir}/lib/cib/libcib.la

View File

@ -30,9 +30,8 @@
#include <i2-base.h> #include <i2-base.h>
#include <i2-config.h> #include <i2-config.h>
#include <i2-jsonrpc.h> #include <i2-remoting.h>
#include <i2-icinga.h> #include <i2-icinga.h>
#include <i2-cib.h>
#include "conveniencecomponent.h" #include "conveniencecomponent.h"

View File

@ -12,9 +12,8 @@ delegation_la_CPPFLAGS = \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \ -I${top_srcdir}/lib/icinga
-I${top_srcdir}/lib/cib
delegation_la_LDFLAGS = \ delegation_la_LDFLAGS = \
$(BOOST_LDFLAGS) \ $(BOOST_LDFLAGS) \
@ -28,6 +27,5 @@ delegation_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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 \ ${top_builddir}/lib/icinga/libicinga.la
${top_builddir}/lib/cib/libcib.la

View File

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

View File

@ -12,7 +12,7 @@ demo_la_CPPFLAGS = \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga -I${top_srcdir}/lib/icinga
demo_la_LDFLAGS = \ demo_la_LDFLAGS = \
@ -27,5 +27,5 @@ demo_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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 ${top_builddir}/lib/icinga/libicinga.la

View File

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

View File

@ -78,10 +78,9 @@ docs/Doxyfile
icinga-app/Makefile icinga-app/Makefile
lib/Makefile lib/Makefile
lib/base/Makefile lib/base/Makefile
lib/cib/Makefile
lib/config/Makefile lib/config/Makefile
lib/icinga/Makefile lib/icinga/Makefile
lib/jsonrpc/Makefile lib/remoting/Makefile
test/Makefile test/Makefile
third-party/Makefile third-party/Makefile
third-party/cJSON/Makefile third-party/cJSON/Makefile

View File

@ -13,7 +13,7 @@ icinga_CPPFLAGS = \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir}/lib/icinga \ -I${top_srcdir}/lib/icinga \
-I${top_srcdir} -I${top_srcdir}
@ -27,6 +27,7 @@ icinga_LDADD = \
$(BOOST_SYSTEM_LIB) \ $(BOOST_SYSTEM_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.la \ ${top_builddir}/lib/config/libconfig.la \
${top_builddir}/lib/remoting/libremoting.la \
${top_builddir}/lib/icinga/libicinga.la \ ${top_builddir}/lib/icinga/libicinga.la \
-dlopen ${top_builddir}/components/checker/checker.la \ -dlopen ${top_builddir}/components/checker/checker.la \
-dlopen ${top_builddir}/components/cibsync/cibsync.la \ -dlopen ${top_builddir}/components/cibsync/cibsync.la \

View File

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

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
libicinga_la_SOURCES = \ libicinga_la_SOURCES = \
endpoint.cpp \ cib.cpp \
endpoint.h \ cib.h \
endpointmanager.cpp \ host.cpp \
endpointmanager.h \ hostgroup.cpp \
hostgroup.h \
host.h \
i2-icinga.h \
icingaapplication.cpp \ icingaapplication.cpp \
icingaapplication.h \ 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 = \ libicinga_la_CPPFLAGS = \
-DI2_ICINGA_BUILD \ -DI2_ICINGA_BUILD \
$(BOOST_CPPFLAGS) \ $(BOOST_CPPFLAGS) \
-I${top_srcdir}/lib/base \ -I${top_srcdir}/lib/base \
-I${top_srcdir}/lib/config \ -I${top_srcdir}/lib/config \
-I${top_srcdir}/lib/jsonrpc \ -I${top_srcdir}/lib/remoting \
-I${top_srcdir} -I${top_srcdir}
libicinga_la_LDFLAGS = \ libicinga_la_LDFLAGS = \
@ -31,4 +45,4 @@ libicinga_la_LIBADD = \
$(BOOST_THREAD_LIB) \ $(BOOST_THREAD_LIB) \
${top_builddir}/lib/base/libbase.la \ ${top_builddir}/lib/base/libbase.la \
${top_builddir}/lib/config/libconfig.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. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#include "i2-cib.h" #include "i2-icinga.h"
using namespace icinga; using namespace icinga;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -29,8 +29,7 @@
#include <i2-base.h> #include <i2-base.h>
#include <i2-config.h> #include <i2-config.h>
#include <i2-jsonrpc.h> #include <i2-remoting.h>
#include <set>
using boost::iterator_range; using boost::iterator_range;
using boost::algorithm::is_any_of; using boost::algorithm::is_any_of;
@ -45,4 +44,17 @@ using boost::algorithm::is_any_of;
#include "endpointmanager.h" #include "endpointmanager.h"
#include "icingaapplication.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 */ #endif /* I2ICINGA_H */

View File

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

View File

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

View File

@ -23,7 +23,7 @@
namespace icinga namespace icinga
{ {
class I2_CIB_API MacroProcessor class I2_ICINGA_API MacroProcessor
{ {
public: public:
static String ResolveMacros(const String& str, const vector<Dictionary::Ptr>& macroDicts); 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. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#include "i2-cib.h" #include "i2-icinga.h"
using namespace icinga; using namespace icinga;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,10 +2,14 @@
pkglib_LTLIBRARIES = \ pkglib_LTLIBRARIES = \
libjsonrpc.la libremoting.la
libjsonrpc_la_SOURCES = \ libremoting_la_SOURCES = \
i2-jsonrpc.h \ endpoint.cpp \
endpoint.h \
endpointmanager.cpp \
endpointmanager.h \
i2-remoting.h \
jsonrpcclient.cpp \ jsonrpcclient.cpp \
jsonrpcclient.h \ jsonrpcclient.h \
jsonrpcserver.cpp \ jsonrpcserver.cpp \
@ -17,16 +21,18 @@ libjsonrpc_la_SOURCES = \
responsemessage.cpp \ responsemessage.cpp \
responsemessage.h responsemessage.h
libjsonrpc_la_CPPFLAGS = \ libremoting_la_CPPFLAGS = \
-DI2_JSONRPC_BUILD \ -DI2_REMOTING_BUILD \
$(BOOST_CPPFLAGS) \ $(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) \ $(BOOST_LDFLAGS) \
-no-undefined \ -no-undefined \
@RELEASE_INFO@ \ @RELEASE_INFO@ \
@VERSION_INFO@ @VERSION_INFO@
libjsonrpc_la_LIBADD = \ libremoting_la_LIBADD = \
${top_builddir}/lib/base/libbase.la ${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. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#include "i2-icinga.h" #include "i2-remoting.h"
using namespace icinga; using namespace icinga;
@ -234,7 +234,7 @@ void Endpoint::OnAttributeChanged(const String& name, const Value& oldValue)
String subscription; String subscription;
BOOST_FOREACH(tie(tuples::ignore, subscription), oldSubscriptions) { BOOST_FOREACH(tie(tuples::ignore, subscription), oldSubscriptions) {
if (!newSubscriptions || !newSubscriptions->Contains(subscription)) { 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); OnSubscriptionUnregistered(GetSelf(), subscription);
} }
} }
@ -244,7 +244,7 @@ void Endpoint::OnAttributeChanged(const String& name, const Value& oldValue)
String subscription; String subscription;
BOOST_FOREACH(tie(tuples::ignore, subscription), newSubscriptions) { BOOST_FOREACH(tie(tuples::ignore, subscription), newSubscriptions) {
if (!oldSubscriptions || !oldSubscriptions->Contains(subscription)) { 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); OnSubscriptionRegistered(GetSelf(), subscription);
} }
} }

View File

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

View File

@ -17,7 +17,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#include "i2-icinga.h" #include "i2-remoting.h"
using namespace icinga; using namespace icinga;
@ -43,6 +43,26 @@ EndpointManager::EndpointManager(void)
m_ReconnectTimer->Start(); 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 * Sets the identity of the endpoint manager. This identity is used when
* connecting to remote peers. * connecting to remote peers.
@ -81,7 +101,7 @@ String EndpointManager::GetIdentity(void) const
*/ */
void EndpointManager::AddListener(const String& service) void EndpointManager::AddListener(const String& service)
{ {
shared_ptr<SSL_CTX> sslContext = IcingaApplication::GetInstance()->GetSSLContext(); shared_ptr<SSL_CTX> sslContext = GetSSLContext();
if (!sslContext) if (!sslContext)
throw_exception(logic_error("SSL context is required for AddListener()")); 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. * @param service The remote port.
*/ */
void EndpointManager::AddConnection(const String& node, const String& service) { void EndpointManager::AddConnection(const String& node, const String& service) {
JsonRpcClient::Ptr client = boost::make_shared<JsonRpcClient>(RoleOutbound, shared_ptr<SSL_CTX> sslContext = GetSSLContext();
IcingaApplication::GetInstance()->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); client->Connect(node, service);
NewClientHandler(client); NewClientHandler(client);
} }

View File

@ -28,14 +28,12 @@ namespace icinga
* *
* @ingroup icinga * @ingroup icinga
*/ */
class I2_ICINGA_API EndpointManager : public Object class I2_REMOTING_API EndpointManager : public Object
{ {
public: public:
typedef shared_ptr<EndpointManager> Ptr; typedef shared_ptr<EndpointManager> Ptr;
typedef weak_ptr<EndpointManager> WeakPtr; typedef weak_ptr<EndpointManager> WeakPtr;
// typedef map<String, Endpoint::Ptr>::iterator Iterator;
EndpointManager(void); EndpointManager(void);
static EndpointManager::Ptr GetInstance(void); static EndpointManager::Ptr GetInstance(void);
@ -68,6 +66,8 @@ private:
String m_Identity; String m_Identity;
Endpoint::Ptr m_Endpoint; Endpoint::Ptr m_Endpoint;
shared_ptr<SSL_CTX> m_SSLContext;
Timer::Ptr m_SubscriptionTimer; Timer::Ptr m_SubscriptionTimer;
Timer::Ptr m_ReconnectTimer; Timer::Ptr m_ReconnectTimer;
@ -80,7 +80,7 @@ private:
* *
* @ingroup icinga * @ingroup icinga
*/ */
struct I2_ICINGA_API PendingRequest struct I2_REMOTING_API PendingRequest
{ {
double Timeout; double Timeout;
RequestMessage Request; RequestMessage Request;

View File

@ -17,29 +17,31 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#ifndef I2JSONRPC_H #ifndef I2REMOTING_H
#define I2JSONRPC_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 * The JSON-RPC library implements server and client classes for the JSON-RPC
* protocol. * protocol.
*/ */
#include <map>
#include <i2-base.h> #include <i2-base.h>
#include <i2-config.h>
#ifdef I2_JSONRPC_BUILD #ifdef I2_REMOTING_BUILD
# define I2_JSONRPC_API I2_EXPORT # define I2_REMOTING_API I2_EXPORT
#else /* I2_JSONRPC_BUILD */ #else /* I2_REMOTING_BUILD */
# define I2_JSONRPC_API I2_IMPORT # define I2_REMOTING_API I2_IMPORT
#endif /* I2_JSONRPC_BUILD */ #endif /* I2_REMOTING_BUILD */
#include "messagepart.h" #include "messagepart.h"
#include "requestmessage.h" #include "requestmessage.h"
#include "responsemessage.h" #include "responsemessage.h"
#include "jsonrpcclient.h" #include "jsonrpcclient.h"
#include "jsonrpcserver.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. * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
******************************************************************************/ ******************************************************************************/
#include "i2-jsonrpc.h" #include "i2-remoting.h"
using namespace icinga; using namespace icinga;

View File

@ -26,9 +26,9 @@ namespace icinga
/** /**
* A JSON-RPC client. * A JSON-RPC client.
* *
* @ingroup jsonrpc * @ingroup remoting
*/ */
class I2_JSONRPC_API JsonRpcClient : public TlsClient class I2_REMOTING_API JsonRpcClient : public TlsClient
{ {
public: public:
typedef shared_ptr<JsonRpcClient> Ptr; typedef shared_ptr<JsonRpcClient> Ptr;

View File

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

View File

@ -26,9 +26,9 @@ namespace icinga
/** /**
* A JSON-RPC server. * A JSON-RPC server.
* *
* @ingroup jsonrpc * @ingroup remoting
*/ */
class I2_JSONRPC_API JsonRpcServer : public TcpServer class I2_REMOTING_API JsonRpcServer : public TcpServer
{ {
public: public:
typedef shared_ptr<JsonRpcServer> Ptr; typedef shared_ptr<JsonRpcServer> Ptr;

View File

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

View File

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

View File

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

View File

@ -26,9 +26,9 @@ namespace icinga
/** /**
* A JSON-RPC request message. * A JSON-RPC request message.
* *
* @ingroup jsonrpc * @ingroup remoting
*/ */
class I2_JSONRPC_API RequestMessage : public MessagePart class I2_REMOTING_API RequestMessage : public MessagePart
{ {
public: public:
/** /**

View File

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

View File

@ -26,9 +26,9 @@ namespace icinga
/** /**
* A JSON-RPC response message. * A JSON-RPC response message.
* *
* @ingroup jsonrpc * @ingroup remoting
*/ */
class I2_JSONRPC_API ResponseMessage : public MessagePart class I2_REMOTING_API ResponseMessage : public MessagePart
{ {
public: public:
/** /**