Merge "Issue #1262:" into development

Former-commit-id: e3ffce8228 [formerly d091159ef2] [formerly 70d2347dca [formerly cea057d02c0eba841295a25abce31ea17022e2e9]]
Former-commit-id: 70d2347dca
Former-commit-id: cd9fa8e508
This commit is contained in:
Richard Peter 2012-12-14 10:07:31 -06:00 committed by Gerrit Code Review
commit 0f41a375b2
134 changed files with 4767 additions and 1306 deletions

View file

@ -0,0 +1,190 @@
#!/bin/bash
# Constants:
__ECLIPSE_="eclipse"
__NO_SPLASH_="-nosplash"
__APPLICATION_="-application"
__CDT_HEADLESS_="org.eclipse.cdt.managedbuilder.core.headlessbuild"
__IMPORT_="-import"
__DATA_="-data"
__BUILD_="-build"
__BUILD_CONFIG_32_="Build x86"
__BUILD_CONFIG_64_="Build x86_64"
BUILD_CONFIGURATION=
FOSS_LIB_DIR="lib"
# determine which configuration to build
_arch=`uname -i`
if [ "${_arch}" = "x86_64" ]; then
BUILD_CONFIGURATION=${__BUILD_CONFIG_64_}
FOSS_LIB_DIR="lib64"
else
BUILD_CONFIGURATION=${__BUILD_CONFIG_32_}
fi
# Arguments:
# 1) the workspace
# 2) the uframe-eclipse
# 3) the build root (will become the location of the temporary workspace)
# ensure that there are at least three arguments
if [ $# -ne 3 ]; then
echo "Usage: $0 WORKSPACE UFRAME_ECLIPSE BUILD_ROOT"
exit 0
fi
WORKSPACE=${1}
UFRAME_ECLIPSE=${2}
BUILD_ROOT=${3}
# ensure that the workspace directory exists
if [ ! -d ${WORKSPACE} ]; then
echo "ERROR: the specified workspace does not exist - ${WORKSPACE}"
exit 1
fi
# ensure that Eclipse is present
if [ ! -f ${UFRAME_ECLIPSE}/${__ECLIPSE_} ]; then
echo "ERROR: the Eclipse executable does not exist at the specified location - ${UFRAME_ECLIPSE}"
exit 1
fi
# ensure that the build root exists
if [ ! -d ${BUILD_ROOT} ]; then
echo "ERROR: the specified build root does not exist - ${BUILD_ROOT}"
exit 1
fi
if [ -d ${BUILD_ROOT}/workspace_ ]; then
rm -rf ${BUILD_ROOT}/workspace_
if [ $? -ne 0 ]; then
echo "ERROR: unable to remove the existing temporary workspace in the specified build root - ${BUILD_ROOT}"
exit 1
fi
fi
mkdir ${BUILD_ROOT}/workspace_
if [ $? -ne 0 ]; then
echo "ERROR: unable to create a temporary workspace in the specified build root - ${BUILD_ROOT}"
exit 1
fi
PROJECTS_TO_IMPORT=( "org.apache.thrift" "org.apache.qpid" )
PROJECTS_TO_BUILD=( "edex_com" "edex_notify" )
for project in ${PROJECTS_TO_IMPORT[*]};
do
if [ ! -d ${WORKSPACE}/${project} ]; then
echo "ERROR: required project ${project} is not available in the specified workspace."
exit 1
fi
# copy the project to the workspace; we do not want to disturb the original
cp -r ${WORKSPACE}/${project} ${BUILD_ROOT}/workspace_
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy project ${project} to the temporary workspace."
exit 1
fi
# import the project into the workspace
${UFRAME_ECLIPSE}/${__ECLIPSE_} ${__NO_SPLASH_} ${__APPLICATION_} \
${__CDT_HEADLESS_} ${__IMPORT_} ${BUILD_ROOT}/workspace_/${project} \
${__DATA_} ${BUILD_ROOT}/workspace_
if [ $? -ne 0 ]; then
echo "ERROR: failed to import ${project} into the temporary workspace."
exit 1
fi
done
for project in ${PROJECTS_TO_BUILD[*]};
do
if [ ! -d ${WORKSPACE}/${project} ]; then
echo "ERROR: required project ${project} is not available in the specified workspace."
exit 1
fi
# copy the project to the workspace; we do not want to disturb the original
cp -r ${WORKSPACE}/${project} ${BUILD_ROOT}/workspace_
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy project ${project} to the temporary workspace."
exit 1
fi
# import the project into the workspace and build the project
${UFRAME_ECLIPSE}/${__ECLIPSE_} ${__NO_SPLASH_} ${__APPLICATION_} \
${__CDT_HEADLESS_} ${__IMPORT_} ${WORKSPACE}/${project} \
${__DATA_} ${BUILD_ROOT}/workspace_ ${__BUILD_} "${project}/${BUILD_CONFIGURATION}"
if [ $? -ne 0 ]; then
echo "ERROR: failed to build project ${project}"
exit 1
fi
done
# create the notification sub-directories
mkdir ${BUILD_ROOT}/awips2/notification/bin
if [ $? -ne 0 ]; then
echo "ERROR: Unable to create directory - ${BUILD_ROOT}/workspace_/notification/bin."
exit 1
fi
mkdir ${BUILD_ROOT}/awips2/notification/lib
if [ $? -ne 0 ]; then
echo "ERROR: Unable to create directory - ${BUILD_ROOT}/workspace_/notification/lib."
exit 1
fi
mkdir ${BUILD_ROOT}/awips2/notification/src
if [ $? -ne 0 ]; then
echo "ERROR: Unable to create directory - ${BUILD_ROOT}/workspace_/notification/src."
exit 1
fi
mkdir ${BUILD_ROOT}/awips2/notification/include
if [ $? -ne 0 ]; then
echo "ERROR: Unable to create directory - ${BUILD_ROOT}/workspace_/notification/include."
exit 1
fi
# libedex_com.so -> notification/lib
cp -v "${BUILD_ROOT}/workspace_/edex_com/${BUILD_CONFIGURATION}/libedex_com.so" \
${BUILD_ROOT}/awips2/notification/lib
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy libedex_com.so to its destination."
exit 1
fi
# edex_com src -> notification/src
cp -vf ${BUILD_ROOT}/workspace_/edex_com/src/*.cpp \
${BUILD_ROOT}/awips2/notification/src
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy the edex_com src to its destination."
exit 1
fi
# edex_com headers -> notification/include
cp -vf ${BUILD_ROOT}/workspace_/edex_com/src/*.h ${BUILD_ROOT}/awips2/notification/include
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy the edex_com header to its destination."
exit 1
fi
# edex_notify -> notification/bin
cp -vf "${BUILD_ROOT}/workspace_/edex_notify/${BUILD_CONFIGURATION}/edex_notify" \
${BUILD_ROOT}/awips2/notification/bin
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy edex_notify to its destination."
exit 1
fi
# edex_notify src -> notification/src
cp -vf ${BUILD_ROOT}/workspace_/edex_notify/src/*.c \
${BUILD_ROOT}/awips2/notification/src
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy the edex_notify src to its destination."
exit 1
fi
# org.apache.thrift lib -> notification/lib
cp -vPf ${BUILD_ROOT}/workspace_/org.apache.thrift/${FOSS_LIB_DIR}/* \
${BUILD_ROOT}/awips2/notification/lib
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy the org.apache.thrift lib to its destination."
exit 1
fi
# org.apache.qpid lib -> notification/lib
cp -vPf ${BUILD_ROOT}/workspace_/org.apache.qpid/${FOSS_LIB_DIR}/* \
${BUILD_ROOT}/awips2/notification/lib
if [ $? -ne 0 ]; then
echo "ERROR: Failed to copy the org.apache.qpid lib to its destination."
exit 1
fi
exit 0

View file

@ -3,8 +3,8 @@
<cproject>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="cdt.managedbuild.config.gnu.so.release.1201809015">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.so.release.1201809015" moduleId="org.eclipse.cdt.core.settings" name="Release">
<cconfiguration id="cdt.managedbuild.config.gnu.so.release.1201809015.1790108260">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.so.release.1201809015.1790108260" moduleId="org.eclipse.cdt.core.settings" name="Build x86">
<macros>
<stringListMacro name="LD_LIBRARY_PATH" type="VALUE_TEXT_LIST">
<value name="/opt/yjp-8.0/bin/linux-x86-32"/>
@ -15,6 +15,7 @@
<externalSetting>
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/edex_com"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/edex_com/Release"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/edex_com/Build x86"/>
<entry flags="RESOLVED" kind="libraryFile" name="edex_com"/>
</externalSetting>
</externalSettings>
@ -28,36 +29,36 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="so" artifactName="edex_com" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.so.release.1201809015" name="Release" parent="cdt.managedbuild.config.gnu.so.release">
<folderInfo id="cdt.managedbuild.config.gnu.so.release.1201809015." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.so.release.647489511" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.so.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.so.release.144529718" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.so.release"/>
<builder buildPath="${workspace_loc:/edex_com/Release}" id="cdt.managedbuild.target.gnu.builder.so.release.534855026" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.so.release"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1052819848" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.gnu.cpp.compiler.so.release.133837787" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.so.release">
<option id="gnu.cpp.compiler.so.release.option.optimization.level.1547367546" name="Optimization Level" superClass="gnu.cpp.compiler.so.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.so.release.option.debugging.level.42694062" name="Debug Level" superClass="gnu.cpp.compiler.so.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.920860593" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/awips2/qpid/include"/>
<configuration artifactExtension="so" artifactName="edex_com" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib" cleanCommand="rm -rf" description="32-bit Build" id="cdt.managedbuild.config.gnu.so.release.1201809015.1790108260" name="Build x86" parent="cdt.managedbuild.config.gnu.so.release">
<folderInfo id="cdt.managedbuild.config.gnu.so.release.1201809015.1790108260." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.so.release.518708179" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.so.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.so.release.667290687" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.so.release"/>
<builder buildPath="${workspace_loc:/edex_com/Release}" id="cdt.managedbuild.target.gnu.builder.so.release.292873310" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.so.release"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.480220418" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.gnu.cpp.compiler.so.release.1476486211" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.so.release">
<option id="gnu.cpp.compiler.so.release.option.optimization.level.1190342998" name="Optimization Level" superClass="gnu.cpp.compiler.so.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.so.release.option.debugging.level.1948609588" name="Debug Level" superClass="gnu.cpp.compiler.so.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.default" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.1888011361" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/include}&quot;"/>
<listOptionValue builtIn="false" value="/usr/include/"/>
<listOptionValue builtIn="false" value="/usr/local/include"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/include}&quot;"/>
</option>
<option id="gnu.cpp.compiler.option.other.other.527072573" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-m32 -c -fmessage-length=0" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.857651647" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
<option id="gnu.cpp.compiler.option.other.other.1732324977" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-m32 -c -fmessage-length=0" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.484353099" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.so.release.2044944995" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.so.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.so.release.option.optimization.level.1795240515" name="Optimization Level" superClass="gnu.c.compiler.so.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.c.compiler.so.release.option.debugging.level.353560640" name="Debug Level" superClass="gnu.c.compiler.so.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.misc.other.1908597019" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-m32 -c -fmessage-length=0" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1923668928" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.so.release.268435785" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.so.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.so.release.option.optimization.level.802547994" name="Optimization Level" superClass="gnu.c.compiler.so.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.c.compiler.so.release.option.debugging.level.378708998" name="Debug Level" superClass="gnu.c.compiler.so.release.option.debugging.level" value="gnu.c.debugging.level.default" valueType="enumerated"/>
<option id="gnu.c.compiler.option.misc.other.978379918" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-m32 -c -fmessage-length=0" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1375162" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.so.release.772538674" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.so.release">
<option defaultValue="true" id="gnu.c.link.so.release.option.shared.58329355" name="Shared (-shared)" superClass="gnu.c.link.so.release.option.shared" valueType="boolean"/>
<tool id="cdt.managedbuild.tool.gnu.c.linker.so.release.227753427" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.so.release">
<option defaultValue="true" id="gnu.c.link.so.release.option.shared.830436932" name="Shared (-shared)" superClass="gnu.c.link.so.release.option.shared" valueType="boolean"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.so.release.1195135079" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.so.release">
<option defaultValue="true" id="gnu.cpp.link.so.release.option.shared.1799481830" name="Shared (-shared)" superClass="gnu.cpp.link.so.release.option.shared" valueType="boolean"/>
<option id="gnu.cpp.link.option.libs.1622806412" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.so.release.182477752" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.so.release">
<option defaultValue="true" id="gnu.cpp.link.so.release.option.shared.393797976" name="Shared (-shared)" superClass="gnu.cpp.link.so.release.option.shared" valueType="boolean"/>
<option id="gnu.cpp.link.option.libs.60193779" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="thrift"/>
<listOptionValue builtIn="false" value="qpidcommon"/>
<listOptionValue builtIn="false" value="qpidtypes"/>
@ -65,28 +66,872 @@
<listOptionValue builtIn="false" value="curl"/>
<listOptionValue builtIn="false" value="qpidclient"/>
</option>
<option id="gnu.cpp.link.option.paths.1136584520" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<option id="gnu.cpp.link.option.paths.1171960394" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/lib}&quot;"/>
<listOptionValue builtIn="false" value="/usr/local/lib"/>
<listOptionValue builtIn="false" value="/awips2/notification/lib"/>
<listOptionValue builtIn="false" value="/usr/kerberos/lib"/>
<listOptionValue builtIn="false" value="/awips2/qpid/lib"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/lib}&quot;"/>
</option>
<option id="gnu.cpp.link.option.flags.1073201252" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-m32 " valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1406209635" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<option id="gnu.cpp.link.option.flags.185526738" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-m32 " valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.717182800" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.assembler.so.release.1746884612" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.so.release">
<option id="gnu.both.asm.option.include.paths.1282328318" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
<tool id="cdt.managedbuild.tool.gnu.assembler.so.release.1012645699" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.so.release">
<option id="gnu.both.asm.option.include.paths.460570827" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/awips2/qpid/include"/>
<listOptionValue builtIn="false" value="/usr/include"/>
<listOptionValue builtIn="false" value="/usr/local/include/thrift"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/include}&quot;"/>
</option>
<option id="gnu.both.asm.option.flags.54483466" name="Assembler flags" superClass="gnu.both.asm.option.flags" value="-m32" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.527463302" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
<option id="gnu.both.asm.option.flags.600214984" name="Assembler flags" superClass="gnu.both.asm.option.flags" value="-m32" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.35709549" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.debug.548606643;cdt.managedbuild.config.gnu.so.debug.548606643.;cdt.managedbuild.tool.gnu.c.compiler.so.debug.526103997;cdt.managedbuild.tool.gnu.c.compiler.input.804832564">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.release.1201809015;cdt.managedbuild.config.gnu.so.release.1201809015.730322548;cdt.managedbuild.tool.gnu.cpp.compiler.so.release.1243921223;cdt.managedbuild.tool.gnu.cpp.compiler.input.1611498141">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.release.1201809015;cdt.managedbuild.config.gnu.so.release.1201809015.;cdt.managedbuild.tool.gnu.cpp.compiler.so.release.133837787;cdt.managedbuild.tool.gnu.cpp.compiler.input.857651647">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.debug.548606643;cdt.managedbuild.config.gnu.so.debug.548606643.2015427790;cdt.managedbuild.tool.gnu.cpp.compiler.so.debug.1843780412;cdt.managedbuild.tool.gnu.cpp.compiler.input.455091642">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.release.1201809015;cdt.managedbuild.config.gnu.so.release.1201809015.;cdt.managedbuild.tool.gnu.c.compiler.so.release.2044944995;cdt.managedbuild.tool.gnu.c.compiler.input.1923668928">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.release.1201809015;cdt.managedbuild.config.gnu.so.release.1201809015.730322548;cdt.managedbuild.tool.gnu.c.compiler.so.release.1431258305;cdt.managedbuild.tool.gnu.c.compiler.input.1668119339">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.debug.548606643;cdt.managedbuild.config.gnu.so.debug.548606643.;cdt.managedbuild.tool.gnu.cpp.compiler.so.debug.485493337;cdt.managedbuild.tool.gnu.cpp.compiler.input.1569616918">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.so.debug.548606643;cdt.managedbuild.config.gnu.so.debug.548606643.2015427790;cdt.managedbuild.tool.gnu.c.compiler.so.debug.902270269;cdt.managedbuild.tool.gnu.c.compiler.input.971839399">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.so.release.1201809015.180606627">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.so.release.1201809015.180606627" moduleId="org.eclipse.cdt.core.settings" name="Build x86_64">
<macros>
<stringListMacro name="LD_LIBRARY_PATH" type="VALUE_TEXT_LIST">
<value name="/opt/yjp-8.0/bin/linux-x86-32"/>
<value name="/usr/lib/xulrunner-1.9"/>
</stringListMacro>
</macros>
<externalSettings>
<externalSetting>
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/edex_com"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/edex_com/Release"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/edex_com/Build x86_64"/>
<entry flags="RESOLVED" kind="libraryFile" name="edex_com"/>
</externalSetting>
</externalSettings>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="so" artifactName="edex_com" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.sharedLib" cleanCommand="rm -rf" description="64-bit Build" id="cdt.managedbuild.config.gnu.so.release.1201809015.180606627" name="Build x86_64" parent="cdt.managedbuild.config.gnu.so.release">
<folderInfo id="cdt.managedbuild.config.gnu.so.release.1201809015.180606627." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.so.release.2042835610" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.so.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.so.release.158941335" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.so.release"/>
<builder buildPath="${workspace_loc:/edex_com/Release}" id="cdt.managedbuild.target.gnu.builder.so.release.259371277" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.so.release"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1502229412" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.gnu.cpp.compiler.so.release.750634836" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.so.release">
<option id="gnu.cpp.compiler.so.release.option.optimization.level.112387270" name="Optimization Level" superClass="gnu.cpp.compiler.so.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.so.release.option.debugging.level.280582007" name="Debug Level" superClass="gnu.cpp.compiler.so.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.931221899" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/awips2/qpid/include"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/include}&quot;"/>
<listOptionValue builtIn="false" value="/usr/include/"/>
<listOptionValue builtIn="false" value="/usr/local/include"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/include}&quot;"/>
</option>
<option id="gnu.cpp.compiler.option.other.other.1885638584" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-m64 -c -fmessage-length=0 -fPIC" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1042769234" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.so.release.1279322311" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.so.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.so.release.option.optimization.level.1739982210" name="Optimization Level" superClass="gnu.c.compiler.so.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.c.compiler.so.release.option.debugging.level.971935299" name="Debug Level" superClass="gnu.c.compiler.so.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.misc.other.370824063" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-m64 -c -fmessage-length=0" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.718299410" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.so.release.491207671" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.so.release">
<option defaultValue="true" id="gnu.c.link.so.release.option.shared.1576276723" name="Shared (-shared)" superClass="gnu.c.link.so.release.option.shared" valueType="boolean"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.so.release.790158456" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.so.release">
<option defaultValue="true" id="gnu.cpp.link.so.release.option.shared.340284127" name="Shared (-shared)" superClass="gnu.cpp.link.so.release.option.shared" valueType="boolean"/>
<option id="gnu.cpp.link.option.libs.1646606439" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="thrift"/>
<listOptionValue builtIn="false" value="qpidcommon"/>
<listOptionValue builtIn="false" value="qpidtypes"/>
<listOptionValue builtIn="false" value="qpidmessaging"/>
<listOptionValue builtIn="false" value="curl"/>
<listOptionValue builtIn="false" value="qpidclient"/>
</option>
<option id="gnu.cpp.link.option.paths.400490599" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value="/usr/local/lib"/>
<listOptionValue builtIn="false" value="/usr/kerberos/lib"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/lib64}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/lib64}&quot;"/>
</option>
<option id="gnu.cpp.link.option.flags.1587670958" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-m64" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.522117352" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.assembler.so.release.72454478" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.so.release">
<option id="gnu.both.asm.option.include.paths.1861112777" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/awips2/qpid/include"/>
<listOptionValue builtIn="false" value="/usr/include"/>
<listOptionValue builtIn="false" value="/usr/local/include/thrift"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/include}&quot;"/>
</option>
<option id="gnu.both.asm.option.flags.1808664909" name="Assembler flags" superClass="gnu.both.asm.option.flags" value="-m32" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.2118921233" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>

View file

@ -3,8 +3,8 @@
<cproject>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1309755902">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1309755902" moduleId="org.eclipse.cdt.core.settings" name="Release">
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819" moduleId="org.eclipse.cdt.core.settings" name="Build x86">
<macros>
<stringListMacro name="LD_LIBRARY_PATH" type="VALUE_TEXT_LIST">
<value name="/usr/local/ldm/dev/lib"/>
@ -30,48 +30,383 @@
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="edex_notify" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1309755902" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
<folderInfo id="cdt.managedbuild.config.gnu.exe.release.1309755902." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1688070471" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.821053170" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
<builder buildPath="${workspace_loc:/edex_notify/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1267822483" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.88882104" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.524422608" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
<option id="gnu.cpp.compiler.exe.release.option.optimization.level.892652404" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.exe.release.option.debugging.level.1031374768" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<configuration artifactName="edex_notify" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="32-bit Build" id="cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819" name="Build x86" parent="cdt.managedbuild.config.gnu.exe.release">
<folderInfo id="cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1003258872" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.289476546" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
<builder buildPath="${workspace_loc:/edex_notify/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.930304578" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.2028837147" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.1992162793" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
<option id="gnu.cpp.compiler.exe.release.option.optimization.level.1636403041" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.exe.release.option.debugging.level.64811510" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.91404518" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1046889440" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.c.compiler.exe.release.option.debugging.level.1208159467" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.misc.other.1314672336" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-m32 -c -fmessage-length=0" valueType="string"/>
<option id="gnu.c.compiler.option.include.paths.1094419725" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.785050281" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.465737516" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.c.compiler.exe.release.option.debugging.level.590465920" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.default" valueType="enumerated"/>
<option id="gnu.c.compiler.option.misc.other.1772453324" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-m32 -c -fmessage-length=0" valueType="string"/>
<option id="gnu.c.compiler.option.include.paths.1577302699" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/edex_com/src}&quot;"/>
<listOptionValue builtIn="false" value="/awips2/qpid/include"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1483689751" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.563649508" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1252388038" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release">
<option id="gnu.c.link.option.paths.154646279" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/edex_com/Release}&quot;"/>
<listOptionValue builtIn="false" value="/awips2/qpid/lib"/>
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.621939508" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release">
<option id="gnu.c.link.option.paths.945694272" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/lib}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/lib}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/edex_com/Build x86}&quot;"/>
</option>
<option id="gnu.c.link.option.ldflags.1457495620" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-m32 " valueType="string"/>
<option id="gnu.c.link.option.libs.314449955" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
<option id="gnu.c.link.option.ldflags.1230956806" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-m32 " valueType="string"/>
<option id="gnu.c.link.option.libs.1154548850" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="edex_com"/>
<listOptionValue builtIn="false" value="thrift"/>
<listOptionValue builtIn="false" value="qpidmessaging"/>
<listOptionValue builtIn="false" value="qpidtypes"/>
<listOptionValue builtIn="false" value="qpidclient"/>
<listOptionValue builtIn="false" value="qpidcommon"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.625201750" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1737932875" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.2018987118" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.736090775" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
<option id="gnu.both.asm.option.flags.224661192" name="Assembler flags" superClass="gnu.both.asm.option.flags" value="-m32 " valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.748226392" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1715690529" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.23041052" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
<option id="gnu.both.asm.option.flags.763091958" name="Assembler flags" superClass="gnu.both.asm.option.flags" value="-m32 " valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.977707247" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1309755902;cdt.managedbuild.config.gnu.exe.release.1309755902.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.91404518;cdt.managedbuild.tool.gnu.c.compiler.input.1483689751">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.944270981;cdt.managedbuild.config.gnu.exe.debug.944270981.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.503280132;cdt.managedbuild.tool.gnu.c.compiler.input.2111842514">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084" moduleId="org.eclipse.cdt.core.settings" name="Build x86_64">
<macros>
<stringListMacro name="LD_LIBRARY_PATH" type="VALUE_TEXT_LIST">
<value name="/usr/local/ldm/dev/lib"/>
<value name="/common/brockwoo/awips/jdk1.6.0_05/jre/lib/i386/client"/>
<value name="/common/brockwoo/awips/jdk1.6.0_05/jre/lib/i386"/>
<value name="/common/brockwoo/awips/lib"/>
<value name="/opt/yjp-8.0/bin/linux-x86-32"/>
<value name="/common/brockwoo/awips/lib"/>
<value name="/opt/yjp-8.0/bin/linux-x86-32"/>
<value name=""/>
<value name="/usr/lib/xulrunner-1.9"/>
<value name="/usr/lib/xulrunner-1.9"/>
</stringListMacro>
</macros>
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="edex_notify" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="64-bit Build" id="cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084" name="Build x86_64" parent="cdt.managedbuild.config.gnu.exe.release">
<folderInfo id="cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.374162214" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.1697782484" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
<builder buildPath="${workspace_loc:/edex_notify/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1811804875" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1585585045" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.297984587" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
<option id="gnu.cpp.compiler.exe.release.option.optimization.level.1674777520" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.cpp.compiler.exe.release.option.debugging.level.2126839070" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1287656580" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1992194719" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.c.compiler.exe.release.option.debugging.level.832113686" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.misc.other.1624933412" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-m64 -c -fmessage-length=0" valueType="string"/>
<option id="gnu.c.compiler.option.include.paths.1093941043" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/include}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/edex_com/src}&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.754027704" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1572066433" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release">
<option id="gnu.c.link.option.paths.1184519300" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.qpid/lib64}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.apache.thrift/lib64}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/edex_com/Build x86_64}&quot;"/>
</option>
<option id="gnu.c.link.option.ldflags.1878548950" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-m64" valueType="string"/>
<option id="gnu.c.link.option.libs.961367030" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="edex_com"/>
<listOptionValue builtIn="false" value="thrift"/>
<listOptionValue builtIn="false" value="qpidmessaging"/>
<listOptionValue builtIn="false" value="qpidtypes"/>
<listOptionValue builtIn="false" value="qpidclient"/>
<listOptionValue builtIn="false" value="qpidcommon"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1341350933" superClass="cdt.managedbuild.tool.gnu.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.269733504" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.51007927" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
<option id="gnu.both.asm.option.flags.1833006039" name="Assembler flags" superClass="gnu.both.asm.option.flags" value="-m64" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1443289101" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
</toolChain>
</folderInfo>

View file

@ -4,6 +4,7 @@
<comment></comment>
<projects>
<project>edex_com</project>
<project>org.apache.qpid</project>
</projects>
<buildSpec>
<buildCommand>

View file

@ -1,9 +1,19 @@
#Fri Mar 11 11:26:24 CST 2011
#Tue Dec 11 12:30:30 CST 2012
eclipse.preferences.version=1
environment/project/cdt.managedbuild.config.gnu.exe.debug.944270981=
environment/project/cdt.managedbuild.config.gnu.exe.debug.944270981/append=true
environment/project/cdt.managedbuild.config.gnu.exe.debug.944270981/appendContributed=true
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902=
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084/LD_LIBRARY_PATH/delimiter=;
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084/LD_LIBRARY_PATH/operation=append
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084/LD_LIBRARY_PATH/value=/usr/local/ldm/dev/lib
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084/append=true
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1102278084/appendContributed=true
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819/LD_LIBRARY_PATH/delimiter=;
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819/LD_LIBRARY_PATH/operation=append
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819/LD_LIBRARY_PATH/value=/usr/local/ldm/dev/lib
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819/append=true
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902.1884634819/appendContributed=true
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902/LD_LIBRARY_PATH/delimiter=;
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902/LD_LIBRARY_PATH/operation=append
environment/project/cdt.managedbuild.config.gnu.exe.release.1309755902/LD_LIBRARY_PATH/value=/usr/local/ldm/dev/lib

View file

@ -44,10 +44,10 @@
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage:\nedex_notify <URL amqp:tcp:HOST:PORT >");
printf("Usage: %s <URL amqp:tcp:HOST:PORT >\n", argv[0]);
return 1;
} else {
printf("Connecting to %s", argv[1]);
printf("Connecting to %s\n", argv[1]);
}
CEdexNotification * cedex = NULL;
cedex = get_notification_instance(argv[1]);

View file

@ -0,0 +1,8 @@
Version = 0.7.946106
Origin
------
(extracted from the qpid source rpm - available from multiple sources)
qpid-cpp-mrg-0.7.946106-28.el5.centos.1.src.rpm
also in the AWIPS II Baseline - rpms/awips2.qpid/SOURCES/qpid-cpp-mrg-0.7.946106.tar.gz

View file

@ -21,64 +21,34 @@
#include "qpid/sys/IntegerTypes.h"
#include "qpid/CommonImportExport.h"
#include <boost/variant.hpp>
#include <iosfwd>
#include <string>
#include <vector>
namespace qpid {
namespace client { struct ConnectionSettings; }
/** TCP address of a broker - host:port */
struct TcpAddress {
static const uint16_t DEFAULT_PORT=5672;
QPID_COMMON_EXTERN explicit TcpAddress(const std::string& host_=std::string(),uint16_t port_=DEFAULT_PORT);
std::string host;
uint16_t port;
};
bool operator==(const TcpAddress& x, const TcpAddress& y);
QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream& os, const TcpAddress& a);
/**@internal Not a real address type, this is a placeholder to
* demonstrate and validate multi-protocol Urls for unit tests and
* developer education only. An example address holds just a char.
*/
struct ExampleAddress {
explicit ExampleAddress(char data);
char data;
};
bool operator==(const ExampleAddress& x, const ExampleAddress& y);
std::ostream& operator<<(std::ostream& os, const ExampleAddress& a);
/**
* Contains the address of an AMQP broker. Can any supported type of
* broker address. Currently only TcpAddress is supported.
* Contains the protocol address of an AMQP broker.
*/
struct Address {
public:
Address(const Address& a) : value(a.value) {}
Address(const TcpAddress& tcp) : value(tcp) {}
Address(const ExampleAddress& eg) : value(eg) {} ///<@internal
static const std::string TCP; // Default TCP protocol tag.
static const uint16_t AMQP_PORT=5672; // Default AMQP port.
QPID_COMMON_EXTERN explicit Address(
const std::string& protocol_=std::string(),
const std::string& host_=std::string(),
uint16_t port_=0
) : protocol(protocol_), host(host_), port(port_) {}
template <class AddressType> Address& operator=(const AddressType& t) { value=t; return *this; }
/** Get the address of type AddressType.
*@return AddressType* pointing to the contained address or 0 if
*contained address is not of type AddressType.
*/
template <class AddressType> AddressType* get() { return boost::get<AddressType>(&value); }
/** Get the address of type AddressType.
*@return AddressType* pointing to the contained address or 0 if
*contained address is not of type AddressType.
*/
template <class AddressType> const AddressType* get() const { return boost::get<AddressType>(&value); }
private:
boost::variant<TcpAddress,ExampleAddress> value;
friend std::ostream& operator<<(std::ostream& os, const Address& addr);
std::string protocol;
std::string host;
uint16_t port;
};
QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream& os, const Address& addr);
QPID_COMMON_EXTERN bool operator==(const Address& x, const Address& y);
} // namespace qpid

View file

@ -26,9 +26,7 @@
#include "qpid/framing/constants.h"
#include "qpid/framing/enum.h"
#include "qpid/sys/StrError.h"
#include "qpid/Msg.h"
#include "qpid/CommonImportExport.h"
#include <memory>
#include <string>
#include <errno.h>

View file

@ -69,7 +69,9 @@ inline std::ostream& operator<<(std::ostream& o, const Msg& m) {
}
/** Construct a message using operator << and append (file:line) */
#define QPID_MSG(message) ::qpid::Msg() << message << " (" << __FILE__ << ":" << __LINE__ << ")"
#define QUOTE_(x) #x
#define QUOTE(x) QUOTE_(x)
#define QPID_MSG(message) (::qpid::Msg() << message << " (" __FILE__ ":" QUOTE(__LINE__) ")")
} // namespace qpid

View file

@ -29,13 +29,11 @@
namespace qpid {
QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream& os, const TcpAddress& a);
/** An AMQP URL contains a list of addresses */
struct Url : public std::vector<Address> {
/** Url with the hostname as returned by gethostname(2) */
static Url getHostNameUrl(uint16_t port);
QPID_COMMON_EXTERN static Url getHostNameUrl(uint16_t port);
/** Url with local IP address(es), may be more than one address
* on a multi-homed host. */
@ -58,28 +56,36 @@ struct Url : public std::vector<Address> {
/** Parse url, throw Invalid if invalid. */
explicit Url(const char* url) { parse(url); }
Url& operator=(const Url& u) { this->std::vector<Address>::operator=(u); cache=u.cache; return *this; }
Url& operator=(const char* s) { parse(s); return *this; }
Url& operator=(const std::string& s) { parse(s); return *this; }
/** Throw Invalid if the URL does not contain any addresses. */
QPID_COMMON_EXTERN void throwIfEmpty() const;
/** Replace contents with parsed URL as defined in
* https://wiki.108.redhat.com/jira/browse/AMQP-95
/** Replace contents with parsed url
*@exception Invalid if the url is invalid.
*/
QPID_COMMON_EXTERN void parse(const char* url);
QPID_COMMON_EXTERN void parse(const std::string& url) { parse(url.c_str()); }
/** Replace contesnts with parsed URL as defined in
* https://wiki.108.redhat.com/jira/browse/AMQP-95
* url.empty() will be true if url is invalid.
/** Replace contesnts with parsed URL. Replace with empty URL if invalid. */
QPID_COMMON_EXTERN void parseNoThrow(const char* url);
/** Add a protocol tag to be recognzed in URLs.
* Only for use by protcol plug-in initializers.
*/
void parseNoThrow(const char* url);
QPID_COMMON_EXTERN static void addProtocol(const std::string& tag);
QPID_COMMON_EXTERN void setUser(const std::string&);
QPID_COMMON_EXTERN void setPass(const std::string&);
QPID_COMMON_EXTERN std::string getUser() const;
QPID_COMMON_EXTERN std::string getPass() const;
private:
mutable std::string cache; // cache string form for efficiency.
std::string user, pass;
friend class UrlParser;
};
inline bool operator==(const Url& a, const Url& b) { return a.str()==b.str(); }

View file

@ -24,12 +24,17 @@
#include "qpid/management/ManagementObject.h"
#include "qpid/management/ManagementEvent.h"
#include "qpid/management/Manageable.h"
#include "qpid/sys/Mutex.h"
#include "qpid/client/ConnectionSettings.h"
#include "qpid/management/ConnectionSettings.h"
namespace qpid {
namespace management {
class Notifyable {
public:
virtual ~Notifyable() {}
virtual void notify() = 0;
};
class ManagementAgent
{
public:
@ -39,11 +44,6 @@ class ManagementAgent
QMF_AGENT_EXTERN Singleton(bool disableManagement = false);
QMF_AGENT_EXTERN ~Singleton();
QMF_AGENT_EXTERN static ManagementAgent* getInstance();
private:
static sys::Mutex lock;
static bool disabled;
static int refCount;
static ManagementAgent* agent;
};
typedef enum {
@ -63,6 +63,28 @@ class ManagementAgent
virtual int getMaxThreads() = 0;
// Set the name of the agent
//
// vendor - Vendor name or domain (i.e. "apache.org")
// product - Product name (i.e. "qpid")
// instance - A unique identifier for this instance of the agent.
// If empty, the agent will create a GUID for the instance.
// Note: the ":" character is reserved - do no use it in the vendor or product name.
//
virtual void setName(const std::string& vendor,
const std::string& product,
const std::string& instance="") = 0;
// Retrieve the name of the agent as assigned by setName()
//
virtual void getName(std::string& vendor,
std::string& product,
std::string& instance) = 0;
// Obtain the fully qualified name of the agent
//
virtual const std::string& getAddress() = 0;
// Connect to a management broker
//
// brokerHost - Hostname or IP address (dotted-quad) of broker.
@ -93,11 +115,12 @@ class ManagementAgent
const std::string& mech = "PLAIN",
const std::string& proto = "tcp") = 0;
virtual void init(const client::ConnectionSettings& settings,
virtual void init(const management::ConnectionSettings& settings,
uint16_t intervalSeconds = 10,
bool useExternalThread = false,
const std::string& storeFile = "") = 0;
// Register a schema with the management agent. This is normally called by the
// package initializer generated by the management code generator.
//
@ -112,7 +135,7 @@ class ManagementAgent
const std::string& eventName,
uint8_t* md5Sum,
management::ManagementEvent::writeSchemaCall_t schemaCall) = 0;
// Add a management object to the agent. Once added, this object shall be visible
// in the greater management context.
//
@ -128,6 +151,9 @@ class ManagementAgent
// in an orderly way.
//
virtual ObjectId addObject(ManagementObject* objectPtr, uint64_t persistId = 0) = 0;
virtual ObjectId addObject(ManagementObject* objectPtr,
const std::string& key,
bool persistent = true) = 0;
//
//
@ -149,12 +175,28 @@ class ManagementAgent
//
virtual uint32_t pollCallbacks(uint32_t callLimit = 0) = 0;
// If "useExternalThread" was set to true in the constructor, this method provides
// a standard file descriptor that can be used in a select statement to signal that
// there are method callbacks ready (i.e. that "pollCallbacks" will result in at
// least one method call). When this fd is ready-for-read, pollCallbacks may be
// invoked. Calling pollCallbacks shall reset the ready-to-read state of the fd.
// In the "useExternalThread" scenario, there are three ways that an application can
// use to be notified that there is work to do. Of course the application may periodically
// call pollCallbacks if it wishes, but this will cause long latencies in the responses
// to method calls.
//
// The notification methods are:
//
// 1) Register a C-style callback by providing a pointer to a function
// 2) Register a C++-style callback by providing an object of a class that is derived
// from Notifyable
// 3) Call getSignalFd() to get a file descriptor that can be used in a select
// call. The file descriptor shall become readable when the agent has work to
// do. Note that this mechanism is specific to Posix-based operating environments.
// getSignalFd will probably not function correctly on Windows.
//
// If a callback is registered, the callback function will be called on the agent's
// thread. The callback function must perform no work other than to signal the application
// thread to call pollCallbacks.
//
typedef void (*cb_t)(void*);
virtual void setSignalCallback(cb_t callback, void* context) = 0;
virtual void setSignalCallback(Notifyable& notifyable) = 0;
virtual int getSignalFd() = 0;
};

View file

@ -21,7 +21,7 @@
*/
#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
#if defined(QMF_AGENT_EXPORT) || defined (qmfagent_EXPORTS)
#if defined (qmf_EXPORTS)
#define QMF_AGENT_EXTERN __declspec(dllexport)
#else
#define QMF_AGENT_EXTERN __declspec(dllimport)

View file

@ -70,11 +70,16 @@ struct ApplyVisitor<ControlVisitor, F>:
virtual void visit(cluster::ConfigChange& x) { this->invoke(x); }
virtual void visit(cluster::MessageExpired& x) { this->invoke(x); }
virtual void visit(cluster::ErrorCheck& x) { this->invoke(x); }
virtual void visit(cluster::TimerWakeup& x) { this->invoke(x); }
virtual void visit(cluster::TimerDrop& x) { this->invoke(x); }
virtual void visit(cluster::Shutdown& x) { this->invoke(x); }
virtual void visit(cluster::DeliverToQueue& x) { this->invoke(x); }
virtual void visit(cluster-connection::Announce& x) { this->invoke(x); }
virtual void visit(cluster-connection::DeliverClose& x) { this->invoke(x); }
virtual void visit(cluster-connection::DeliverDoOutput& x) { this->invoke(x); }
virtual void visit(cluster-connection::Abort& x) { this->invoke(x); }
virtual void visit(cluster-connection::ShadowSetUser& x) { this->invoke(x); }
virtual void visit(cluster-connection::ShadowPrepare& x) { this->invoke(x); }
virtual void visit(cluster-connection::ConsumerState& x) { this->invoke(x); }
virtual void visit(cluster-connection::DeliveryRecord& x) { this->invoke(x); }
virtual void visit(cluster-connection::TxStart& x) { this->invoke(x); }
@ -94,6 +99,8 @@ struct ApplyVisitor<ControlVisitor, F>:
virtual void visit(cluster-connection::Queue& x) { this->invoke(x); }
virtual void visit(cluster-connection::ExpiryId& x) { this->invoke(x); }
virtual void visit(cluster-connection::AddQueueListener& x) { this->invoke(x); }
virtual void visit(cluster-connection::ManagementSetupState& x) { this->invoke(x); }
virtual void visit(cluster-connection::Config& x) { this->invoke(x); }
};
template <class F>
struct ApplyVisitor<ConstControlVisitor, F>:
@ -132,11 +139,16 @@ struct ApplyVisitor<ConstControlVisitor, F>:
virtual void visit(const cluster::ConfigChange& x) { this->invoke(x); }
virtual void visit(const cluster::MessageExpired& x) { this->invoke(x); }
virtual void visit(const cluster::ErrorCheck& x) { this->invoke(x); }
virtual void visit(const cluster::TimerWakeup& x) { this->invoke(x); }
virtual void visit(const cluster::TimerDrop& x) { this->invoke(x); }
virtual void visit(const cluster::Shutdown& x) { this->invoke(x); }
virtual void visit(const cluster::DeliverToQueue& x) { this->invoke(x); }
virtual void visit(const cluster-connection::Announce& x) { this->invoke(x); }
virtual void visit(const cluster-connection::DeliverClose& x) { this->invoke(x); }
virtual void visit(const cluster-connection::DeliverDoOutput& x) { this->invoke(x); }
virtual void visit(const cluster-connection::Abort& x) { this->invoke(x); }
virtual void visit(const cluster-connection::ShadowSetUser& x) { this->invoke(x); }
virtual void visit(const cluster-connection::ShadowPrepare& x) { this->invoke(x); }
virtual void visit(const cluster-connection::ConsumerState& x) { this->invoke(x); }
virtual void visit(const cluster-connection::DeliveryRecord& x) { this->invoke(x); }
virtual void visit(const cluster-connection::TxStart& x) { this->invoke(x); }
@ -156,6 +168,8 @@ struct ApplyVisitor<ConstControlVisitor, F>:
virtual void visit(const cluster-connection::Queue& x) { this->invoke(x); }
virtual void visit(const cluster-connection::ExpiryId& x) { this->invoke(x); }
virtual void visit(const cluster-connection::AddQueueListener& x) { this->invoke(x); }
virtual void visit(const cluster-connection::ManagementSetupState& x) { this->invoke(x); }
virtual void visit(const cluster-connection::Config& x) { this->invoke(x); }
};
}} // namespace qpid::amqp_0_10

View file

@ -0,0 +1,77 @@
#ifndef QPID_AMQP_0_10_CODECS_H
#define QPID_AMQP_0_10_CODECS_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/CommonImportExport.h"
#include "qpid/types/Variant.h"
namespace qpid {
namespace framing {
class FieldTable;
}
namespace amqp_0_10 {
/**
* Codec for encoding/decoding a map of Variants using the AMQP 0-10
* map encoding.
*/
class QPID_COMMON_EXTERN MapCodec
{
public:
typedef qpid::types::Variant::Map ObjectType;
static void encode(const ObjectType&, std::string&);
static void decode(const std::string&, ObjectType&);
static size_t encodedSize(const ObjectType&);
static const std::string contentType;
private:
};
/**
* Codec for encoding/decoding a list of Variants using the AMQP 0-10
* list encoding.
*/
class QPID_COMMON_EXTERN ListCodec
{
public:
typedef qpid::types::Variant::List ObjectType;
static void encode(const ObjectType&, std::string&);
static void decode(const std::string&, ObjectType&);
static size_t encodedSize(const ObjectType&);
static const std::string contentType;
private:
};
/**
* @internal
*
* Conversion functions between qpid::types:Variant::Map and the
* deprecated qpid::framing::FieldTable.
*
*/
QPID_COMMON_EXTERN void translate(const qpid::types::Variant::Map& from,
qpid::framing::FieldTable& to);
QPID_COMMON_EXTERN void translate(const qpid::framing::FieldTable& from,
qpid::types::Variant::Map& to);
}} // namespace qpid::amqp_0_10
#endif /*!QPID_AMQP_0_10_CODECS_H*/

View file

@ -71,31 +71,38 @@ static const size_t MAX030 = sizeof(cluster::Ready) > MAX029 ? sizeof(cluster::R
static const size_t MAX031 = sizeof(cluster::ConfigChange) > MAX030 ? sizeof(cluster::ConfigChange) : MAX030;
static const size_t MAX032 = sizeof(cluster::MessageExpired) > MAX031 ? sizeof(cluster::MessageExpired) : MAX031;
static const size_t MAX033 = sizeof(cluster::ErrorCheck) > MAX032 ? sizeof(cluster::ErrorCheck) : MAX032;
static const size_t MAX034 = sizeof(cluster::Shutdown) > MAX033 ? sizeof(cluster::Shutdown) : MAX033;
static const size_t MAX035 = sizeof(cluster-connection::Announce) > MAX034 ? sizeof(cluster-connection::Announce) : MAX034;
static const size_t MAX036 = sizeof(cluster-connection::DeliverClose) > MAX035 ? sizeof(cluster-connection::DeliverClose) : MAX035;
static const size_t MAX037 = sizeof(cluster-connection::DeliverDoOutput) > MAX036 ? sizeof(cluster-connection::DeliverDoOutput) : MAX036;
static const size_t MAX038 = sizeof(cluster-connection::Abort) > MAX037 ? sizeof(cluster-connection::Abort) : MAX037;
static const size_t MAX039 = sizeof(cluster-connection::ConsumerState) > MAX038 ? sizeof(cluster-connection::ConsumerState) : MAX038;
static const size_t MAX040 = sizeof(cluster-connection::DeliveryRecord) > MAX039 ? sizeof(cluster-connection::DeliveryRecord) : MAX039;
static const size_t MAX041 = sizeof(cluster-connection::TxStart) > MAX040 ? sizeof(cluster-connection::TxStart) : MAX040;
static const size_t MAX042 = sizeof(cluster-connection::TxAccept) > MAX041 ? sizeof(cluster-connection::TxAccept) : MAX041;
static const size_t MAX043 = sizeof(cluster-connection::TxDequeue) > MAX042 ? sizeof(cluster-connection::TxDequeue) : MAX042;
static const size_t MAX044 = sizeof(cluster-connection::TxEnqueue) > MAX043 ? sizeof(cluster-connection::TxEnqueue) : MAX043;
static const size_t MAX045 = sizeof(cluster-connection::TxPublish) > MAX044 ? sizeof(cluster-connection::TxPublish) : MAX044;
static const size_t MAX046 = sizeof(cluster-connection::TxEnd) > MAX045 ? sizeof(cluster-connection::TxEnd) : MAX045;
static const size_t MAX047 = sizeof(cluster-connection::AccumulatedAck) > MAX046 ? sizeof(cluster-connection::AccumulatedAck) : MAX046;
static const size_t MAX048 = sizeof(cluster-connection::OutputTask) > MAX047 ? sizeof(cluster-connection::OutputTask) : MAX047;
static const size_t MAX049 = sizeof(cluster-connection::SessionState) > MAX048 ? sizeof(cluster-connection::SessionState) : MAX048;
static const size_t MAX050 = sizeof(cluster-connection::ShadowReady) > MAX049 ? sizeof(cluster-connection::ShadowReady) : MAX049;
static const size_t MAX051 = sizeof(cluster-connection::Membership) > MAX050 ? sizeof(cluster-connection::Membership) : MAX050;
static const size_t MAX052 = sizeof(cluster-connection::RetractOffer) > MAX051 ? sizeof(cluster-connection::RetractOffer) : MAX051;
static const size_t MAX053 = sizeof(cluster-connection::QueuePosition) > MAX052 ? sizeof(cluster-connection::QueuePosition) : MAX052;
static const size_t MAX054 = sizeof(cluster-connection::Exchange) > MAX053 ? sizeof(cluster-connection::Exchange) : MAX053;
static const size_t MAX055 = sizeof(cluster-connection::Queue) > MAX054 ? sizeof(cluster-connection::Queue) : MAX054;
static const size_t MAX056 = sizeof(cluster-connection::ExpiryId) > MAX055 ? sizeof(cluster-connection::ExpiryId) : MAX055;
static const size_t MAX057 = sizeof(cluster-connection::AddQueueListener) > MAX056 ? sizeof(cluster-connection::AddQueueListener) : MAX056;
static const int MAX=MAX057;
static const size_t MAX034 = sizeof(cluster::TimerWakeup) > MAX033 ? sizeof(cluster::TimerWakeup) : MAX033;
static const size_t MAX035 = sizeof(cluster::TimerDrop) > MAX034 ? sizeof(cluster::TimerDrop) : MAX034;
static const size_t MAX036 = sizeof(cluster::Shutdown) > MAX035 ? sizeof(cluster::Shutdown) : MAX035;
static const size_t MAX037 = sizeof(cluster::DeliverToQueue) > MAX036 ? sizeof(cluster::DeliverToQueue) : MAX036;
static const size_t MAX038 = sizeof(cluster-connection::Announce) > MAX037 ? sizeof(cluster-connection::Announce) : MAX037;
static const size_t MAX039 = sizeof(cluster-connection::DeliverClose) > MAX038 ? sizeof(cluster-connection::DeliverClose) : MAX038;
static const size_t MAX040 = sizeof(cluster-connection::DeliverDoOutput) > MAX039 ? sizeof(cluster-connection::DeliverDoOutput) : MAX039;
static const size_t MAX041 = sizeof(cluster-connection::Abort) > MAX040 ? sizeof(cluster-connection::Abort) : MAX040;
static const size_t MAX042 = sizeof(cluster-connection::ShadowSetUser) > MAX041 ? sizeof(cluster-connection::ShadowSetUser) : MAX041;
static const size_t MAX043 = sizeof(cluster-connection::ShadowPrepare) > MAX042 ? sizeof(cluster-connection::ShadowPrepare) : MAX042;
static const size_t MAX044 = sizeof(cluster-connection::ConsumerState) > MAX043 ? sizeof(cluster-connection::ConsumerState) : MAX043;
static const size_t MAX045 = sizeof(cluster-connection::DeliveryRecord) > MAX044 ? sizeof(cluster-connection::DeliveryRecord) : MAX044;
static const size_t MAX046 = sizeof(cluster-connection::TxStart) > MAX045 ? sizeof(cluster-connection::TxStart) : MAX045;
static const size_t MAX047 = sizeof(cluster-connection::TxAccept) > MAX046 ? sizeof(cluster-connection::TxAccept) : MAX046;
static const size_t MAX048 = sizeof(cluster-connection::TxDequeue) > MAX047 ? sizeof(cluster-connection::TxDequeue) : MAX047;
static const size_t MAX049 = sizeof(cluster-connection::TxEnqueue) > MAX048 ? sizeof(cluster-connection::TxEnqueue) : MAX048;
static const size_t MAX050 = sizeof(cluster-connection::TxPublish) > MAX049 ? sizeof(cluster-connection::TxPublish) : MAX049;
static const size_t MAX051 = sizeof(cluster-connection::TxEnd) > MAX050 ? sizeof(cluster-connection::TxEnd) : MAX050;
static const size_t MAX052 = sizeof(cluster-connection::AccumulatedAck) > MAX051 ? sizeof(cluster-connection::AccumulatedAck) : MAX051;
static const size_t MAX053 = sizeof(cluster-connection::OutputTask) > MAX052 ? sizeof(cluster-connection::OutputTask) : MAX052;
static const size_t MAX054 = sizeof(cluster-connection::SessionState) > MAX053 ? sizeof(cluster-connection::SessionState) : MAX053;
static const size_t MAX055 = sizeof(cluster-connection::ShadowReady) > MAX054 ? sizeof(cluster-connection::ShadowReady) : MAX054;
static const size_t MAX056 = sizeof(cluster-connection::Membership) > MAX055 ? sizeof(cluster-connection::Membership) : MAX055;
static const size_t MAX057 = sizeof(cluster-connection::RetractOffer) > MAX056 ? sizeof(cluster-connection::RetractOffer) : MAX056;
static const size_t MAX058 = sizeof(cluster-connection::QueuePosition) > MAX057 ? sizeof(cluster-connection::QueuePosition) : MAX057;
static const size_t MAX059 = sizeof(cluster-connection::Exchange) > MAX058 ? sizeof(cluster-connection::Exchange) : MAX058;
static const size_t MAX060 = sizeof(cluster-connection::Queue) > MAX059 ? sizeof(cluster-connection::Queue) : MAX059;
static const size_t MAX061 = sizeof(cluster-connection::ExpiryId) > MAX060 ? sizeof(cluster-connection::ExpiryId) : MAX060;
static const size_t MAX062 = sizeof(cluster-connection::AddQueueListener) > MAX061 ? sizeof(cluster-connection::AddQueueListener) : MAX061;
static const size_t MAX063 = sizeof(cluster-connection::ManagementSetupState) > MAX062 ? sizeof(cluster-connection::ManagementSetupState) : MAX062;
static const size_t MAX064 = sizeof(cluster-connection::Config) > MAX063 ? sizeof(cluster-connection::Config) : MAX063;
static const int MAX=MAX064;
} // namespace control_max

View file

@ -69,11 +69,16 @@ struct ControlVisitor
virtual void visit(cluster::ConfigChange&) = 0;
virtual void visit(cluster::MessageExpired&) = 0;
virtual void visit(cluster::ErrorCheck&) = 0;
virtual void visit(cluster::TimerWakeup&) = 0;
virtual void visit(cluster::TimerDrop&) = 0;
virtual void visit(cluster::Shutdown&) = 0;
virtual void visit(cluster::DeliverToQueue&) = 0;
virtual void visit(cluster-connection::Announce&) = 0;
virtual void visit(cluster-connection::DeliverClose&) = 0;
virtual void visit(cluster-connection::DeliverDoOutput&) = 0;
virtual void visit(cluster-connection::Abort&) = 0;
virtual void visit(cluster-connection::ShadowSetUser&) = 0;
virtual void visit(cluster-connection::ShadowPrepare&) = 0;
virtual void visit(cluster-connection::ConsumerState&) = 0;
virtual void visit(cluster-connection::DeliveryRecord&) = 0;
virtual void visit(cluster-connection::TxStart&) = 0;
@ -93,6 +98,8 @@ struct ControlVisitor
virtual void visit(cluster-connection::Queue&) = 0;
virtual void visit(cluster-connection::ExpiryId&) = 0;
virtual void visit(cluster-connection::AddQueueListener&) = 0;
virtual void visit(cluster-connection::ManagementSetupState&) = 0;
virtual void visit(cluster-connection::Config&) = 0;
};
struct ConstControlVisitor
{
@ -131,11 +138,16 @@ struct ConstControlVisitor
virtual void visit(const cluster::ConfigChange&) = 0;
virtual void visit(const cluster::MessageExpired&) = 0;
virtual void visit(const cluster::ErrorCheck&) = 0;
virtual void visit(const cluster::TimerWakeup&) = 0;
virtual void visit(const cluster::TimerDrop&) = 0;
virtual void visit(const cluster::Shutdown&) = 0;
virtual void visit(const cluster::DeliverToQueue&) = 0;
virtual void visit(const cluster-connection::Announce&) = 0;
virtual void visit(const cluster-connection::DeliverClose&) = 0;
virtual void visit(const cluster-connection::DeliverDoOutput&) = 0;
virtual void visit(const cluster-connection::Abort&) = 0;
virtual void visit(const cluster-connection::ShadowSetUser&) = 0;
virtual void visit(const cluster-connection::ShadowPrepare&) = 0;
virtual void visit(const cluster-connection::ConsumerState&) = 0;
virtual void visit(const cluster-connection::DeliveryRecord&) = 0;
virtual void visit(const cluster-connection::TxStart&) = 0;
@ -155,6 +167,8 @@ struct ConstControlVisitor
virtual void visit(const cluster-connection::Queue&) = 0;
virtual void visit(const cluster-connection::ExpiryId&) = 0;
virtual void visit(const cluster-connection::AddQueueListener&) = 0;
virtual void visit(const cluster-connection::ManagementSetupState&) = 0;
virtual void visit(const cluster-connection::Config&) = 0;
};
}} // namespace qpid::amqp_0_10

View file

@ -861,10 +861,11 @@ class ProxyTemplate
Bit active_,
const Uuid& clusterId_,
const cluster::StoreState& storeState_,
const Uuid& shutdownId_
const Uuid& shutdownId_,
const Str16& firstConfig_
)
{
cluster::InitialStatus initialStatus(version_, active_, clusterId_, storeState_, shutdownId_);
cluster::InitialStatus initialStatus(version_, active_, clusterId_, storeState_, shutdownId_, firstConfig_);
return functor(initialStatus);
}
@ -876,9 +877,13 @@ class ProxyTemplate
}
R clusterConfigChange(const Vbin16& current_)
R clusterConfigChange(
const Vbin16& members_,
const Vbin16& joined_,
const Vbin16& left_
)
{
cluster::ConfigChange configChange(current_);
cluster::ConfigChange configChange(members_, joined_, left_);
return functor(configChange);
}
@ -900,6 +905,20 @@ class ProxyTemplate
}
R clusterTimerWakeup(const Str16& name_)
{
cluster::TimerWakeup timerWakeup(name_);
return functor(timerWakeup);
}
R clusterTimerDrop(const Str16& name_)
{
cluster::TimerDrop timerDrop(name_);
return functor(timerDrop);
}
R clusterShutdown(const Uuid& shutdownId_)
{
cluster::Shutdown shutdown(shutdownId_);
@ -907,9 +926,26 @@ class ProxyTemplate
}
R clusterConnectionAnnounce(Uint32 ssf_)
R clusterDeliverToQueue(
const Str16& queue_,
const Vbin32& message_
)
{
cluster-connection::Announce announce(ssf_);
cluster::DeliverToQueue deliverToQueue(queue_, message_);
return functor(deliverToQueue);
}
R clusterConnectionAnnounce(
const Str16& managementId_,
Uint32 ssf_,
const Str16& authid_,
Bit nodict_,
const Str32& username_,
const Str32& initialFrames_
)
{
cluster-connection::Announce announce(managementId_, ssf_, authid_, nodict_, username_, initialFrames_);
return functor(announce);
}
@ -935,6 +971,20 @@ class ProxyTemplate
}
R clusterConnectionShadowSetUser(const Str16& userId_)
{
cluster-connection::ShadowSetUser shadowSetUser(userId_);
return functor(shadowSetUser);
}
R clusterConnectionShadowPrepare(const Str16& managementId_)
{
cluster-connection::ShadowPrepare shadowPrepare(managementId_);
return functor(shadowPrepare);
}
R clusterConnectionConsumerState(
const Str8& name_,
Bit blocked_,
@ -1047,12 +1097,13 @@ class ProxyTemplate
R clusterConnectionShadowReady(
Uint64 memberId_,
Uint64 connectionId_,
const Str16& managementId_,
const Str8& userName_,
const Str32& fragment_,
Uint32 sendMax_
)
{
cluster-connection::ShadowReady shadowReady(memberId_, connectionId_, userName_, fragment_, sendMax_);
cluster-connection::ShadowReady shadowReady(memberId_, connectionId_, managementId_, userName_, fragment_, sendMax_);
return functor(shadowReady);
}
@ -1114,6 +1165,27 @@ class ProxyTemplate
cluster-connection::AddQueueListener addQueueListener(queue_, consumer_);
return functor(addQueueListener);
}
R clusterConnectionManagementSetupState(
Uint64 objectNum_,
Uint16 bootSequence_,
const Uuid& brokerId_,
const Str32& vendor_,
const Str32& product_,
const Str32& instance_
)
{
cluster-connection::ManagementSetupState managementSetupState(objectNum_, bootSequence_, brokerId_, vendor_, product_, instance_);
return functor(managementSetupState);
}
R clusterConnectionConfig(const Str32& encoded_)
{
cluster-connection::Config config(encoded_);
return functor(config);
}
private:
F functor;
};

View file

@ -130,11 +130,16 @@ struct ControlHandler:
public cluster::ConfigChange::Handler,
public cluster::MessageExpired::Handler,
public cluster::ErrorCheck::Handler,
public cluster::TimerWakeup::Handler,
public cluster::TimerDrop::Handler,
public cluster::Shutdown::Handler,
public cluster::DeliverToQueue::Handler,
public cluster-connection::Announce::Handler,
public cluster-connection::DeliverClose::Handler,
public cluster-connection::DeliverDoOutput::Handler,
public cluster-connection::Abort::Handler,
public cluster-connection::ShadowSetUser::Handler,
public cluster-connection::ShadowPrepare::Handler,
public cluster-connection::ConsumerState::Handler,
public cluster-connection::DeliveryRecord::Handler,
public cluster-connection::TxStart::Handler,
@ -153,7 +158,9 @@ struct ControlHandler:
public cluster-connection::Exchange::Handler,
public cluster-connection::Queue::Handler,
public cluster-connection::ExpiryId::Handler,
public cluster-connection::AddQueueListener::Handler
public cluster-connection::AddQueueListener::Handler,
public cluster-connection::ManagementSetupState::Handler,
public cluster-connection::Config::Handler
{
};

View file

@ -3299,6 +3299,7 @@ struct InitialStatus:
Uuid clusterId;
StoreState storeState;
Uuid shutdownId;
Str16 firstConfig;
static const char* NAME;
static const uint8_t CODE=0x5;
@ -3309,12 +3310,13 @@ struct InitialStatus:
Bit active_=Bit(),
const Uuid& clusterId_=Uuid(),
const cluster::StoreState& storeState_=cluster::StoreState(),
const Uuid& shutdownId_=Uuid()
const Uuid& shutdownId_=Uuid(),
const Str16& firstConfig_=Str16()
);
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(version)(active)(clusterId)(storeState)(shutdownId);
s(version)(active)(clusterId)(storeState)(shutdownId)(firstConfig);
}
struct Handler
@ -3324,13 +3326,14 @@ struct InitialStatus:
Bit active_,
const Uuid& clusterId_,
const cluster::StoreState& storeState_,
const Uuid& shutdownId_
const Uuid& shutdownId_,
const Str16& firstConfig_
);
};
template <class T> void invoke(T& target)const
{
target.clusterInitialStatus(version, active, clusterId, storeState, shutdownId );
target.clusterInitialStatus(version, active, clusterId, storeState, shutdownId, firstConfig );
}
};
inline Packer<InitialStatus> serializable(InitialStatus& x) { return Packer<InitialStatus>(x); }
@ -3372,29 +3375,37 @@ bool operator==(const Ready&, const Ready&);
struct ConfigChange:
public Control
{
Vbin16 current;
Vbin16 members;
Vbin16 joined;
Vbin16 left;
static const char* NAME;
static const uint8_t CODE=0x11;
static const uint8_t CLASS_CODE=cluster::CODE;
static const char* CLASS_NAME;
explicit ConfigChange(const Vbin16& current_=Vbin16());
explicit ConfigChange(
const Vbin16& members_=Vbin16(),
const Vbin16& joined_=Vbin16(),
const Vbin16& left_=Vbin16()
);
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(current);
s(members)(joined)(left);
}
struct Handler
{
void clusterConfigChange(
const Vbin16& current_
const Vbin16& members_,
const Vbin16& joined_,
const Vbin16& left_
);
};
template <class T> void invoke(T& target)const
{
target.clusterConfigChange(current );
target.clusterConfigChange(members, joined, left );
}
};
inline Packer<ConfigChange> serializable(ConfigChange& x) { return Packer<ConfigChange>(x); }
@ -3470,6 +3481,70 @@ inline Packer<ErrorCheck> serializable(ErrorCheck& x) { return Packer<ErrorCheck
std::ostream& operator << (std::ostream&, const ErrorCheck&);
bool operator==(const ErrorCheck&, const ErrorCheck&);
struct TimerWakeup:
public Control
{
Str16 name;
static const char* NAME;
static const uint8_t CODE=0x15;
static const uint8_t CLASS_CODE=cluster::CODE;
static const char* CLASS_NAME;
explicit TimerWakeup(const Str16& name_=Str16());
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(name);
}
struct Handler
{
void clusterTimerWakeup(
const Str16& name_
);
};
template <class T> void invoke(T& target)const
{
target.clusterTimerWakeup(name );
}
};
inline Packer<TimerWakeup> serializable(TimerWakeup& x) { return Packer<TimerWakeup>(x); }
std::ostream& operator << (std::ostream&, const TimerWakeup&);
bool operator==(const TimerWakeup&, const TimerWakeup&);
struct TimerDrop:
public Control
{
Str16 name;
static const char* NAME;
static const uint8_t CODE=0x16;
static const uint8_t CLASS_CODE=cluster::CODE;
static const char* CLASS_NAME;
explicit TimerDrop(const Str16& name_=Str16());
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(name);
}
struct Handler
{
void clusterTimerDrop(
const Str16& name_
);
};
template <class T> void invoke(T& target)const
{
target.clusterTimerDrop(name );
}
};
inline Packer<TimerDrop> serializable(TimerDrop& x) { return Packer<TimerDrop>(x); }
std::ostream& operator << (std::ostream&, const TimerDrop&);
bool operator==(const TimerDrop&, const TimerDrop&);
struct Shutdown:
public Control
{
@ -3502,6 +3577,43 @@ inline Packer<Shutdown> serializable(Shutdown& x) { return Packer<Shutdown>(x);
std::ostream& operator << (std::ostream&, const Shutdown&);
bool operator==(const Shutdown&, const Shutdown&);
struct DeliverToQueue:
public Control
{
Str16 queue;
Vbin32 message;
static const char* NAME;
static const uint8_t CODE=0x21;
static const uint8_t CLASS_CODE=cluster::CODE;
static const char* CLASS_NAME;
explicit DeliverToQueue(
const Str16& queue_=Str16(),
const Vbin32& message_=Vbin32()
);
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(queue)(message);
}
struct Handler
{
void clusterDeliverToQueue(
const Str16& queue_,
const Vbin32& message_
);
};
template <class T> void invoke(T& target)const
{
target.clusterDeliverToQueue(queue, message );
}
};
inline Packer<DeliverToQueue> serializable(DeliverToQueue& x) { return Packer<DeliverToQueue>(x); }
std::ostream& operator << (std::ostream&, const DeliverToQueue&);
bool operator==(const DeliverToQueue&, const DeliverToQueue&);
} // namespace cluster
@ -3511,29 +3623,46 @@ namespace cluster_connection {
struct Announce:
public Control
{
Str16 managementId;
Uint32 ssf;
Str16 authid;
Bit nodict;
Str32 username;
Str32 initialFrames;
static const char* NAME;
static const uint8_t CODE=0x1;
static const uint8_t CLASS_CODE=cluster_connection::CODE;
static const char* CLASS_NAME;
explicit Announce(Uint32 ssf_=Uint32());
explicit Announce(
const Str16& managementId_=Str16(),
Uint32 ssf_=Uint32(),
const Str16& authid_=Str16(),
Bit nodict_=Bit(),
const Str32& username_=Str32(),
const Str32& initialFrames_=Str32()
);
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(ssf);
s(managementId)(ssf)(authid)(nodict)(username)(initialFrames);
}
struct Handler
{
void clusterConnectionAnnounce(
Uint32 ssf_
const Str16& managementId_,
Uint32 ssf_,
const Str16& authid_,
Bit nodict_,
const Str32& username_,
const Str32& initialFrames_
);
};
template <class T> void invoke(T& target)const
{
target.clusterConnectionAnnounce(ssf );
target.clusterConnectionAnnounce(managementId, ssf, authid, nodict, username, initialFrames );
}
};
inline Packer<Announce> serializable(Announce& x) { return Packer<Announce>(x); }
@ -3630,6 +3759,70 @@ inline Packer<Abort> serializable(Abort& x) { return Packer<Abort>(x); }
std::ostream& operator << (std::ostream&, const Abort&);
bool operator==(const Abort&, const Abort&);
struct ShadowSetUser:
public Control
{
Str16 userId;
static const char* NAME;
static const uint8_t CODE=0x0E;
static const uint8_t CLASS_CODE=cluster_connection::CODE;
static const char* CLASS_NAME;
explicit ShadowSetUser(const Str16& userId_=Str16());
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(userId);
}
struct Handler
{
void clusterConnectionShadowSetUser(
const Str16& userId_
);
};
template <class T> void invoke(T& target)const
{
target.clusterConnectionShadowSetUser(userId );
}
};
inline Packer<ShadowSetUser> serializable(ShadowSetUser& x) { return Packer<ShadowSetUser>(x); }
std::ostream& operator << (std::ostream&, const ShadowSetUser&);
bool operator==(const ShadowSetUser&, const ShadowSetUser&);
struct ShadowPrepare:
public Control
{
Str16 managementId;
static const char* NAME;
static const uint8_t CODE=0x0F;
static const uint8_t CLASS_CODE=cluster_connection::CODE;
static const char* CLASS_NAME;
explicit ShadowPrepare(const Str16& managementId_=Str16());
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(managementId);
}
struct Handler
{
void clusterConnectionShadowPrepare(
const Str16& managementId_
);
};
template <class T> void invoke(T& target)const
{
target.clusterConnectionShadowPrepare(managementId );
}
};
inline Packer<ShadowPrepare> serializable(ShadowPrepare& x) { return Packer<ShadowPrepare>(x); }
std::ostream& operator << (std::ostream&, const ShadowPrepare&);
bool operator==(const ShadowPrepare&, const ShadowPrepare&);
struct ConsumerState:
public Control
{
@ -4057,6 +4250,7 @@ struct ShadowReady:
{
Uint64 memberId;
Uint64 connectionId;
Str16 managementId;
Str8 userName;
Str32 fragment;
Uint32 sendMax;
@ -4068,6 +4262,7 @@ struct ShadowReady:
explicit ShadowReady(
Uint64 memberId_=Uint64(),
Uint64 connectionId_=Uint64(),
const Str16& managementId_=Str16(),
const Str8& userName_=Str8(),
const Str32& fragment_=Str32(),
Uint32 sendMax_=Uint32()
@ -4075,7 +4270,7 @@ struct ShadowReady:
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(memberId)(connectionId)(userName)(fragment)(sendMax);
s(memberId)(connectionId)(managementId)(userName)(fragment)(sendMax);
}
struct Handler
@ -4083,6 +4278,7 @@ struct ShadowReady:
void clusterConnectionShadowReady(
Uint64 memberId_,
Uint64 connectionId_,
const Str16& managementId_,
const Str8& userName_,
const Str32& fragment_,
Uint32 sendMax_
@ -4091,7 +4287,7 @@ struct ShadowReady:
template <class T> void invoke(T& target)const
{
target.clusterConnectionShadowReady(memberId, connectionId, userName, fragment, sendMax );
target.clusterConnectionShadowReady(memberId, connectionId, managementId, userName, fragment, sendMax );
}
};
inline Packer<ShadowReady> serializable(ShadowReady& x) { return Packer<ShadowReady>(x); }
@ -4337,6 +4533,87 @@ inline Packer<AddQueueListener> serializable(AddQueueListener& x) { return Packe
std::ostream& operator << (std::ostream&, const AddQueueListener&);
bool operator==(const AddQueueListener&, const AddQueueListener&);
struct ManagementSetupState:
public Control
{
Uint64 objectNum;
Uint16 bootSequence;
Uuid brokerId;
Str32 vendor;
Str32 product;
Str32 instance;
static const char* NAME;
static const uint8_t CODE=0x36;
static const uint8_t CLASS_CODE=cluster_connection::CODE;
static const char* CLASS_NAME;
explicit ManagementSetupState(
Uint64 objectNum_=Uint64(),
Uint16 bootSequence_=Uint16(),
const Uuid& brokerId_=Uuid(),
const Str32& vendor_=Str32(),
const Str32& product_=Str32(),
const Str32& instance_=Str32()
);
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(objectNum)(bootSequence)(brokerId)(vendor)(product)(instance);
}
struct Handler
{
void clusterConnectionManagementSetupState(
Uint64 objectNum_,
Uint16 bootSequence_,
const Uuid& brokerId_,
const Str32& vendor_,
const Str32& product_,
const Str32& instance_
);
};
template <class T> void invoke(T& target)const
{
target.clusterConnectionManagementSetupState(objectNum, bootSequence, brokerId, vendor, product, instance );
}
};
inline Packer<ManagementSetupState> serializable(ManagementSetupState& x) { return Packer<ManagementSetupState>(x); }
std::ostream& operator << (std::ostream&, const ManagementSetupState&);
bool operator==(const ManagementSetupState&, const ManagementSetupState&);
struct Config:
public Control
{
Str32 encoded;
static const char* NAME;
static const uint8_t CODE=0x37;
static const uint8_t CLASS_CODE=cluster_connection::CODE;
static const char* CLASS_NAME;
explicit Config(const Str32& encoded_=Str32());
void accept(Visitor&);
void accept(ConstVisitor&) const;
template <class S> void serialize(S& s) {
s(encoded);
}
struct Handler
{
void clusterConnectionConfig(
const Str32& encoded_
);
};
template <class T> void invoke(T& target)const
{
target.clusterConnectionConfig(encoded );
}
};
inline Packer<Config> serializable(Config& x) { return Packer<Config>(x); }
std::ostream& operator << (std::ostream&, const Config&);
bool operator==(const Config&, const Config&);
} // namespace cluster_connection

View file

@ -402,7 +402,10 @@ inline SerializeAs<ErrorType, uint8_t> serializable(ErrorType& e) {
return SerializeAs<ErrorType, uint8_t>(e);
}
class ErrorCheck;
class TimerWakeup;
class TimerDrop;
class Shutdown;
class DeliverToQueue;
} // namespace cluster
@ -415,6 +418,8 @@ class Announce;
class DeliverClose;
class DeliverDoOutput;
class Abort;
class ShadowSetUser;
class ShadowPrepare;
class ConsumerState;
class DeliveryRecord;
class TxStart;
@ -434,6 +439,8 @@ class Exchange;
class Queue;
class ExpiryId;
class AddQueueListener;
class ManagementSetupState;
class Config;
} // namespace cluster_connection

View file

@ -28,6 +28,8 @@
#include "qpid/client/ConnectionSettings.h"
#include "qpid/framing/ProtocolVersion.h"
#include "boost/function.hpp"
namespace qpid {
struct Url;
@ -71,11 +73,15 @@ class Connection
public:
/**
* Creates a connection object, but does not open the connection.
* Creates a Connection object, but does not open the connection.
* @see open()
*/
QPID_CLIENT_EXTERN Connection();
/**
* Destroys a Connection object but does not close the connection if it
* was open. @see close()
*/
QPID_CLIENT_EXTERN ~Connection();
/**
@ -212,7 +218,7 @@ class Connection
*/
QPID_CLIENT_EXTERN const ConnectionSettings& getNegotiatedSettings();
friend class ConnectionAccess; ///<@internal
friend struct ConnectionAccess; ///<@internal
friend class SessionBase_0_10; ///<@internal
};

View file

@ -22,13 +22,9 @@
*
*/
#include "qpid/Options.h"
#include "qpid/log/Options.h"
#include "qpid/Url.h"
#include "qpid/client/ClientImportExport.h"
#include <iostream>
#include <exception>
#include "qpid/sys/IntegerTypes.h"
#include <string>
namespace qpid {
@ -107,7 +103,7 @@ struct ConnectionSettings {
* Limit the size of the connections send buffer . The buffer
* is limited to bounds * maxFrameSize.
*/
uint bounds;
unsigned int bounds;
/**
* If true, TCP_NODELAY will be set for the connection.
*/
@ -120,12 +116,12 @@ struct ConnectionSettings {
* Minimum acceptable strength of any SASL negotiated security
* layer. 0 means no security layer required.
*/
uint minSsf;
unsigned int minSsf;
/**
* Maximum acceptable strength of any SASL negotiated security
* layer. 0 means no security layer allowed.
*/
uint maxSsf;
unsigned int maxSsf;
};
}} // namespace qpid::client

View file

@ -99,6 +99,7 @@ class SessionBase_0_10 {
QPID_CLIENT_EXTERN bool isValid() const;
QPID_CLIENT_EXTERN Connection getConnection();
protected:
boost::shared_ptr<SessionImpl> impl;
friend class SessionBase_0_10Access;

View file

@ -1,61 +0,0 @@
#ifndef QPID_CLIENT_AMQP0_10_CODECS_H
#define QPID_CLIENT_AMQP0_10_CODECS_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/messaging/Codec.h"
namespace qpid {
namespace client {
namespace amqp0_10 {
/**
* Codec for encoding/decoding a map of Variants using the AMQP 0-10
* map encoding.
*/
class MapCodec : public qpid::messaging::Codec
{
public:
void encode(const qpid::messaging::Variant&, std::string&);
void decode(const std::string&, qpid::messaging::Variant&);
static const std::string contentType;
private:
};
/**
* Codec for encoding/decoding a list of Variants using the AMQP 0-10
* list encoding.
*/
class ListCodec : public qpid::messaging::Codec
{
public:
void encode(const qpid::messaging::Variant&, std::string&);
void decode(const std::string&, qpid::messaging::Variant&);
static const std::string contentType;
private:
};
}}} // namespace qpid::client::amqp0_10
#endif /*!QPID_CLIENT_AMQP0_10_CODECS_H*/

View file

@ -55,15 +55,16 @@ namespace console {
client::ConnectionSettings& settings);
QPID_CONSOLE_EXTERN ~Broker();
bool isConnected() const { return connected; }
const std::string& getError() const { return error; }
const std::string& getSessionId() const { return amqpSessionId; }
const framing::Uuid& getBrokerId() const { return brokerId; }
uint32_t getBrokerBank() const { return 1; }
void addBinding(const std::string& key) {
QPID_CONSOLE_EXTERN bool isConnected() const { return connected; }
QPID_CONSOLE_EXTERN const std::string& getError() const { return error; }
QPID_CONSOLE_EXTERN const std::string& getSessionId() const { return amqpSessionId; }
QPID_CONSOLE_EXTERN const framing::Uuid& getBrokerId() const { return brokerId; }
QPID_CONSOLE_EXTERN uint32_t getBrokerBank() const { return 1; }
QPID_CONSOLE_EXTERN void addBinding(const std::string& key) {
connThreadBody.bindExchange("qpid.management", key);
}
QPID_CONSOLE_EXTERN std::string getUrl() const;
QPID_CONSOLE_EXTERN void waitForStable();
private:
friend class SessionManager;
@ -117,7 +118,6 @@ namespace console {
void received(client::Message& msg);
void resetAgents();
void updateAgent(const Object& object);
void waitForStable();
void incOutstanding();
void decOutstanding();
void setBrokerId(const framing::Uuid& id) { brokerId = id; }

View file

@ -138,6 +138,20 @@ class SessionManager
QPID_CONSOLE_EXTERN void bindClass(const std::string& packageName,
const std::string& className);
/** Request events from a particular package.
*
* Note that this method is only meaningful if a ConsoleListener was provided at session
* creation and if the 'userBindings' flag was set to true.
*
* @param classKey Class key of event of interest
* @param packageName Name of package of event of interest.
* @param eventName Name of event of interest. Default=All events defined by package.
*/
QPID_CONSOLE_EXTERN void bindEvent(const ClassKey& classKey);
QPID_CONSOLE_EXTERN void bindEvent(const std::string& packageName,
const std::string& eventName="");
/** Get a list of qmf agents known to the session manager.
*
*@param agents Vector of Agent objects returned by the session manager.

View file

@ -441,18 +441,28 @@ class AMQP_AllOperations {
bool active,
const Uuid& clusterId,
uint8_t storeState,
const Uuid& shutdownId) = 0;
const Uuid& shutdownId,
const string& firstConfig) = 0;
virtual void ready(const string& url) = 0;
virtual void configChange(const string& current) = 0;
virtual void configChange(const string& members,
const string& joined,
const string& left) = 0;
virtual void messageExpired(uint64_t id) = 0;
virtual void errorCheck(uint8_t type,
const SequenceNumber& frameSeq) = 0;
virtual void timerWakeup(const string& name) = 0;
virtual void timerDrop(const string& name) = 0;
virtual void shutdown(const Uuid& shutdownId) = 0;
virtual void deliverToQueue(const string& queue,
const string& message) = 0;
}; // class ClusterHandler
@ -466,7 +476,12 @@ class AMQP_AllOperations {
virtual ~ClusterConnectionHandler() {}
// Protocol methods
virtual void announce(uint32_t ssf) = 0;
virtual void announce(const string& managementId,
uint32_t ssf,
const string& authid,
bool nodict,
const string& username,
const string& initialFrames) = 0;
virtual void deliverClose( ) = 0;
@ -474,6 +489,10 @@ class AMQP_AllOperations {
virtual void abort( ) = 0;
virtual void shadowSetUser(const string& userId) = 0;
virtual void shadowPrepare(const string& managementId) = 0;
virtual void consumerState(const string& name,
bool blocked,
bool notifyEnabled,
@ -520,6 +539,7 @@ class AMQP_AllOperations {
virtual void shadowReady(uint64_t memberId,
uint64_t connectionId,
const string& managementId,
const string& userName,
const string& fragment,
uint32_t sendMax) = 0;
@ -541,6 +561,15 @@ class AMQP_AllOperations {
virtual void addQueueListener(const string& queue,
uint32_t consumer) = 0;
virtual void managementSetupState(uint64_t objectNum,
uint16_t bootSequence,
const Uuid& brokerId,
const string& vendor,
const string& product,
const string& instance) = 0;
virtual void config(const string& encoded) = 0;
}; // class ClusterConnectionHandler

View file

@ -440,19 +440,29 @@ class AMQP_AllProxy:
bool active,
const Uuid& clusterId,
uint8_t storeState,
const Uuid& shutdownId);
const Uuid& shutdownId,
const string& firstConfig);
QPID_COMMON_EXTERN virtual void ready(const string& url);
QPID_COMMON_EXTERN virtual void configChange(const string& current);
QPID_COMMON_EXTERN virtual void configChange(const string& members,
const string& joined,
const string& left);
QPID_COMMON_EXTERN virtual void messageExpired(uint64_t id);
QPID_COMMON_EXTERN virtual void errorCheck(uint8_t type,
const SequenceNumber& frameSeq);
QPID_COMMON_EXTERN virtual void timerWakeup(const string& name);
QPID_COMMON_EXTERN virtual void timerDrop(const string& name);
QPID_COMMON_EXTERN virtual void shutdown(const Uuid& shutdownId);
QPID_COMMON_EXTERN virtual void deliverToQueue(const string& queue,
const string& message);
};
Cluster& getCluster() { return clusterProxy; }
@ -463,7 +473,12 @@ class AMQP_AllProxy:
public:
ClusterConnection(FrameHandler& f) : Proxy(f) {}
static ClusterConnection& get(AMQP_AllProxy& proxy) { return proxy.getClusterConnection(); }
QPID_COMMON_EXTERN virtual void announce(uint32_t ssf);
QPID_COMMON_EXTERN virtual void announce(const string& managementId,
uint32_t ssf,
const string& authid,
bool nodict,
const string& username,
const string& initialFrames);
QPID_COMMON_EXTERN virtual void deliverClose();
@ -471,6 +486,10 @@ class AMQP_AllProxy:
QPID_COMMON_EXTERN virtual void abort();
QPID_COMMON_EXTERN virtual void shadowSetUser(const string& userId);
QPID_COMMON_EXTERN virtual void shadowPrepare(const string& managementId);
QPID_COMMON_EXTERN virtual void consumerState(const string& name,
bool blocked,
bool notifyEnabled,
@ -517,6 +536,7 @@ class AMQP_AllProxy:
QPID_COMMON_EXTERN virtual void shadowReady(uint64_t memberId,
uint64_t connectionId,
const string& managementId,
const string& userName,
const string& fragment,
uint32_t sendMax);
@ -539,6 +559,15 @@ class AMQP_AllProxy:
QPID_COMMON_EXTERN virtual void addQueueListener(const string& queue,
uint32_t consumer);
QPID_COMMON_EXTERN virtual void managementSetupState(uint64_t objectNum,
uint16_t bootSequence,
const Uuid& brokerId,
const string& vendor,
const string& product,
const string& instance);
QPID_COMMON_EXTERN virtual void config(const string& encoded);
};
ClusterConnection& getClusterConnection() { return clusterConnectionProxy; }

View file

@ -128,11 +128,16 @@ class AMQP_AllOperations::Invoker:
QPID_COMMON_EXTERN void visit(const ClusterConfigChangeBody& body);
QPID_COMMON_EXTERN void visit(const ClusterMessageExpiredBody& body);
QPID_COMMON_EXTERN void visit(const ClusterErrorCheckBody& body);
QPID_COMMON_EXTERN void visit(const ClusterTimerWakeupBody& body);
QPID_COMMON_EXTERN void visit(const ClusterTimerDropBody& body);
QPID_COMMON_EXTERN void visit(const ClusterShutdownBody& body);
QPID_COMMON_EXTERN void visit(const ClusterDeliverToQueueBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionAnnounceBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionDeliverCloseBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionDeliverDoOutputBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionAbortBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionShadowSetUserBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionShadowPrepareBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionConsumerStateBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionDeliveryRecordBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionTxStartBody& body);
@ -152,6 +157,8 @@ class AMQP_AllOperations::Invoker:
QPID_COMMON_EXTERN void visit(const ClusterConnectionQueueBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionExpiryIdBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionAddQueueListenerBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionManagementSetupStateBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionConfigBody& body);
};
class AMQP_AllOperations::ConnectionHandler::Invoker:
@ -337,7 +344,10 @@ class AMQP_AllOperations::ClusterHandler::Invoker:
QPID_COMMON_EXTERN void visit(const ClusterConfigChangeBody& body);
QPID_COMMON_EXTERN void visit(const ClusterMessageExpiredBody& body);
QPID_COMMON_EXTERN void visit(const ClusterErrorCheckBody& body);
QPID_COMMON_EXTERN void visit(const ClusterTimerWakeupBody& body);
QPID_COMMON_EXTERN void visit(const ClusterTimerDropBody& body);
QPID_COMMON_EXTERN void visit(const ClusterShutdownBody& body);
QPID_COMMON_EXTERN void visit(const ClusterDeliverToQueueBody& body);
};
class AMQP_AllOperations::ClusterConnectionHandler::Invoker:
@ -351,6 +361,8 @@ class AMQP_AllOperations::ClusterConnectionHandler::Invoker:
QPID_COMMON_EXTERN void visit(const ClusterConnectionDeliverCloseBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionDeliverDoOutputBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionAbortBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionShadowSetUserBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionShadowPrepareBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionConsumerStateBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionDeliveryRecordBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionTxStartBody& body);
@ -370,6 +382,8 @@ class AMQP_AllOperations::ClusterConnectionHandler::Invoker:
QPID_COMMON_EXTERN void visit(const ClusterConnectionQueueBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionExpiryIdBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionAddQueueListenerBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionManagementSetupStateBody& body);
QPID_COMMON_EXTERN void visit(const ClusterConnectionConfigBody& body);
};
}} // namespace qpid::framing

View file

@ -43,9 +43,8 @@ class Buffer
uint32_t position;
uint32_t r_position;
void checkAvailable(uint32_t count) { if (position + count > size) throw OutOfBounds(); }
public:
void checkAvailable(uint32_t count) { if (position + count > size) throw OutOfBounds(); }
/** Buffer input/output iterator.
* Supports using an amqp_0_10::Codec with a framing::Buffer.
@ -76,6 +75,7 @@ class Buffer
QPID_COMMON_EXTERN uint32_t available() { return size - position; }
QPID_COMMON_EXTERN uint32_t getSize() { return size; }
QPID_COMMON_EXTERN uint32_t getPosition() { return position; }
QPID_COMMON_EXTERN void setPosition(uint32_t p) { position = p; }
QPID_COMMON_EXTERN Iterator getIterator() { return Iterator(*this); }
QPID_COMMON_EXTERN char* getPointer() { return data; }

View file

@ -40,27 +40,43 @@ namespace qpid {
namespace framing {
class ClusterConfigChangeBody : public ModelMethod {
string current;
string members;
string joined;
string left;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x80;
static const MethodId METHOD_ID = 0x11;
ClusterConfigChangeBody(
ProtocolVersion, const string& _current) :
current(_current),
ProtocolVersion, const string& _members,
const string& _joined,
const string& _left) :
members(_members),
joined(_joined),
left(_left),
flags(0){
flags |= (1 << 8);
flags |= (1 << 9);
flags |= (1 << 10);
}
ClusterConfigChangeBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setCurrent(const string& _current);
QPID_COMMON_EXTERN const string& getCurrent() const;
QPID_COMMON_EXTERN bool hasCurrent() const;
QPID_COMMON_EXTERN void clearCurrentFlag();
QPID_COMMON_EXTERN void setMembers(const string& _members);
QPID_COMMON_EXTERN const string& getMembers() const;
QPID_COMMON_EXTERN bool hasMembers() const;
QPID_COMMON_EXTERN void clearMembersFlag();
QPID_COMMON_EXTERN void setJoined(const string& _joined);
QPID_COMMON_EXTERN const string& getJoined() const;
QPID_COMMON_EXTERN bool hasJoined() const;
QPID_COMMON_EXTERN void clearJoinedFlag();
QPID_COMMON_EXTERN void setLeft(const string& _left);
QPID_COMMON_EXTERN const string& getLeft() const;
QPID_COMMON_EXTERN bool hasLeft() const;
QPID_COMMON_EXTERN void clearLeftFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.configChange(getCurrent());
return invocable.configChange(getMembers(), getJoined(), getLeft());
}
using AMQMethodBody::accept;

View file

@ -40,27 +40,63 @@ namespace qpid {
namespace framing {
class ClusterConnectionAnnounceBody : public ModelMethod {
string managementId;
uint32_t ssf;
string authid;
string username;
string initialFrames;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x81;
static const MethodId METHOD_ID = 0x1;
ClusterConnectionAnnounceBody(
ProtocolVersion, uint32_t _ssf) :
ProtocolVersion, const string& _managementId,
uint32_t _ssf,
const string& _authid,
bool _nodict,
const string& _username,
const string& _initialFrames) :
managementId(_managementId),
ssf(_ssf),
authid(_authid),
username(_username),
initialFrames(_initialFrames),
flags(0){
setNodict(_nodict);
flags |= (1 << 8);
flags |= (1 << 9);
flags |= (1 << 10);
flags |= (1 << 12);
flags |= (1 << 13);
}
ClusterConnectionAnnounceBody(ProtocolVersion=ProtocolVersion()) : ssf(0), flags(0) {}
QPID_COMMON_EXTERN void setManagementId(const string& _managementId);
QPID_COMMON_EXTERN const string& getManagementId() const;
QPID_COMMON_EXTERN bool hasManagementId() const;
QPID_COMMON_EXTERN void clearManagementIdFlag();
QPID_COMMON_EXTERN void setSsf(uint32_t _ssf);
QPID_COMMON_EXTERN uint32_t getSsf() const;
QPID_COMMON_EXTERN bool hasSsf() const;
QPID_COMMON_EXTERN void clearSsfFlag();
QPID_COMMON_EXTERN void setAuthid(const string& _authid);
QPID_COMMON_EXTERN const string& getAuthid() const;
QPID_COMMON_EXTERN bool hasAuthid() const;
QPID_COMMON_EXTERN void clearAuthidFlag();
QPID_COMMON_EXTERN void setNodict(bool _nodict);
QPID_COMMON_EXTERN bool getNodict() const;
QPID_COMMON_EXTERN void setUsername(const string& _username);
QPID_COMMON_EXTERN const string& getUsername() const;
QPID_COMMON_EXTERN bool hasUsername() const;
QPID_COMMON_EXTERN void clearUsernameFlag();
QPID_COMMON_EXTERN void setInitialFrames(const string& _initialFrames);
QPID_COMMON_EXTERN const string& getInitialFrames() const;
QPID_COMMON_EXTERN bool hasInitialFrames() const;
QPID_COMMON_EXTERN void clearInitialFramesFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.announce(getSsf());
return invocable.announce(getManagementId(), getSsf(), getAuthid(), getNodict(), getUsername(), getInitialFrames());
}
using AMQMethodBody::accept;

View file

@ -0,0 +1,85 @@
#ifndef QPID_FRAMING_CLUSTERCONNECTIONCONFIGBODY_H
#define QPID_FRAMING_CLUSTERCONNECTIONCONFIGBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterConnectionConfigBody : public ModelMethod {
string encoded;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x81;
static const MethodId METHOD_ID = 0x37;
ClusterConnectionConfigBody(
ProtocolVersion, const string& _encoded) :
encoded(_encoded),
flags(0){
flags |= (1 << 8);
}
ClusterConnectionConfigBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setEncoded(const string& _encoded);
QPID_COMMON_EXTERN const string& getEncoded() const;
QPID_COMMON_EXTERN bool hasEncoded() const;
QPID_COMMON_EXTERN void clearEncodedFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.config(getEncoded());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterConnectionConfigBody */
}}
#endif /*!QPID_FRAMING_CLUSTERCONNECTIONCONFIGBODY_H*/

View file

@ -0,0 +1,125 @@
#ifndef QPID_FRAMING_CLUSTERCONNECTIONMANAGEMENTSETUPSTATEBODY_H
#define QPID_FRAMING_CLUSTERCONNECTIONMANAGEMENTSETUPSTATEBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterConnectionManagementSetupStateBody : public ModelMethod {
uint64_t objectNum;
uint16_t bootSequence;
Uuid brokerId;
string vendor;
string product;
string instance;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x81;
static const MethodId METHOD_ID = 0x36;
ClusterConnectionManagementSetupStateBody(
ProtocolVersion, uint64_t _objectNum,
uint16_t _bootSequence,
const Uuid& _brokerId,
const string& _vendor,
const string& _product,
const string& _instance) :
objectNum(_objectNum),
bootSequence(_bootSequence),
brokerId(_brokerId),
vendor(_vendor),
product(_product),
instance(_instance),
flags(0){
flags |= (1 << 8);
flags |= (1 << 9);
flags |= (1 << 10);
flags |= (1 << 11);
flags |= (1 << 12);
flags |= (1 << 13);
}
ClusterConnectionManagementSetupStateBody(ProtocolVersion=ProtocolVersion()) : objectNum(0), bootSequence(0), flags(0) {}
QPID_COMMON_EXTERN void setObjectNum(uint64_t _objectNum);
QPID_COMMON_EXTERN uint64_t getObjectNum() const;
QPID_COMMON_EXTERN bool hasObjectNum() const;
QPID_COMMON_EXTERN void clearObjectNumFlag();
QPID_COMMON_EXTERN void setBootSequence(uint16_t _bootSequence);
QPID_COMMON_EXTERN uint16_t getBootSequence() const;
QPID_COMMON_EXTERN bool hasBootSequence() const;
QPID_COMMON_EXTERN void clearBootSequenceFlag();
QPID_COMMON_EXTERN void setBrokerId(const Uuid& _brokerId);
QPID_COMMON_EXTERN const Uuid& getBrokerId() const;
QPID_COMMON_EXTERN bool hasBrokerId() const;
QPID_COMMON_EXTERN void clearBrokerIdFlag();
QPID_COMMON_EXTERN void setVendor(const string& _vendor);
QPID_COMMON_EXTERN const string& getVendor() const;
QPID_COMMON_EXTERN bool hasVendor() const;
QPID_COMMON_EXTERN void clearVendorFlag();
QPID_COMMON_EXTERN void setProduct(const string& _product);
QPID_COMMON_EXTERN const string& getProduct() const;
QPID_COMMON_EXTERN bool hasProduct() const;
QPID_COMMON_EXTERN void clearProductFlag();
QPID_COMMON_EXTERN void setInstance(const string& _instance);
QPID_COMMON_EXTERN const string& getInstance() const;
QPID_COMMON_EXTERN bool hasInstance() const;
QPID_COMMON_EXTERN void clearInstanceFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.managementSetupState(getObjectNum(), getBootSequence(), getBrokerId(), getVendor(), getProduct(), getInstance());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterConnectionManagementSetupStateBody */
}}
#endif /*!QPID_FRAMING_CLUSTERCONNECTIONMANAGEMENTSETUPSTATEBODY_H*/

View file

@ -0,0 +1,85 @@
#ifndef QPID_FRAMING_CLUSTERCONNECTIONSHADOWPREPAREBODY_H
#define QPID_FRAMING_CLUSTERCONNECTIONSHADOWPREPAREBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterConnectionShadowPrepareBody : public ModelMethod {
string managementId;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x81;
static const MethodId METHOD_ID = 0x0F;
ClusterConnectionShadowPrepareBody(
ProtocolVersion, const string& _managementId) :
managementId(_managementId),
flags(0){
flags |= (1 << 8);
}
ClusterConnectionShadowPrepareBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setManagementId(const string& _managementId);
QPID_COMMON_EXTERN const string& getManagementId() const;
QPID_COMMON_EXTERN bool hasManagementId() const;
QPID_COMMON_EXTERN void clearManagementIdFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.shadowPrepare(getManagementId());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterConnectionShadowPrepareBody */
}}
#endif /*!QPID_FRAMING_CLUSTERCONNECTIONSHADOWPREPAREBODY_H*/

View file

@ -42,6 +42,7 @@ namespace framing {
class ClusterConnectionShadowReadyBody : public ModelMethod {
uint64_t memberId;
uint64_t connectionId;
string managementId;
string userName;
string fragment;
uint32_t sendMax;
@ -52,11 +53,13 @@ public:
ClusterConnectionShadowReadyBody(
ProtocolVersion, uint64_t _memberId,
uint64_t _connectionId,
const string& _managementId,
const string& _userName,
const string& _fragment,
uint32_t _sendMax) :
memberId(_memberId),
connectionId(_connectionId),
managementId(_managementId),
userName(_userName),
fragment(_fragment),
sendMax(_sendMax),
@ -66,6 +69,7 @@ public:
flags |= (1 << 10);
flags |= (1 << 11);
flags |= (1 << 12);
flags |= (1 << 13);
}
ClusterConnectionShadowReadyBody(ProtocolVersion=ProtocolVersion()) : memberId(0), connectionId(0), sendMax(0), flags(0) {}
@ -77,6 +81,10 @@ public:
QPID_COMMON_EXTERN uint64_t getConnectionId() const;
QPID_COMMON_EXTERN bool hasConnectionId() const;
QPID_COMMON_EXTERN void clearConnectionIdFlag();
QPID_COMMON_EXTERN void setManagementId(const string& _managementId);
QPID_COMMON_EXTERN const string& getManagementId() const;
QPID_COMMON_EXTERN bool hasManagementId() const;
QPID_COMMON_EXTERN void clearManagementIdFlag();
QPID_COMMON_EXTERN void setUserName(const string& _userName);
QPID_COMMON_EXTERN const string& getUserName() const;
QPID_COMMON_EXTERN bool hasUserName() const;
@ -92,7 +100,7 @@ public:
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.shadowReady(getMemberId(), getConnectionId(), getUserName(), getFragment(), getSendMax());
return invocable.shadowReady(getMemberId(), getConnectionId(), getManagementId(), getUserName(), getFragment(), getSendMax());
}
using AMQMethodBody::accept;

View file

@ -0,0 +1,85 @@
#ifndef QPID_FRAMING_CLUSTERCONNECTIONSHADOWSETUSERBODY_H
#define QPID_FRAMING_CLUSTERCONNECTIONSHADOWSETUSERBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterConnectionShadowSetUserBody : public ModelMethod {
string userId;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x81;
static const MethodId METHOD_ID = 0x0E;
ClusterConnectionShadowSetUserBody(
ProtocolVersion, const string& _userId) :
userId(_userId),
flags(0){
flags |= (1 << 8);
}
ClusterConnectionShadowSetUserBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setUserId(const string& _userId);
QPID_COMMON_EXTERN const string& getUserId() const;
QPID_COMMON_EXTERN bool hasUserId() const;
QPID_COMMON_EXTERN void clearUserIdFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.shadowSetUser(getUserId());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterConnectionShadowSetUserBody */
}}
#endif /*!QPID_FRAMING_CLUSTERCONNECTIONSHADOWSETUSERBODY_H*/

View file

@ -0,0 +1,93 @@
#ifndef QPID_FRAMING_CLUSTERDELIVERTOQUEUEBODY_H
#define QPID_FRAMING_CLUSTERDELIVERTOQUEUEBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterDeliverToQueueBody : public ModelMethod {
string queue;
string message;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x80;
static const MethodId METHOD_ID = 0x21;
ClusterDeliverToQueueBody(
ProtocolVersion, const string& _queue,
const string& _message) :
queue(_queue),
message(_message),
flags(0){
flags |= (1 << 8);
flags |= (1 << 9);
}
ClusterDeliverToQueueBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setQueue(const string& _queue);
QPID_COMMON_EXTERN const string& getQueue() const;
QPID_COMMON_EXTERN bool hasQueue() const;
QPID_COMMON_EXTERN void clearQueueFlag();
QPID_COMMON_EXTERN void setMessage(const string& _message);
QPID_COMMON_EXTERN const string& getMessage() const;
QPID_COMMON_EXTERN bool hasMessage() const;
QPID_COMMON_EXTERN void clearMessageFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.deliverToQueue(getQueue(), getMessage());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterDeliverToQueueBody */
}}
#endif /*!QPID_FRAMING_CLUSTERDELIVERTOQUEUEBODY_H*/

View file

@ -44,6 +44,7 @@ class ClusterInitialStatusBody : public ModelMethod {
Uuid clusterId;
uint8_t storeState;
Uuid shutdownId;
string firstConfig;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x80;
@ -53,17 +54,20 @@ public:
bool _active,
const Uuid& _clusterId,
uint8_t _storeState,
const Uuid& _shutdownId) :
const Uuid& _shutdownId,
const string& _firstConfig) :
version(_version),
clusterId(_clusterId),
storeState(_storeState),
shutdownId(_shutdownId),
firstConfig(_firstConfig),
flags(0){
setActive(_active);
flags |= (1 << 8);
flags |= (1 << 10);
flags |= (1 << 11);
flags |= (1 << 12);
flags |= (1 << 13);
}
ClusterInitialStatusBody(ProtocolVersion=ProtocolVersion()) : version(0), storeState(0), flags(0) {}
@ -85,10 +89,14 @@ public:
QPID_COMMON_EXTERN const Uuid& getShutdownId() const;
QPID_COMMON_EXTERN bool hasShutdownId() const;
QPID_COMMON_EXTERN void clearShutdownIdFlag();
QPID_COMMON_EXTERN void setFirstConfig(const string& _firstConfig);
QPID_COMMON_EXTERN const string& getFirstConfig() const;
QPID_COMMON_EXTERN bool hasFirstConfig() const;
QPID_COMMON_EXTERN void clearFirstConfigFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.initialStatus(getVersion(), getActive(), getClusterId(), getStoreState(), getShutdownId());
return invocable.initialStatus(getVersion(), getActive(), getClusterId(), getStoreState(), getShutdownId(), getFirstConfig());
}
using AMQMethodBody::accept;

View file

@ -0,0 +1,85 @@
#ifndef QPID_FRAMING_CLUSTERTIMERDROPBODY_H
#define QPID_FRAMING_CLUSTERTIMERDROPBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterTimerDropBody : public ModelMethod {
string name;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x80;
static const MethodId METHOD_ID = 0x16;
ClusterTimerDropBody(
ProtocolVersion, const string& _name) :
name(_name),
flags(0){
flags |= (1 << 8);
}
ClusterTimerDropBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setName(const string& _name);
QPID_COMMON_EXTERN const string& getName() const;
QPID_COMMON_EXTERN bool hasName() const;
QPID_COMMON_EXTERN void clearNameFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.timerDrop(getName());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterTimerDropBody */
}}
#endif /*!QPID_FRAMING_CLUSTERTIMERDROPBODY_H*/

View file

@ -0,0 +1,85 @@
#ifndef QPID_FRAMING_CLUSTERTIMERWAKEUPBODY_H
#define QPID_FRAMING_CLUSTERTIMERWAKEUPBODY_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
///
/// This file was automatically generated from the AMQP specification.
/// Do not edit.
///
#include "qpid/framing/AMQMethodBody.h"
#include "qpid/framing/AMQP_ServerOperations.h"
#include "qpid/framing/MethodBodyConstVisitor.h"
#include "qpid/framing/ModelMethod.h"
#include <ostream>
#include "qpid/framing/amqp_types_full.h"
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace framing {
class ClusterTimerWakeupBody : public ModelMethod {
string name;
uint16_t flags;
public:
static const ClassId CLASS_ID = 0x80;
static const MethodId METHOD_ID = 0x15;
ClusterTimerWakeupBody(
ProtocolVersion, const string& _name) :
name(_name),
flags(0){
flags |= (1 << 8);
}
ClusterTimerWakeupBody(ProtocolVersion=ProtocolVersion()) : flags(0) {}
QPID_COMMON_EXTERN void setName(const string& _name);
QPID_COMMON_EXTERN const string& getName() const;
QPID_COMMON_EXTERN bool hasName() const;
QPID_COMMON_EXTERN void clearNameFlag();
typedef void ResultType;
template <class T> ResultType invoke(T& invocable) const {
return invocable.timerWakeup(getName());
}
using AMQMethodBody::accept;
void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
boost::intrusive_ptr<AMQBody> clone() const { return BodyFactory::copy(*this); }
ClassId amqpClassId() const { return CLASS_ID; }
MethodId amqpMethodId() const { return METHOD_ID; }
bool isContentBearing() const { return false; }
bool resultExpected() const { return false; }
bool responseExpected() const { return false; }
QPID_COMMON_EXTERN void encode(Buffer&) const;
QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
QPID_COMMON_EXTERN uint32_t encodedSize() const;
QPID_COMMON_EXTERN uint32_t bodySize() const;
QPID_COMMON_EXTERN void print(std::ostream& out) const;
}; /* class ClusterTimerWakeupBody */
}}
#endif /*!QPID_FRAMING_CLUSTERTIMERWAKEUPBODY_H*/

View file

@ -51,6 +51,7 @@ class FieldTable
typedef boost::shared_ptr<FieldValue> ValuePtr;
typedef std::map<std::string, ValuePtr> ValueMap;
typedef ValueMap::iterator iterator;
typedef ValueMap::const_iterator const_iterator;
typedef ValueMap::const_reference const_reference;
typedef ValueMap::reference reference;
typedef ValueMap::value_type value_type;
@ -104,7 +105,7 @@ class FieldTable
ValueMap::iterator end() { return values.end(); }
ValueMap::iterator find(const std::string& s) { return values.find(s); }
std::pair <ValueMap::iterator, bool> insert(const ValueMap::value_type&);
QPID_COMMON_EXTERN std::pair <ValueMap::iterator, bool> insert(const ValueMap::value_type&);
QPID_COMMON_EXTERN ValueMap::iterator insert(ValueMap::iterator, const ValueMap::value_type&);
void clear() { values.clear(); }

View file

@ -83,7 +83,7 @@ class FieldValue {
FieldValue(): data(0) {};
// Default assignment operator is fine
void setType(uint8_t type);
QPID_COMMON_EXTERN uint8_t getType();
QPID_COMMON_EXTERN uint8_t getType() const;
Data& getData() { return *data; }
uint32_t encodedSize() const { return 1 + data->encodedSize(); };
bool empty() const { return data.get() == 0; }
@ -99,6 +99,7 @@ class FieldValue {
template <class T, int W> T getIntegerValue() const;
template <class T, int W> T getFloatingPointValue() const;
template <int W> void getFixedWidthValue(unsigned char*) const;
template <class T> bool get(T&) const;
protected:
@ -122,7 +123,7 @@ template <>
inline bool FieldValue::convertsTo<std::string>() const { return data->convertsToString(); }
template <>
inline int FieldValue::get<int>() const { return data->getInt(); }
inline int FieldValue::get<int>() const { return static_cast<int>(data->getInt()); }
template <>
inline int64_t FieldValue::get<int64_t>() const { return data->getInt(); }
@ -202,13 +203,23 @@ inline T FieldValue::getFloatingPointValue() const {
T value;
uint8_t* const octets = convertIfRequired(fwv->rawOctets(), W);
uint8_t* const target = reinterpret_cast<uint8_t*>(&value);
for (uint i = 0; i < W; ++i) target[i] = octets[i];
for (size_t i = 0; i < W; ++i) target[i] = octets[i];
return value;
} else {
throw InvalidConversionException();
}
}
template <int W> void FieldValue::getFixedWidthValue(unsigned char* value) const
{
FixedWidthValue<W>* const fwv = dynamic_cast< FixedWidthValue<W>* const>(data.get());
if (fwv) {
for (size_t i = 0; i < W; ++i) value[i] = fwv->rawOctets()[i];
} else {
throw InvalidConversionException();
}
}
template <>
inline float FieldValue::get<float>() const {
return getFloatingPointValue<float, 4>();
@ -324,6 +335,16 @@ class Str16Value : public FieldValue {
QPID_COMMON_EXTERN Str16Value(const std::string& v);
};
class Var16Value : public FieldValue {
public:
QPID_COMMON_EXTERN Var16Value(const std::string& v, uint8_t code);
};
class Var32Value : public FieldValue {
public:
QPID_COMMON_EXTERN Var32Value(const std::string& v, uint8_t code);
};
class Struct32Value : public FieldValue {
public:
QPID_COMMON_EXTERN Struct32Value(const std::string& v);
@ -417,6 +438,11 @@ class ListValue : public FieldValue {
QPID_COMMON_EXTERN ListValue(const List&);
};
class UuidValue : public FieldValue {
public:
QPID_COMMON_EXTERN UuidValue(const unsigned char*);
};
template <class T>
bool getEncodedValue(FieldTable::ValuePtr vptr, T& value)
{

View file

@ -123,11 +123,16 @@ class ClusterReadyBody;
class ClusterConfigChangeBody;
class ClusterMessageExpiredBody;
class ClusterErrorCheckBody;
class ClusterTimerWakeupBody;
class ClusterTimerDropBody;
class ClusterShutdownBody;
class ClusterDeliverToQueueBody;
class ClusterConnectionAnnounceBody;
class ClusterConnectionDeliverCloseBody;
class ClusterConnectionDeliverDoOutputBody;
class ClusterConnectionAbortBody;
class ClusterConnectionShadowSetUserBody;
class ClusterConnectionShadowPrepareBody;
class ClusterConnectionConsumerStateBody;
class ClusterConnectionDeliveryRecordBody;
class ClusterConnectionTxStartBody;
@ -147,6 +152,8 @@ class ClusterConnectionExchangeBody;
class ClusterConnectionQueueBody;
class ClusterConnectionExpiryIdBody;
class ClusterConnectionAddQueueListenerBody;
class ClusterConnectionManagementSetupStateBody;
class ClusterConnectionConfigBody;
class MethodBodyConstVisitor
{
public:
@ -243,11 +250,16 @@ class MethodBodyConstVisitor
virtual void visit(const ClusterConfigChangeBody&) = 0;
virtual void visit(const ClusterMessageExpiredBody&) = 0;
virtual void visit(const ClusterErrorCheckBody&) = 0;
virtual void visit(const ClusterTimerWakeupBody&) = 0;
virtual void visit(const ClusterTimerDropBody&) = 0;
virtual void visit(const ClusterShutdownBody&) = 0;
virtual void visit(const ClusterDeliverToQueueBody&) = 0;
virtual void visit(const ClusterConnectionAnnounceBody&) = 0;
virtual void visit(const ClusterConnectionDeliverCloseBody&) = 0;
virtual void visit(const ClusterConnectionDeliverDoOutputBody&) = 0;
virtual void visit(const ClusterConnectionAbortBody&) = 0;
virtual void visit(const ClusterConnectionShadowSetUserBody&) = 0;
virtual void visit(const ClusterConnectionShadowPrepareBody&) = 0;
virtual void visit(const ClusterConnectionConsumerStateBody&) = 0;
virtual void visit(const ClusterConnectionDeliveryRecordBody&) = 0;
virtual void visit(const ClusterConnectionTxStartBody&) = 0;
@ -267,6 +279,8 @@ class MethodBodyConstVisitor
virtual void visit(const ClusterConnectionQueueBody&) = 0;
virtual void visit(const ClusterConnectionExpiryIdBody&) = 0;
virtual void visit(const ClusterConnectionAddQueueListenerBody&) = 0;
virtual void visit(const ClusterConnectionManagementSetupStateBody&) = 0;
virtual void visit(const ClusterConnectionConfigBody&) = 0;
};
}} // namespace qpid::framing

View file

@ -131,11 +131,16 @@ class MethodBodyDefaultVisitor:
QPID_COMMON_EXTERN virtual void visit(const ClusterConfigChangeBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterMessageExpiredBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterErrorCheckBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterTimerWakeupBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterTimerDropBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterShutdownBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterDeliverToQueueBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionAnnounceBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionDeliverCloseBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionDeliverDoOutputBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionAbortBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionShadowSetUserBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionShadowPrepareBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionConsumerStateBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionDeliveryRecordBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionTxStartBody&);
@ -155,6 +160,8 @@ class MethodBodyDefaultVisitor:
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionQueueBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionExpiryIdBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionAddQueueListenerBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionManagementSetupStateBody&);
QPID_COMMON_EXTERN virtual void visit(const ClusterConnectionConfigBody&);
};
}} // namespace qpid::framing

View file

@ -61,7 +61,7 @@ struct Uuid : public boost::array<uint8_t, 16> {
void clear();
/** Test for null (all zeros). */
bool isNull() const;
QPID_COMMON_EXTERN bool isNull() const;
operator bool() const { return !isNull(); }
bool operator!() const { return isNull(); }

View file

@ -119,11 +119,16 @@
#include "qpid/framing/ClusterConfigChangeBody.h"
#include "qpid/framing/ClusterMessageExpiredBody.h"
#include "qpid/framing/ClusterErrorCheckBody.h"
#include "qpid/framing/ClusterTimerWakeupBody.h"
#include "qpid/framing/ClusterTimerDropBody.h"
#include "qpid/framing/ClusterShutdownBody.h"
#include "qpid/framing/ClusterDeliverToQueueBody.h"
#include "qpid/framing/ClusterConnectionAnnounceBody.h"
#include "qpid/framing/ClusterConnectionDeliverCloseBody.h"
#include "qpid/framing/ClusterConnectionDeliverDoOutputBody.h"
#include "qpid/framing/ClusterConnectionAbortBody.h"
#include "qpid/framing/ClusterConnectionShadowSetUserBody.h"
#include "qpid/framing/ClusterConnectionShadowPrepareBody.h"
#include "qpid/framing/ClusterConnectionConsumerStateBody.h"
#include "qpid/framing/ClusterConnectionDeliveryRecordBody.h"
#include "qpid/framing/ClusterConnectionTxStartBody.h"
@ -143,4 +148,6 @@
#include "qpid/framing/ClusterConnectionQueueBody.h"
#include "qpid/framing/ClusterConnectionExpiryIdBody.h"
#include "qpid/framing/ClusterConnectionAddQueueListenerBody.h"
#include "qpid/framing/ClusterConnectionManagementSetupStateBody.h"
#include "qpid/framing/ClusterConnectionConfigBody.h"
#endif /*!QPID_FRAMING_ALL_METHOD_BODIES_H*/

View file

@ -136,12 +136,17 @@ enum AmqpConstant {
CLUSTER_CONFIG_CHANGE_METHOD_ID=0x11,
CLUSTER_MESSAGE_EXPIRED_METHOD_ID=0x12,
CLUSTER_ERROR_CHECK_METHOD_ID=0x14,
CLUSTER_TIMER_WAKEUP_METHOD_ID=0x15,
CLUSTER_TIMER_DROP_METHOD_ID=0x16,
CLUSTER_SHUTDOWN_METHOD_ID=0x20,
CLUSTER_DELIVER_TO_QUEUE_METHOD_ID=0x21,
CLUSTER_CONNECTION_CLASS_ID=0x81,
CLUSTER_CONNECTION_ANNOUNCE_METHOD_ID=0x1,
CLUSTER_CONNECTION_DELIVER_CLOSE_METHOD_ID=0x2,
CLUSTER_CONNECTION_DELIVER_DO_OUTPUT_METHOD_ID=0x3,
CLUSTER_CONNECTION_ABORT_METHOD_ID=0x4,
CLUSTER_CONNECTION_SHADOW_SET_USER_METHOD_ID=0x0E,
CLUSTER_CONNECTION_SHADOW_PREPARE_METHOD_ID=0x0F,
CLUSTER_CONNECTION_CONSUMER_STATE_METHOD_ID=0x10,
CLUSTER_CONNECTION_DELIVERY_RECORD_METHOD_ID=0x11,
CLUSTER_CONNECTION_TX_START_METHOD_ID=0x12,
@ -160,7 +165,9 @@ enum AmqpConstant {
CLUSTER_CONNECTION_EXCHANGE_METHOD_ID=0x31,
CLUSTER_CONNECTION_QUEUE_METHOD_ID=0x32,
CLUSTER_CONNECTION_EXPIRY_ID_METHOD_ID=0x33,
CLUSTER_CONNECTION_ADD_QUEUE_LISTENER_METHOD_ID=0x34
CLUSTER_CONNECTION_ADD_QUEUE_LISTENER_METHOD_ID=0x34,
CLUSTER_CONNECTION_MANAGEMENT_SETUP_STATE_METHOD_ID=0x36,
CLUSTER_CONNECTION_CONFIG_METHOD_ID=0x37
};
}} // namespace qpid::framing

View file

@ -123,11 +123,16 @@
(ClusterConfigChangeBody) \
(ClusterMessageExpiredBody) \
(ClusterErrorCheckBody) \
(ClusterTimerWakeupBody) \
(ClusterTimerDropBody) \
(ClusterShutdownBody) \
(ClusterDeliverToQueueBody) \
(ClusterConnectionAnnounceBody) \
(ClusterConnectionDeliverCloseBody) \
(ClusterConnectionDeliverDoOutputBody) \
(ClusterConnectionAbortBody) \
(ClusterConnectionShadowSetUserBody) \
(ClusterConnectionShadowPrepareBody) \
(ClusterConnectionConsumerStateBody) \
(ClusterConnectionDeliveryRecordBody) \
(ClusterConnectionTxStartBody) \
@ -146,7 +151,9 @@
(ClusterConnectionExchangeBody) \
(ClusterConnectionQueueBody) \
(ClusterConnectionExpiryIdBody) \
(ClusterConnectionAddQueueListenerBody)
(ClusterConnectionAddQueueListenerBody) \
(ClusterConnectionManagementSetupStateBody) \
(ClusterConnectionConfigBody)
#define OTHER_BODIES() (AMQContentBody)(AMQHeaderBody)(AMQHeartbeatBody))

View file

@ -95,6 +95,24 @@ struct Statement {
stmt_.log(::qpid::Msg() << MESSAGE); \
} while(0)
/**
* FLAG must be a boolean variable. Assigns FLAG to true iff logging
* is enabled for LEVEL in the calling context. Use when extra
* support code is needed to generate log messages, to ensure that it
* is only run if the logging level is enabled.
* e.g.
* bool logWarning;
* QPID_LOG_TEST(LEVEL, logWarning);
* if (logWarning) { do stuff needed for warning log messages }
*/
#define QPID_LOG_TEST(LEVEL, FLAG) \
do { \
using ::qpid::log::Statement; \
static Statement stmt_= QPID_LOG_STATEMENT_INIT(LEVEL); \
static Statement::Initializer init_(stmt_); \
FLAG = stmt_.enabled; \
} while(0)
/**
* Macro for log statements. Example of use:
* @code

View file

@ -0,0 +1,106 @@
#ifndef _Management_Buffer_
#define _Management_Buffer_
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/CommonImportExport.h"
#include "qpid/types/Exception.h"
#include "qpid/types/Variant.h"
#include <string>
namespace qpid {
namespace framing {
class Buffer;
}
namespace management {
struct OutOfBounds : qpid::types::Exception {
OutOfBounds() : qpid::types::Exception(std::string("Out of Bounds")) {}
};
/**
* This class is a wrapper around qpid::framing::Buffer that does not include any dependencies
* from boost or from qpid::framing.
*/
class Buffer
{
public:
QPID_COMMON_EXTERN Buffer(char* data=0, uint32_t size=0);
QPID_COMMON_EXTERN ~Buffer();
QPID_COMMON_EXTERN void record();
QPID_COMMON_EXTERN void restore(bool reRecord = false);
QPID_COMMON_EXTERN void reset();
QPID_COMMON_EXTERN uint32_t available();
QPID_COMMON_EXTERN uint32_t getSize();
QPID_COMMON_EXTERN uint32_t getPosition();
QPID_COMMON_EXTERN char* getPointer();
QPID_COMMON_EXTERN void putOctet(uint8_t i);
QPID_COMMON_EXTERN void putShort(uint16_t i);
QPID_COMMON_EXTERN void putLong(uint32_t i);
QPID_COMMON_EXTERN void putLongLong(uint64_t i);
QPID_COMMON_EXTERN void putInt8(int8_t i);
QPID_COMMON_EXTERN void putInt16(int16_t i);
QPID_COMMON_EXTERN void putInt32(int32_t i);
QPID_COMMON_EXTERN void putInt64(int64_t i);
QPID_COMMON_EXTERN void putFloat(float f);
QPID_COMMON_EXTERN void putDouble(double f);
QPID_COMMON_EXTERN void putBin128(const uint8_t* b);
QPID_COMMON_EXTERN uint8_t getOctet();
QPID_COMMON_EXTERN uint16_t getShort();
QPID_COMMON_EXTERN uint32_t getLong();
QPID_COMMON_EXTERN uint64_t getLongLong();
QPID_COMMON_EXTERN int8_t getInt8();
QPID_COMMON_EXTERN int16_t getInt16();
QPID_COMMON_EXTERN int32_t getInt32();
QPID_COMMON_EXTERN int64_t getInt64();
QPID_COMMON_EXTERN float getFloat();
QPID_COMMON_EXTERN double getDouble();
QPID_COMMON_EXTERN void putShortString(const std::string& s);
QPID_COMMON_EXTERN void putMediumString(const std::string& s);
QPID_COMMON_EXTERN void putLongString(const std::string& s);
QPID_COMMON_EXTERN void getShortString(std::string& s);
QPID_COMMON_EXTERN void getMediumString(std::string& s);
QPID_COMMON_EXTERN void getLongString(std::string& s);
QPID_COMMON_EXTERN void getBin128(uint8_t* b);
QPID_COMMON_EXTERN void putMap(const types::Variant::Map& map);
QPID_COMMON_EXTERN void putList(const types::Variant::List& list);
QPID_COMMON_EXTERN void getMap(types::Variant::Map& map);
QPID_COMMON_EXTERN void getList(types::Variant::List& list);
QPID_COMMON_EXTERN void putRawData(const std::string& s);
QPID_COMMON_EXTERN void getRawData(std::string& s, uint32_t size);
QPID_COMMON_EXTERN void putRawData(const uint8_t* data, size_t size);
QPID_COMMON_EXTERN void getRawData(uint8_t* data, size_t size);
private:
framing::Buffer* impl;
};
}} // namespace qpid::management
#endif

View file

@ -0,0 +1,118 @@
#ifndef _management_ConnectionSettings_h
#define _management_ConnectionSettings_h
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/CommonImportExport.h"
#include "qpid/types/Variant.h"
#include <string>
namespace qpid {
namespace management {
/**
* Settings for a Connection.
*/
struct ConnectionSettings {
QPID_COMMON_EXTERN ConnectionSettings();
QPID_COMMON_EXTERN virtual ~ConnectionSettings();
/**
* The protocol used for the connection (defaults to 'tcp')
*/
std::string protocol;
/**
* The host (or ip address) to connect to (defaults to 'localhost').
*/
std::string host;
/**
* The port to connect to (defaults to 5672).
*/
uint16_t port;
/**
* Allows an AMQP 'virtual host' to be specified for the
* connection.
*/
std::string virtualhost;
/**
* The username to use when authenticating the connection. If not
* specified the current users login is used if available.
*/
std::string username;
/**
* The password to use when authenticating the connection.
*/
std::string password;
/**
* The SASL mechanism to use when authenticating the connection;
* the options are currently PLAIN or ANONYMOUS.
*/
std::string mechanism;
/**
* Allows a locale to be specified for the connection.
*/
std::string locale;
/**
* Allows a heartbeat frequency to be specified
*/
uint16_t heartbeat;
/**
* The maximum number of channels that the client will request for
* use on this connection.
*/
uint16_t maxChannels;
/**
* The maximum frame size that the client will request for this
* connection.
*/
uint16_t maxFrameSize;
/**
* Limit the size of the connections send buffer . The buffer
* is limited to bounds * maxFrameSize.
*/
unsigned int bounds;
/**
* If true, TCP_NODELAY will be set for the connection.
*/
bool tcpNoDelay;
/**
* SASL service name
*/
std::string service;
/**
* Minimum acceptable strength of any SASL negotiated security
* layer. 0 means no security layer required.
*/
unsigned int minSsf;
/**
* Maximum acceptable strength of any SASL negotiated security
* layer. 0 means no security layer allowed.
*/
unsigned int maxSsf;
};
}}
#endif

View file

@ -63,6 +63,11 @@ class QPID_COMMON_EXTERN Manageable
// method being called and must be down-cast to the appropriate sub class
// before use.
virtual status_t ManagementMethod(uint32_t methodId, Args& args, std::string& text);
// This optional method can be overridden to allow the agent application to
// authorize method invocations. Return true iff the authenticated user identified
// in userId us authorized to execute the method.
virtual bool AuthorizeMethod(uint32_t methodId, Args& args, const std::string& userId);
};
inline Manageable::~Manageable(void) {}

View file

@ -23,7 +23,7 @@
*/
#include "qpid/management/ManagementObject.h"
#include <qpid/framing/Buffer.h>
#include "qpid/types/Variant.h"
#include <string>
namespace qpid {
@ -32,16 +32,20 @@ namespace management {
class ManagementAgent;
class ManagementEvent : public ManagementItem {
public:
typedef void (*writeSchemaCall_t)(qpid::framing::Buffer&);
public:
static const uint8_t MD5_LEN = 16;
//typedef void (*writeSchemaCall_t)(qpid::framing::Buffer&);
typedef void (*writeSchemaCall_t)(std::string&);
virtual ~ManagementEvent() {}
virtual writeSchemaCall_t getWriteSchemaCall(void) = 0;
//virtual mapEncodeSchemaCall_t getMapEncodeSchemaCall(void) = 0;
virtual std::string& getEventName() const = 0;
virtual std::string& getPackageName() const = 0;
virtual uint8_t* getMd5Sum() const = 0;
virtual uint8_t getSeverity() const = 0;
virtual void encode(qpid::framing::Buffer&) const = 0;
virtual void encode(std::string&) const = 0;
virtual void mapEncode(qpid::types::Variant::Map&) const = 0;
};
}}

View file

@ -21,18 +21,20 @@
* under the License.
*
*/
#include "qpid/sys/Time.h"
#include "qpid/sys/Mutex.h"
#include <qpid/framing/Buffer.h>
#include "qpid/CommonImportExport.h"
#include "qpid/management/Mutex.h"
#include "qpid/types/Variant.h"
#include <map>
#include <vector>
namespace qpid {
namespace management {
class Manageable;
class ObjectId;
class ManagementObject;
class AgentAttachment {
@ -51,18 +53,38 @@ protected:
const AgentAttachment* agent;
uint64_t first;
uint64_t second;
uint64_t agentEpoch;
std::string v2Key;
std::string agentName;
void fromString(const std::string&);
public:
QPID_COMMON_EXTERN ObjectId() : agent(0), first(0), second(0) {}
QPID_COMMON_EXTERN ObjectId(framing::Buffer& buf) : agent(0) { decode(buf); }
QPID_COMMON_EXTERN ObjectId(uint8_t flags, uint16_t seq, uint32_t broker, uint32_t bank, uint64_t object);
QPID_COMMON_EXTERN ObjectId(AgentAttachment* _agent, uint8_t flags, uint16_t seq, uint64_t object);
QPID_COMMON_EXTERN ObjectId() : agent(0), first(0), second(0), agentEpoch(0) {}
QPID_COMMON_EXTERN ObjectId(const types::Variant& map) :
agent(0), first(0), second(0), agentEpoch(0) { mapDecode(map.asMap()); }
QPID_COMMON_EXTERN ObjectId(uint8_t flags, uint16_t seq, uint32_t broker);
QPID_COMMON_EXTERN ObjectId(AgentAttachment* _agent, uint8_t flags, uint16_t seq);
QPID_COMMON_EXTERN ObjectId(std::istream&);
QPID_COMMON_EXTERN ObjectId(const std::string&);
QPID_COMMON_EXTERN ObjectId(const std::string& agentAddress, const std::string& key,
uint64_t epoch=0) : agent(0), first(0), second(0),
agentEpoch(epoch), v2Key(key), agentName(agentAddress) {}
// Deprecated:
QPID_COMMON_EXTERN ObjectId(uint8_t flags, uint16_t seq, uint32_t broker, uint64_t object);
QPID_COMMON_EXTERN bool operator==(const ObjectId &other) const;
QPID_COMMON_EXTERN bool operator<(const ObjectId &other) const;
QPID_COMMON_EXTERN void encode(framing::Buffer& buffer);
QPID_COMMON_EXTERN void decode(framing::Buffer& buffer);
QPID_COMMON_EXTERN void mapEncode(types::Variant::Map& map) const;
QPID_COMMON_EXTERN void mapDecode(const types::Variant::Map& map);
QPID_COMMON_EXTERN operator types::Variant::Map() const;
QPID_COMMON_EXTERN uint32_t encodedSize() const { return 16; };
QPID_COMMON_EXTERN void encode(std::string& buffer) const;
QPID_COMMON_EXTERN void decode(const std::string& buffer);
QPID_COMMON_EXTERN bool equalV1(const ObjectId &other) const;
QPID_COMMON_EXTERN void setV2Key(const std::string& _key) { v2Key = _key; }
QPID_COMMON_EXTERN void setV2Key(const ManagementObject& object);
QPID_COMMON_EXTERN void setAgentName(const std::string& _name) { agentName = _name; }
QPID_COMMON_EXTERN const std::string& getAgentName() const { return agentName; }
QPID_COMMON_EXTERN const std::string& getV2Key() const { return v2Key; }
friend QPID_COMMON_EXTERN std::ostream& operator<<(std::ostream&, const ObjectId&);
};
@ -86,6 +108,7 @@ public:
static const uint8_t TYPE_S16 = 17;
static const uint8_t TYPE_S32 = 18;
static const uint8_t TYPE_S64 = 19;
static const uint8_t TYPE_LIST = 21;
static const uint8_t ACCESS_RC = 1;
static const uint8_t ACCESS_RW = 2;
@ -116,37 +139,56 @@ protected:
uint64_t destroyTime;
uint64_t updateTime;
ObjectId objectId;
bool configChanged;
bool instChanged;
mutable bool configChanged;
mutable bool instChanged;
bool deleted;
Manageable* coreObject;
sys::Mutex accessLock;
mutable Mutex accessLock;
uint32_t flags;
static int nextThreadIndex;
bool forcePublish;
QPID_COMMON_EXTERN int getThreadIndex();
QPID_COMMON_EXTERN void writeTimestamps(qpid::framing::Buffer& buf);
QPID_COMMON_EXTERN void writeTimestamps(std::string& buf) const;
QPID_COMMON_EXTERN void readTimestamps(const std::string& buf);
QPID_COMMON_EXTERN uint32_t writeTimestampsSize() const;
public:
QPID_COMMON_EXTERN static const uint8_t MD5_LEN = 16;
QPID_COMMON_EXTERN static int maxThreads;
typedef void (*writeSchemaCall_t) (qpid::framing::Buffer&);
//typedef void (*writeSchemaCall_t) (qpid::framing::Buffer&);
typedef void (*writeSchemaCall_t) (std::string&);
ManagementObject(Manageable* _core) :
createTime(uint64_t(qpid::sys::Duration(qpid::sys::now()))),
destroyTime(0), updateTime(createTime), configChanged(true),
instChanged(true), deleted(false),
coreObject(_core), forcePublish(false) {}
QPID_COMMON_EXTERN ManagementObject(Manageable* _core);
virtual ~ManagementObject() {}
virtual writeSchemaCall_t getWriteSchemaCall() = 0;
virtual void writeProperties(qpid::framing::Buffer& buf) = 0;
virtual void writeStatistics(qpid::framing::Buffer& buf,
bool skipHeaders = false) = 0;
virtual std::string getKey() const = 0;
// Encode & Decode the property and statistics values
// for this object.
virtual void mapEncodeValues(types::Variant::Map& map,
bool includeProperties,
bool includeStatistics) = 0;
virtual void mapDecodeValues(const types::Variant::Map& map) = 0;
virtual void doMethod(std::string& methodName,
qpid::framing::Buffer& inBuf,
qpid::framing::Buffer& outBuf) = 0;
const types::Variant::Map& inMap,
types::Variant::Map& outMap,
const std::string& userId) = 0;
QPID_COMMON_EXTERN void writeTimestamps(types::Variant::Map& map) const;
QPID_COMMON_EXTERN void readTimestamps(const types::Variant::Map& buf);
/**
* The following five methods are not pure-virtual because they will only
* be overridden in cases where QMFv1 is to be supported.
*/
virtual uint32_t writePropertiesSize() const { return 0; }
virtual void readProperties(const std::string&) {}
virtual void writeProperties(std::string&) const {}
virtual void writeStatistics(std::string&, bool = false) {}
virtual void doMethod(std::string&, const std::string&, std::string&, const std::string&) {}
QPID_COMMON_EXTERN virtual void setReference(ObjectId objectId);
virtual std::string& getClassName() const = 0;
@ -160,25 +202,33 @@ protected:
virtual bool hasInst() { return true; }
inline void setForcePublish(bool f) { forcePublish = f; }
inline bool getForcePublish() { return forcePublish; }
inline void setUpdateTime() { updateTime = (uint64_t(sys::Duration(sys::now()))); }
inline void resourceDestroy() {
destroyTime = uint64_t (qpid::sys::Duration(qpid::sys::now()));
deleted = true;
}
QPID_COMMON_EXTERN void setUpdateTime();
QPID_COMMON_EXTERN void resourceDestroy();
inline bool isDeleted() { return deleted; }
inline void setFlags(uint32_t f) { flags = f; }
inline uint32_t getFlags() { return flags; }
bool isSameClass(ManagementObject& other) {
for (int idx = 0; idx < 16; idx++)
for (int idx = 0; idx < MD5_LEN; idx++)
if (other.getMd5Sum()[idx] != getMd5Sum()[idx])
return false;
return other.getClassName() == getClassName() &&
other.getPackageName() == getPackageName();
}
// QPID_COMMON_EXTERN void encode(qpid::framing::Buffer& buf) const { writeProperties(buf); }
// QPID_COMMON_EXTERN void decode(qpid::framing::Buffer& buf) { readProperties(buf); }
//QPID_COMMON_EXTERN uint32_t encodedSize() const { return writePropertiesSize(); }
// Encode/Decode the entire object as a map
//QPID_COMMON_EXTERN void mapEncode(types::Variant::Map& map,
//bool includeProperties=true,
//bool includeStatistics=true);
//QPID_COMMON_EXTERN void mapDecode(const types::Variant::Map& map);
};
typedef std::map<ObjectId, ManagementObject*> ManagementObjectMap;
typedef std::vector<ManagementObject*> ManagementObjectVector;
}}

View file

@ -0,0 +1,67 @@
#ifndef _management_Mutex_h
#define _management_Mutex_h
/*
*
* Copyright (c) 2008 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#include "qpid/CommonImportExport.h"
namespace qpid {
namespace sys {
class Mutex;
}
namespace management {
/**
* Scoped lock template: calls lock() in ctor, unlock() in dtor.
* L can be any class with lock() and unlock() functions.
*/
template <class L> class ScopedLockTemplate {
public:
ScopedLockTemplate(L& l) : mutex(l) { mutex.lock(); }
~ScopedLockTemplate() { mutex.unlock(); }
private:
L& mutex;
};
template <class L> class ScopedUnlockTemplate {
public:
ScopedUnlockTemplate(L& l) : mutex(l) { mutex.unlock(); }
~ScopedUnlockTemplate() { mutex.lock(); }
private:
L& mutex;
};
class Mutex {
public:
typedef ScopedLockTemplate<Mutex> ScopedLock;
typedef ScopedUnlockTemplate<Mutex> ScopedUnlock;
QPID_COMMON_EXTERN Mutex();
QPID_COMMON_EXTERN ~Mutex();
QPID_COMMON_EXTERN void lock();
QPID_COMMON_EXTERN void unlock();
private:
sys::Mutex* impl;
};
}
}
#endif

View file

@ -21,28 +21,20 @@
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/exceptions.h"
#include "qpid/types/Variant.h"
#include <string>
#include "qpid/Exception.h"
#include "qpid/messaging/Variant.h"
#include "qpid/client/ClientImportExport.h"
#include <ostream>
namespace qpid {
namespace messaging {
struct InvalidAddress : public qpid::Exception
{
InvalidAddress(const std::string& msg);
};
struct MalformedAddress : public qpid::Exception
{
MalformedAddress(const std::string& msg);
};
class AddressImpl;
/**
/** \ingroup messaging
* Represents an address to which messages can be sent and from which
* messages can be received. Often a simple name is sufficient for
* this, however this can be augmented with a subject pattern and
@ -65,111 +57,105 @@ class AddressImpl;
*
* <table border=0>
*
* <tr valign=top><td>create</td><td>Indicate whether the address should be
* automatically created or not. Can be one of <i>always</i>,
* <i>never</i>, <i>sender</i> or <i>receiver</i>. The properties of
* the node to be created can be specified via the node-properties
* option (see below).</td></tr>
* <tr valign=top>
* <td>create</td>
* <td>Indicate whether the address should be automatically created
* or not. Can be one of <i>always</i>, <i>never</i>,
* <i>sender</i> or <i>receiver</i>. The properties of the node
* to be created can be specified via the node options (see
* below).
* </td>
* </tr>
*
* <tr valign=top><td>assert</td><td>Indicate whether or not to assert any specified
* node-properties match the address. Can be one of <i>always</i>,
* <i>never</i>, <i>sender</i> or <i>receiver</i>.</td></tr>
* <tr valign=top>
* <td>assert</td>
* <td>Indicate whether or not to assert any specified node
* properties(see below) match the address. Can be one of
* <i>always</i>, <i>never</i>, <i>sender</i> or
* <i>receiver</i>.
* </td>
* </tr>
*
* <tr valign=top><td>delete</td><td>Indicate whether or not to delete the addressed
* nide when a sender or receiver is cancelled. Can be one of <i>always</i>,
* <i>never</i>, <i>sender</i> or <i>receiver</i>.</td></tr>
* <tr valign=top>
* <td>delete</td>
* <td>Indicate whether or not to delete the addressed node when a
* sender or receiver is cancelled. Can be one of <i>always</i>,
* <i>never</i>, <i>sender</i> or <i>receiver</i>.
* </td>
* </tr>
*
* <tr valign=top><td>node-properties</td><td>A nested map of properties of the addressed
* entity or 'node'. These can be used when automatically creating it,
* or to assert certain properties.
* <tr valign=top>
* <td>node</td>
* <td>A nested map describing properties of the addressed
* node. Current properties supported are type (topic or queue),
* durable (boolean), x-declare and x-bindings. The x-declare
* option is a nested map in whcih protocol amqp 0-10 specific
* options for queue or exchange declare can be specified. The
* x-bindings option is a nested list, each element of which can
* specify a queue, an exchange, a binding-key and arguments,
* which are used to establish a binding on create. The node
* will be used if queue or exchange values are not specified.
* </td>
* </tr>
*
* <tr valign=top>
* <td>link</td>
* <td>A nested map through which properties of the 'link' from
* sender/receiver to node can be configured. Current propeties
* are name, durable, realiability, x-declare, x-subscribe and
* x-bindings.
* </td>
* </tr>
*
* The valid node-properties are:
* <ul>
* <li>type - queue or topic</li>
*
* <li>durable - true or false</li>
*
* <li>x-properties - a nested map that can contain implementation or
* protocol specifiec extedned properties. For the amqp 0-10 mapping,
* the fields in queue- or exchange- declare can be specified in here;
* anything that is not recognised as one of those will be passed
* through in the arguments field.,/li>
* </ul>
* </td></tr>
*
* </table>
*
* For receivers there are some further options of interest:
* For receivers there is one other option of interest:
*
* <table border=0 valign=top>
*
* <tr valign=top><td>no-local</td><td>(only relevant for topics at present) specifies that the
* receiver does not want to receiver messages published to the topic
* that originate from a sender on the same connection</td></tr>
*
* <tr valign=top><td>browse</td><td>(only relevant for queues) specifies that the receiver
* does not wish to consume the messages, but merely browse them</td></tr>
*
* <tr valign=top><td>durable</td><td>(only relevant for topics at present) specifies that a
* durable subscription is required</td></tr>
*
* <tr valign=top><td>reliability</td><td>indicates the level of reliability that the receiver
* expects. Can be one of unreliable, at-most-once, at-least-once or
* exactly-once (the latter is not yet correctly supported).</td></tr>
*
* <tr valign=top><td>filter</td><td>(only relevant for topics at present) allows bindings to
* be created for the queue that match the given criteris (or list of
* criteria).</td></tr>
*
* <tr valign=top><td>x-properties</td><td>allows protocol or implementation specific options
* to be specified for a receiver; this is a nested map and currently
* the implementation only recognises two specific nested properties
* within it (all others are passed through in the arguments of the
* message-subscribe command):
*
* <ul>
* <li>exclusive, which requests an exclusive subscription and
* is only relevant for queues</li>
*
* <li>x-queue-arguments, which ais only relevant for topics and
* allows arguments to the queue-declare for the subscription
* queue to be specified</li>
* </ul>
* </td></tr>
* <tr valign=top><td>mode</td><td>(only relevant for queues)
* indicates whether the subscribe should consume (the default) or
* merely browse the messages. Valid values are 'consume' and
* 'browse'</td></tr>
* </table>
*
* An address has value semantics.
*/
class Address
{
public:
QPID_CLIENT_EXTERN Address();
QPID_CLIENT_EXTERN Address(const std::string& address);
QPID_CLIENT_EXTERN Address(const std::string& name, const std::string& subject,
const Variant::Map& options, const std::string& type = "");
QPID_CLIENT_EXTERN Address(const Address& address);
QPID_CLIENT_EXTERN ~Address();
QPID_CLIENT_EXTERN Address& operator=(const Address&);
QPID_CLIENT_EXTERN const std::string& getName() const;
QPID_CLIENT_EXTERN void setName(const std::string&);
QPID_CLIENT_EXTERN const std::string& getSubject() const;
QPID_CLIENT_EXTERN void setSubject(const std::string&);
QPID_CLIENT_EXTERN bool hasSubject() const;
QPID_CLIENT_EXTERN const Variant::Map& getOptions() const;
QPID_CLIENT_EXTERN Variant::Map& getOptions();
QPID_CLIENT_EXTERN void setOptions(const Variant::Map&);
QPID_MESSAGING_EXTERN Address();
QPID_MESSAGING_EXTERN Address(const std::string& address);
QPID_MESSAGING_EXTERN Address(const std::string& name, const std::string& subject,
const qpid::types::Variant::Map& options, const std::string& type = "");
QPID_MESSAGING_EXTERN Address(const Address& address);
QPID_MESSAGING_EXTERN ~Address();
QPID_MESSAGING_EXTERN Address& operator=(const Address&);
QPID_MESSAGING_EXTERN const std::string& getName() const;
QPID_MESSAGING_EXTERN void setName(const std::string&);
QPID_MESSAGING_EXTERN const std::string& getSubject() const;
QPID_MESSAGING_EXTERN void setSubject(const std::string&);
QPID_MESSAGING_EXTERN const qpid::types::Variant::Map& getOptions() const;
QPID_MESSAGING_EXTERN qpid::types::Variant::Map& getOptions();
QPID_MESSAGING_EXTERN void setOptions(const qpid::types::Variant::Map&);
QPID_CLIENT_EXTERN std::string getType() const;
QPID_CLIENT_EXTERN void setType(const std::string&);
QPID_MESSAGING_EXTERN std::string getType() const;
/**
* The type of and addressed node influences how receivers and
* senders are constructed for it. It also affects how a reply-to
* address is encoded. If the type is not specified in the address
* itself, it will be automatically determined by querying the
* broker. The type can be explicitly set to prevent this if
* needed.
*/
QPID_MESSAGING_EXTERN void setType(const std::string&);
QPID_CLIENT_EXTERN const Variant& getOption(const std::string& key) const;
QPID_CLIENT_EXTERN std::string toStr() const;
QPID_CLIENT_EXTERN operator bool() const;
QPID_CLIENT_EXTERN bool operator !() const;
QPID_MESSAGING_EXTERN std::string str() const;
QPID_MESSAGING_EXTERN operator bool() const;
QPID_MESSAGING_EXTERN bool operator !() const;
private:
AddressImpl* impl;
};
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const Address& address);
QPID_MESSAGING_EXTERN std::ostream& operator<<(std::ostream& out, const Address& address);
}} // namespace qpid::messaging

View file

@ -21,27 +21,32 @@
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/Handle.h"
#include "qpid/messaging/exceptions.h"
#include "qpid/types/Variant.h"
#include <string>
#include "qpid/client/ClientImportExport.h"
#include "qpid/client/Handle.h"
#include "qpid/messaging/Variant.h"
namespace qpid {
namespace client {
template <class> class PrivateImplRef;
}
namespace messaging {
template <class> class PrivateImplRef;
class ConnectionImpl;
class Session;
class Connection : public qpid::client::Handle<ConnectionImpl>
/** \ingroup messaging
* A connection represents a network connection to a remote endpoint.
*/
class Connection : public qpid::messaging::Handle<ConnectionImpl>
{
public:
/**
QPID_MESSAGING_EXTERN Connection(ConnectionImpl* impl);
QPID_MESSAGING_EXTERN Connection(const Connection&);
QPID_MESSAGING_EXTERN Connection();
/**
* Current implementation supports the following options:
*
* username
@ -49,57 +54,56 @@ class Connection : public qpid::client::Handle<ConnectionImpl>
* heartbeat
* tcp-nodelay
* sasl-mechanism
* sasl-service
* sasl-min-ssf
* sasl-max-ssf
* transport
*
* (note also bounds, locale, max-channels and max-framesize, but not sure whether those should be docuemented here)
* Reconnect behaviour can be controlled through the following options:
*
* Retry behaviour can be controlled through the following options:
* reconnect: true/false (enables/disables reconnect entirely)
* reconnect-timeout: number of seconds (give up and report failure after specified time)
* reconnect-limit: n (give up and report failure after specified number of attempts)
* reconnect-interval-min: number of seconds (initial delay between failed reconnection attempts)
* reconnect-interval-max: number of seconds (maximum delay between failed reconnection attempts)
* reconnect-interval: shorthand for setting the same reconnect_interval_min/max
* reconnect-urls: list of alternate urls to try when connecting
*
* reconnection-timeout - determines how long it will try to
* reconnect for -1 means forever, 0
* means don't try to reconnect
* min-retry-interval
* max-retry-interval
*
* The retry-interval is the time that the client waits for
* after a failed attempt to reconnect before retrying. It
* The reconnect-interval is the time that the client waits
* for after a failed attempt to reconnect before retrying. It
* starts at the value of the min-retry-interval and is
* doubled every failure until the value of max-retry-interval
* is reached.
*
*
*/
static QPID_CLIENT_EXTERN Connection open(const std::string& url, const Variant::Map& options = Variant::Map());
QPID_MESSAGING_EXTERN Connection(const std::string& url, const qpid::types::Variant::Map& options = qpid::types::Variant::Map());
/**
* Creates a connection using an option string of the form
* {name:value,name2:value2...}, see above for options supported.
*
* @exception InvalidOptionString if the string does not match the correct syntax
*/
QPID_MESSAGING_EXTERN Connection(const std::string& url, const std::string& options);
QPID_MESSAGING_EXTERN ~Connection();
QPID_MESSAGING_EXTERN Connection& operator=(const Connection&);
QPID_MESSAGING_EXTERN void setOption(const std::string& name, const qpid::types::Variant& value);
QPID_MESSAGING_EXTERN void open();
QPID_MESSAGING_EXTERN bool isOpen();
/**
* Closes a connection and all sessions associated with it. An
* opened connection must be closed before the last handle is
* allowed to go out of scope.
*/
QPID_MESSAGING_EXTERN void close();
QPID_MESSAGING_EXTERN Session createTransactionalSession(const std::string& name = std::string());
QPID_MESSAGING_EXTERN Session createSession(const std::string& name = std::string());
QPID_CLIENT_EXTERN Connection(ConnectionImpl* impl = 0);
QPID_CLIENT_EXTERN Connection(const Connection&);
QPID_CLIENT_EXTERN ~Connection();
QPID_CLIENT_EXTERN Connection& operator=(const Connection&);
QPID_CLIENT_EXTERN void close();
QPID_CLIENT_EXTERN Session newSession(bool transactional, const std::string& name = std::string());
QPID_CLIENT_EXTERN Session newSession(const std::string& name = std::string());
QPID_CLIENT_EXTERN Session newSession(const char* name);
QPID_CLIENT_EXTERN Session getSession(const std::string& name) const;
QPID_MESSAGING_EXTERN Session getSession(const std::string& name) const;
QPID_MESSAGING_EXTERN std::string getAuthenticatedUsername();
private:
friend class qpid::client::PrivateImplRef<Connection>;
friend class qpid::messaging::PrivateImplRef<Connection>;
};
struct InvalidOptionString : public qpid::Exception
{
InvalidOptionString(const std::string& msg);
};
/**
* TODO: need to change format of connection option string (currently
* name1=value1&name2=value2 etc, should probably use map syntax as
* per address options.
*/
QPID_CLIENT_EXTERN void parseOptionString(const std::string&, Variant::Map&);
QPID_CLIENT_EXTERN Variant::Map parseOptionString(const std::string&);
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_CONNECTION_H*/

View file

@ -0,0 +1,55 @@
#ifndef QPID_MESSAGING_DURATION_H
#define QPID_MESSAGING_DURATION_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
#include "qpid/sys/IntegerTypes.h"
namespace qpid {
namespace messaging {
/** \ingroup messaging
* A duration is a time in milliseconds.
*/
class Duration
{
public:
QPID_MESSAGING_EXTERN explicit Duration(uint64_t milliseconds);
QPID_MESSAGING_EXTERN uint64_t getMilliseconds() const;
QPID_MESSAGING_EXTERN static const Duration FOREVER;
QPID_MESSAGING_EXTERN static const Duration IMMEDIATE;
QPID_MESSAGING_EXTERN static const Duration SECOND;
QPID_MESSAGING_EXTERN static const Duration MINUTE;
private:
uint64_t milliseconds;
};
QPID_MESSAGING_EXTERN Duration operator*(const Duration& duration,
uint64_t multiplier);
QPID_MESSAGING_EXTERN Duration operator*(uint64_t multiplier,
const Duration& duration);
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_DURATION_H*/

View file

@ -0,0 +1,49 @@
#ifndef QPID_CLIENT_AMQP0_10_FAILOVERUPDATES_H
#define QPID_CLIENT_AMQP0_10_FAILOVERUPDATES_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
namespace qpid {
namespace messaging {
class Connection;
class FailoverUpdatesImpl;
/**
* A utility to listen for updates on cluster membership and update
* the list of known urls for a connection accordingly.
*/
class FailoverUpdates
{
public:
QPID_MESSAGING_EXTERN FailoverUpdates(Connection& connection);
QPID_MESSAGING_EXTERN ~FailoverUpdates();
private:
FailoverUpdatesImpl* impl;
//no need to copy instances of this class
FailoverUpdates(const FailoverUpdates&);
FailoverUpdates& operator=(const FailoverUpdates&);
};
}} // namespace qpid::messaging
#endif /*!QPID_CLIENT_AMQP0_10_FAILOVERUPDATES_H*/

View file

@ -0,0 +1,71 @@
#ifndef QPID_MESSAGING_HANDLE_H
#define QPID_MESSAGING_HANDLE_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
namespace qpid {
namespace messaging {
template <class> class PrivateImplRef;
/** \ingroup messaging
* A handle is like a pointer: refers to an underlying implementation object.
* Copying the handle does not copy the object.
*
* Handles can be null, like a 0 pointer. Use isValid(), isNull() or the
* conversion to bool to test for a null handle.
*/
template <class T> class Handle {
public:
/**@return true if handle is valid, i.e. not null. */
QPID_MESSAGING_EXTERN bool isValid() const { return impl; }
/**@return true if handle is null. It is an error to call any function on a null handle. */
QPID_MESSAGING_EXTERN bool isNull() const { return !impl; }
/** Conversion to bool supports idiom if (handle) { handle->... } */
QPID_MESSAGING_EXTERN operator bool() const { return impl; }
/** Operator ! supports idiom if (!handle) { do_if_handle_is_null(); } */
QPID_MESSAGING_EXTERN bool operator !() const { return !impl; }
void swap(Handle<T>& h) { T* t = h.impl; h.impl = impl; impl = t; }
protected:
typedef T Impl;
QPID_MESSAGING_EXTERN Handle() :impl() {}
// Not implemented,subclasses must implement.
QPID_MESSAGING_EXTERN Handle(const Handle&);
QPID_MESSAGING_EXTERN Handle& operator=(const Handle&);
Impl* impl;
friend class PrivateImplRef<T>;
};
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_HANDLE_H*/

View file

@ -0,0 +1,33 @@
#ifndef QPID_MESSAGING_IMPORTEXPORT_H
#define QPID_MESSAGING_IMPORTEXPORT_H
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
#if defined(CLIENT_EXPORT) || defined (qpidmessaging_EXPORTS)
#define QPID_MESSAGING_EXTERN __declspec(dllexport)
#else
#define QPID_MESSAGING_EXTERN __declspec(dllimport)
#endif
#else
#define QPID_MESSAGING_EXTERN
#endif
#endif /*!QPID_MESSAGING_IMPORTEXPORT_H*/

View file

@ -1,90 +0,0 @@
#ifndef QPID_MESSAGING_LISTCONTENT_H
#define QPID_MESSAGING_LISTCONTENT_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/client/ClientImportExport.h"
#include "Variant.h"
namespace qpid {
namespace messaging {
class ListContentImpl;
class Message;
/**
* Allows message content to be manipulated as a list.
*/
class ListContent
{
public:
typedef Variant::List::iterator iterator;
typedef Variant::List::reverse_iterator reverse_iterator;
typedef Variant::List::const_iterator const_iterator;
typedef Variant::List::const_reverse_iterator const_reverse_iterator;
QPID_CLIENT_EXTERN ListContent(Message&);
QPID_CLIENT_EXTERN ~ListContent();
QPID_CLIENT_EXTERN const_iterator begin() const;
QPID_CLIENT_EXTERN iterator begin();
QPID_CLIENT_EXTERN const_iterator end() const;
QPID_CLIENT_EXTERN iterator end();
QPID_CLIENT_EXTERN const_reverse_iterator rbegin() const;
QPID_CLIENT_EXTERN reverse_iterator rbegin();
QPID_CLIENT_EXTERN const_reverse_iterator rend() const;
QPID_CLIENT_EXTERN reverse_iterator rend();
QPID_CLIENT_EXTERN bool empty() const;
QPID_CLIENT_EXTERN size_t size() const;
QPID_CLIENT_EXTERN const Variant& front() const;
QPID_CLIENT_EXTERN Variant& front();
QPID_CLIENT_EXTERN const Variant& back() const;
QPID_CLIENT_EXTERN Variant& back();
QPID_CLIENT_EXTERN void push_front(const Variant&);
QPID_CLIENT_EXTERN void push_back(const Variant&);
QPID_CLIENT_EXTERN void pop_front();
QPID_CLIENT_EXTERN void pop_back();
QPID_CLIENT_EXTERN iterator insert(iterator position, const Variant&);
QPID_CLIENT_EXTERN void insert(iterator position, size_t n, const Variant&);
QPID_CLIENT_EXTERN iterator erase(iterator position);
QPID_CLIENT_EXTERN iterator erase(iterator first, iterator last);
QPID_CLIENT_EXTERN void clear();
QPID_CLIENT_EXTERN void encode();
QPID_CLIENT_EXTERN const Variant::List& asList() const;
QPID_CLIENT_EXTERN Variant::List& asList();
private:
ListContentImpl* impl;
QPID_CLIENT_EXTERN ListContent& operator=(const ListContent&);
};
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const ListContent& m);
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_LISTCONTENT_H*/

View file

@ -1,67 +0,0 @@
#ifndef QPID_MESSAGING_LISTVIEW_H
#define QPID_MESSAGING_LISTVIEW_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/client/ClientImportExport.h"
#include "Variant.h"
namespace qpid {
namespace messaging {
class ListViewImpl;
class Message;
/**
* Provides a view of message content as a list
*/
class ListView
{
public:
typedef Variant::List::const_iterator const_iterator;
typedef Variant::List::const_reverse_iterator const_reverse_iterator;
QPID_CLIENT_EXTERN ListView(const Message&);
QPID_CLIENT_EXTERN ~ListView();
QPID_CLIENT_EXTERN ListView& operator=(const ListView&);
QPID_CLIENT_EXTERN const_iterator begin() const;
QPID_CLIENT_EXTERN const_iterator end() const;
QPID_CLIENT_EXTERN const_reverse_iterator rbegin() const;
QPID_CLIENT_EXTERN const_reverse_iterator rend() const;
QPID_CLIENT_EXTERN bool empty() const;
QPID_CLIENT_EXTERN size_t size() const;
QPID_CLIENT_EXTERN const Variant& front() const;
QPID_CLIENT_EXTERN const Variant& back() const;
QPID_CLIENT_EXTERN const Variant::List& asList() const;
private:
ListViewImpl* impl;
};
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const ListView& m);
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_LISTVIEW_H*/

View file

@ -1,90 +0,0 @@
#ifndef QPID_MESSAGING_MAPCONTENT_H
#define QPID_MESSAGING_MAPCONTENT_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/client/ClientImportExport.h"
#include "Variant.h"
#include <map>
#include <string>
namespace qpid {
namespace messaging {
class MapContentImpl;
class Message;
/**
* Allows message content to be manipulated as a map
*/
class MapContent
{
public:
typedef std::string key_type;
typedef std::pair<std::string, Variant> value_type;
typedef std::map<key_type, Variant>::const_iterator const_iterator;
typedef std::map<key_type, Variant>::iterator iterator;
typedef std::map<key_type, Variant>::const_reverse_iterator const_reverse_iterator;
typedef std::map<key_type, Variant>::reverse_iterator reverse_iterator;
QPID_CLIENT_EXTERN MapContent(Message&);
QPID_CLIENT_EXTERN ~MapContent();
QPID_CLIENT_EXTERN const_iterator begin() const;
QPID_CLIENT_EXTERN const_iterator end() const;
QPID_CLIENT_EXTERN const_reverse_iterator rbegin() const;
QPID_CLIENT_EXTERN const_reverse_iterator rend() const;
QPID_CLIENT_EXTERN iterator begin();
QPID_CLIENT_EXTERN iterator end();
QPID_CLIENT_EXTERN reverse_iterator rbegin();
QPID_CLIENT_EXTERN reverse_iterator rend();
QPID_CLIENT_EXTERN bool empty() const;
QPID_CLIENT_EXTERN size_t size() const;
QPID_CLIENT_EXTERN const_iterator find(const key_type&) const;
QPID_CLIENT_EXTERN iterator find(const key_type&);
QPID_CLIENT_EXTERN const Variant& operator[](const key_type&) const;
QPID_CLIENT_EXTERN Variant& operator[](const key_type&);
QPID_CLIENT_EXTERN std::pair<iterator,bool> insert(const value_type&);
QPID_CLIENT_EXTERN iterator insert(iterator position, const value_type&);
QPID_CLIENT_EXTERN void erase(iterator position);
QPID_CLIENT_EXTERN void erase(iterator first, iterator last);
QPID_CLIENT_EXTERN size_t erase(const key_type&);
QPID_CLIENT_EXTERN void clear();
QPID_CLIENT_EXTERN void encode();
QPID_CLIENT_EXTERN const std::map<key_type, Variant>& asMap() const;
QPID_CLIENT_EXTERN std::map<key_type, Variant>& asMap();
private:
MapContentImpl* impl;
QPID_CLIENT_EXTERN MapContent& operator=(const MapContent&);
};
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const MapContent& m);
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_MAPCONTENT_H*/

View file

@ -1,70 +0,0 @@
#ifndef QPID_MESSAGING_MAPVIEW_H
#define QPID_MESSAGING_MAPVIEW_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/client/ClientImportExport.h"
#include "Variant.h"
#include <map>
#include <string>
namespace qpid {
namespace messaging {
class MapViewImpl;
class Message;
/**
* Provides a view of message content as a list
*/
class MapView
{
public:
typedef std::string key_type;
typedef std::pair<key_type, Variant> value_type;
typedef std::map<key_type, Variant>::const_iterator const_iterator;
typedef std::map<key_type, Variant>::const_reverse_iterator const_reverse_iterator;
QPID_CLIENT_EXTERN MapView(const Message&);
QPID_CLIENT_EXTERN ~MapView();
QPID_CLIENT_EXTERN MapView& operator=(const MapView&);
QPID_CLIENT_EXTERN const_iterator begin() const;
QPID_CLIENT_EXTERN const_iterator end() const;
QPID_CLIENT_EXTERN const_reverse_iterator rbegin() const;
QPID_CLIENT_EXTERN const_reverse_iterator rend() const;
QPID_CLIENT_EXTERN bool empty() const;
QPID_CLIENT_EXTERN size_t size() const;
QPID_CLIENT_EXTERN const_iterator find(const key_type&) const;
QPID_CLIENT_EXTERN const Variant& operator[](const key_type&) const;
QPID_CLIENT_EXTERN const std::map<key_type, Variant>& asMap() const;
private:
MapViewImpl* impl;
};
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const MapView& m);
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_MAPVIEW_H*/

View file

@ -21,56 +21,144 @@
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/Duration.h"
#include "qpid/types/Exception.h"
#include "qpid/types/Variant.h"
#include <string>
#include "qpid/messaging/Variant.h"
#include "qpid/client/ClientImportExport.h"
namespace qpid {
namespace client {
}
namespace messaging {
class Address;
class Codec;
struct MessageImpl;
/**
/** \ingroup messaging
* Representation of a message.
*/
class Message
{
public:
QPID_CLIENT_EXTERN Message(const std::string& bytes = std::string());
QPID_CLIENT_EXTERN Message(const char*, size_t);
QPID_CLIENT_EXTERN Message(const Message&);
QPID_CLIENT_EXTERN ~Message();
QPID_MESSAGING_EXTERN Message(const std::string& bytes = std::string());
QPID_MESSAGING_EXTERN Message(const char*, size_t);
QPID_MESSAGING_EXTERN Message(const Message&);
QPID_MESSAGING_EXTERN ~Message();
QPID_CLIENT_EXTERN Message& operator=(const Message&);
QPID_MESSAGING_EXTERN Message& operator=(const Message&);
QPID_CLIENT_EXTERN void setReplyTo(const Address&);
QPID_CLIENT_EXTERN const Address& getReplyTo() const;
QPID_MESSAGING_EXTERN void setReplyTo(const Address&);
QPID_MESSAGING_EXTERN const Address& getReplyTo() const;
QPID_CLIENT_EXTERN void setSubject(const std::string&);
QPID_CLIENT_EXTERN const std::string& getSubject() const;
QPID_MESSAGING_EXTERN void setSubject(const std::string&);
QPID_MESSAGING_EXTERN const std::string& getSubject() const;
QPID_CLIENT_EXTERN void setContentType(const std::string&);
QPID_CLIENT_EXTERN const std::string& getContentType() const;
QPID_MESSAGING_EXTERN void setContentType(const std::string&);
QPID_MESSAGING_EXTERN const std::string& getContentType() const;
QPID_CLIENT_EXTERN const Variant::Map& getHeaders() const;
QPID_CLIENT_EXTERN Variant::Map& getHeaders();
QPID_MESSAGING_EXTERN void setMessageId(const std::string&);
QPID_MESSAGING_EXTERN const std::string& getMessageId() const;
QPID_CLIENT_EXTERN const std::string& getContent() const;
QPID_CLIENT_EXTERN std::string& getContent();
QPID_CLIENT_EXTERN void setContent(const std::string&);
QPID_CLIENT_EXTERN void setContent(const char* chars, size_t count);
QPID_CLIENT_EXTERN void getContent(std::pair<const char*, size_t>& content) const;
QPID_MESSAGING_EXTERN void setUserId(const std::string&);
QPID_MESSAGING_EXTERN const std::string& getUserId() const;
QPID_MESSAGING_EXTERN void setCorrelationId(const std::string&);
QPID_MESSAGING_EXTERN const std::string& getCorrelationId() const;
QPID_MESSAGING_EXTERN void setPriority(uint8_t);
QPID_MESSAGING_EXTERN uint8_t getPriority() const;
/**
* Set the time to live for this message in milliseconds.
*/
QPID_MESSAGING_EXTERN void setTtl(Duration ttl);
/**
*Get the time to live for this message in milliseconds.
*/
QPID_MESSAGING_EXTERN Duration getTtl() const;
QPID_MESSAGING_EXTERN void setDurable(bool durable);
QPID_MESSAGING_EXTERN bool getDurable() const;
QPID_MESSAGING_EXTERN bool getRedelivered() const;
QPID_MESSAGING_EXTERN void setRedelivered(bool);
QPID_MESSAGING_EXTERN const qpid::types::Variant::Map& getProperties() const;
QPID_MESSAGING_EXTERN qpid::types::Variant::Map& getProperties();
QPID_MESSAGING_EXTERN void setContent(const std::string&);
/**
* Note that chars are copied.
*/
QPID_MESSAGING_EXTERN void setContent(const char* chars, size_t count);
/** Get the content as a std::string */
QPID_MESSAGING_EXTERN std::string getContent() const;
/** Get a const pointer to the start of the content data. */
QPID_MESSAGING_EXTERN const char* getContentPtr() const;
/** Get the size of content in bytes. */
QPID_MESSAGING_EXTERN size_t getContentSize() const;
private:
MessageImpl* impl;
friend struct MessageImplAccess;
};
struct EncodingException : qpid::types::Exception
{
EncodingException(const std::string& msg);
};
/**
* Decodes message content into a Variant::Map.
*
* @param message the message whose content should be decoded
* @param map the map into which the message contents will be decoded
* @param encoding if specified, the encoding to use - this overrides
* any encoding specified by the content-type of the message
* @exception EncodingException
*/
QPID_MESSAGING_EXTERN void decode(const Message& message,
qpid::types::Variant::Map& map,
const std::string& encoding = std::string());
/**
* Decodes message content into a Variant::List.
*
* @param message the message whose content should be decoded
* @param list the list into which the message contents will be decoded
* @param encoding if specified, the encoding to use - this overrides
* any encoding specified by the content-type of the message
* @exception EncodingException
*/
QPID_MESSAGING_EXTERN void decode(const Message& message,
qpid::types::Variant::List& list,
const std::string& encoding = std::string());
/**
* Encodes a Variant::Map into a message.
*
* @param map the map to be encoded
* @param message the message whose content should be set to the encoded map
* @param encoding if specified, the encoding to use - this overrides
* any encoding specified by the content-type of the message
* @exception EncodingException
*/
QPID_MESSAGING_EXTERN void encode(const qpid::types::Variant::Map& map,
Message& message,
const std::string& encoding = std::string());
/**
* Encodes a Variant::List into a message.
*
* @param list the list to be encoded
* @param message the message whose content should be set to the encoded list
* @param encoding if specified, the encoding to use - this overrides
* any encoding specified by the content-type of the message
* @exception EncodingException
*/
QPID_MESSAGING_EXTERN void encode(const qpid::types::Variant::List& list,
Message& message,
const std::string& encoding = std::string());
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_MESSAGE_H*/

View file

@ -21,109 +21,119 @@
* under the License.
*
*/
#include "qpid/Exception.h"
#include "qpid/client/ClientImportExport.h"
#include "qpid/client/Handle.h"
#include "qpid/sys/Time.h"
#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/exceptions.h"
#include "qpid/messaging/Handle.h"
#include "qpid/messaging/Duration.h"
namespace qpid {
namespace client {
namespace messaging {
template <class> class PrivateImplRef;
}
namespace messaging {
class Message;
class ReceiverImpl;
class Session;
/**
/** \ingroup messaging
* Interface through which messages are received.
*/
class Receiver : public qpid::client::Handle<ReceiverImpl>
class Receiver : public qpid::messaging::Handle<ReceiverImpl>
{
public:
struct NoMessageAvailable : qpid::Exception {};
QPID_CLIENT_EXTERN Receiver(ReceiverImpl* impl = 0);
QPID_CLIENT_EXTERN Receiver(const Receiver&);
QPID_CLIENT_EXTERN ~Receiver();
QPID_CLIENT_EXTERN Receiver& operator=(const Receiver&);
QPID_MESSAGING_EXTERN Receiver(ReceiverImpl* impl = 0);
QPID_MESSAGING_EXTERN Receiver(const Receiver&);
QPID_MESSAGING_EXTERN ~Receiver();
QPID_MESSAGING_EXTERN Receiver& operator=(const Receiver&);
/**
* Retrieves a message from this receivers local queue, or waits
* for upto the specified timeout for a message to become
* available. Returns false if there is no message to give after
* waiting for the specified timeout.
* available.
*/
QPID_CLIENT_EXTERN bool get(Message& message, qpid::sys::Duration timeout=qpid::sys::TIME_INFINITE);
QPID_MESSAGING_EXTERN bool get(Message& message, Duration timeout=Duration::FOREVER);
/**
* Retrieves a message from this receivers local queue, or waits
* for upto the specified timeout for a message to become
* available. Throws NoMessageAvailable if there is no
* message to give after waiting for the specified timeout.
* for up to the specified timeout for a message to become
* available.
*
* @exception NoMessageAvailable if there is no message to give
* after waiting for the specified timeout, or if the Receiver is
* closed, in which case isClose() will be true.
*/
QPID_CLIENT_EXTERN Message get(qpid::sys::Duration timeout=qpid::sys::TIME_INFINITE);
QPID_MESSAGING_EXTERN Message get(Duration timeout=Duration::FOREVER);
/**
* Retrieves a message for this receivers subscription or waits
* for upto the specified timeout for one to become
* for up to the specified timeout for one to become
* available. Unlike get() this method will check with the server
* that there is no message for the subscription this receiver is
* serving before returning false.
*
* @return false if there is no message to give after
* waiting for the specified timeout, or if the Receiver is
* closed, in which case isClose() will be true.
*/
QPID_CLIENT_EXTERN bool fetch(Message& message, qpid::sys::Duration timeout=qpid::sys::TIME_INFINITE);
QPID_MESSAGING_EXTERN bool fetch(Message& message, Duration timeout=Duration::FOREVER);
/**
* Retrieves a message for this receivers subscription or waits
* for up to the specified timeout for one to become
* available. Unlike get() this method will check with the server
* that there is no message for the subscription this receiver is
* serving before throwing an exception.
*
* @exception NoMessageAvailable if there is no message to give
* after waiting for the specified timeout, or if the Receiver is
* closed, in which case isClose() will be true.
*/
QPID_CLIENT_EXTERN Message fetch(qpid::sys::Duration timeout=qpid::sys::TIME_INFINITE);
QPID_MESSAGING_EXTERN Message fetch(Duration timeout=Duration::FOREVER);
/**
* Sets the capacity for the receiver. The capacity determines how
* many incoming messages can be held in the receiver before being
* requested by a client via fetch() (or pushed to a listener).
*/
QPID_CLIENT_EXTERN void setCapacity(uint32_t);
QPID_MESSAGING_EXTERN void setCapacity(uint32_t);
/**
* Returns the capacity of the receiver. The capacity determines
* @return the capacity of the receiver. The capacity determines
* how many incoming messages can be held in the receiver before
* being requested by a client via fetch() (or pushed to a
* listener).
*/
QPID_CLIENT_EXTERN uint32_t getCapacity();
QPID_MESSAGING_EXTERN uint32_t getCapacity();
/**
* Returns the number of messages received and waiting to be
* @return the number of messages received and waiting to be
* fetched.
*/
QPID_CLIENT_EXTERN uint32_t available();
QPID_MESSAGING_EXTERN uint32_t getAvailable();
/**
* Returns a count of the number of messages received on this
* @return a count of the number of messages received on this
* receiver that have been acknowledged, but for which that
* acknowledgement has not yet been confirmed as processed by the
* server.
*/
QPID_CLIENT_EXTERN uint32_t pendingAck();
QPID_MESSAGING_EXTERN uint32_t getUnsettled();
/**
* Cancels this receiver.
*/
QPID_CLIENT_EXTERN void cancel();
QPID_MESSAGING_EXTERN void close();
/**
* Return true if the receiver was closed by a call to close()
*/
QPID_MESSAGING_EXTERN bool isClosed() const;
/**
* Returns the name of this receiver.
*/
QPID_CLIENT_EXTERN const std::string& getName() const;
QPID_MESSAGING_EXTERN const std::string& getName() const;
/**
* Returns a handle to the session associated with this receiver.
*/
QPID_CLIENT_EXTERN Session getSession() const;
QPID_MESSAGING_EXTERN Session getSession() const;
private:
friend class qpid::client::PrivateImplRef<Receiver>;
friend class qpid::messaging::PrivateImplRef<Receiver>;
};
}} // namespace qpid::messaging

View file

@ -21,65 +21,74 @@
* under the License.
*
*/
#include "qpid/client/ClientImportExport.h"
#include "qpid/client/Handle.h"
#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/Handle.h"
#include "qpid/sys/IntegerTypes.h"
#include <string>
namespace qpid {
namespace client {
template <class> class PrivateImplRef;
}
namespace messaging {
template <class> class PrivateImplRef;
class Message;
class SenderImpl;
class Session;
/**
/** \ingroup messaging
* Interface through which messages are sent.
*/
class Sender : public qpid::client::Handle<SenderImpl>
class Sender : public qpid::messaging::Handle<SenderImpl>
{
public:
QPID_CLIENT_EXTERN Sender(SenderImpl* impl = 0);
QPID_CLIENT_EXTERN Sender(const Sender&);
QPID_CLIENT_EXTERN ~Sender();
QPID_CLIENT_EXTERN Sender& operator=(const Sender&);
QPID_MESSAGING_EXTERN Sender(SenderImpl* impl = 0);
QPID_MESSAGING_EXTERN Sender(const Sender&);
QPID_MESSAGING_EXTERN ~Sender();
QPID_MESSAGING_EXTERN Sender& operator=(const Sender&);
QPID_CLIENT_EXTERN void send(const Message& message);
QPID_CLIENT_EXTERN void cancel();
/**
* Sends a message
*
* @param message the message to send
* @param sync if true the call will block until the server
* confirms receipt of the messages; if false will only block for
* available capacity (i.e. pending == capacity)
*/
QPID_MESSAGING_EXTERN void send(const Message& message, bool sync=false);
QPID_MESSAGING_EXTERN void close();
/**
* Sets the capacity for the sender. The capacity determines how
* many outgoing messages can be held pending confirmation of
* receipt by the broker.
*/
QPID_CLIENT_EXTERN void setCapacity(uint32_t);
QPID_MESSAGING_EXTERN void setCapacity(uint32_t);
/**
* Returns the capacity of the sender.
* @see setCapacity
*/
QPID_CLIENT_EXTERN uint32_t getCapacity();
QPID_MESSAGING_EXTERN uint32_t getCapacity();
/**
* Returns the number of sent messages pending confirmation of
* receipt by the broker. (These are the 'in-doubt' messages).
*/
QPID_CLIENT_EXTERN uint32_t pending();
QPID_MESSAGING_EXTERN uint32_t getUnsettled();
/**
* Returns the number of messages for which there is available
* capacity.
*/
QPID_MESSAGING_EXTERN uint32_t getAvailable();
/**
* Returns the name of this sender.
*/
QPID_CLIENT_EXTERN const std::string& getName() const;
QPID_MESSAGING_EXTERN const std::string& getName() const;
/**
* Returns a handle to the session associated with this sender.
*/
QPID_CLIENT_EXTERN Session getSession() const;
QPID_MESSAGING_EXTERN Session getSession() const;
private:
friend class qpid::client::PrivateImplRef<Sender>;
friend class qpid::messaging::PrivateImplRef<Sender>;
};
}} // namespace qpid::messaging

View file

@ -21,21 +21,18 @@
* under the License.
*
*/
#include "qpid/Exception.h"
#include "qpid/client/ClientImportExport.h"
#include "qpid/client/Handle.h"
#include "qpid/sys/Time.h"
#include "qpid/messaging/ImportExport.h"
#include "qpid/messaging/exceptions.h"
#include "qpid/messaging/Duration.h"
#include "qpid/messaging/Handle.h"
#include <string>
namespace qpid {
namespace client {
template <class> class PrivateImplRef;
}
namespace messaging {
template <class> class PrivateImplRef;
class Address;
class Connection;
class Message;
@ -45,103 +42,127 @@ class Receiver;
class SessionImpl;
class Subscription;
struct KeyError : qpid::Exception
{
QPID_CLIENT_EXTERN KeyError(const std::string&);
};
/**
/** \ingroup messaging
* A session represents a distinct 'conversation' which can involve
* sending and receiving messages to and from different addresses.
*/
class Session : public qpid::client::Handle<SessionImpl>
class Session : public qpid::messaging::Handle<SessionImpl>
{
public:
QPID_CLIENT_EXTERN Session(SessionImpl* impl = 0);
QPID_CLIENT_EXTERN Session(const Session&);
QPID_CLIENT_EXTERN ~Session();
QPID_CLIENT_EXTERN Session& operator=(const Session&);
QPID_MESSAGING_EXTERN Session(SessionImpl* impl = 0);
QPID_MESSAGING_EXTERN Session(const Session&);
QPID_MESSAGING_EXTERN ~Session();
QPID_MESSAGING_EXTERN Session& operator=(const Session&);
QPID_CLIENT_EXTERN void close();
/**
* Closes a session and all associated senders and receivers. An
* opened session should be closed before the last handle to it
* goes out of scope. All a connections sessions can be closed by
* a call to Connection::close().
*/
QPID_MESSAGING_EXTERN void close();
QPID_CLIENT_EXTERN void commit();
QPID_CLIENT_EXTERN void rollback();
QPID_MESSAGING_EXTERN void commit();
QPID_MESSAGING_EXTERN void rollback();
/**
* Acknowledges all outstanding messages that have been received
* by the application on this session.
*
* @param sync if true, blocks until the acknowledgement has been
* processed by the server
*/
QPID_CLIENT_EXTERN void acknowledge();
QPID_MESSAGING_EXTERN void acknowledge(bool sync=false);
/**
* Rejects the specified message. This will prevent the message
* being redelivered.
* being redelivered. This must be called before the message is
* acknowledged.
*/
QPID_CLIENT_EXTERN void reject(Message&);
QPID_CLIENT_EXTERN void sync();
QPID_CLIENT_EXTERN void flush();
QPID_MESSAGING_EXTERN void reject(Message&);
/**
* Releases the specified message. This will allow the broker to
* redeliver the message. This must be called before the message
* is acknowledged.
*/
QPID_MESSAGING_EXTERN void release(Message&);
/**
* Returns the number of messages received and waiting to be
* fetched.
* Request synchronisation with the server.
*
* @param block if true, this call will block until the server
* confirms completion of all pending operations; if false the
* call will request notifcation from the server but will return
* before receiving it.
*/
QPID_CLIENT_EXTERN uint32_t available();
QPID_MESSAGING_EXTERN void sync(bool block=true);
/**
* Returns the total number of messages received and waiting to be
* fetched by all Receivers belonging to this session. This is the
* total number of available messages across all receivers on this
* session.
*/
QPID_MESSAGING_EXTERN uint32_t getReceivable();
/**
* Returns a count of the number of messages received this session
* that have been acknowledged, but for which that acknowledgement
* has not yet been confirmed as processed by the server.
*/
QPID_CLIENT_EXTERN uint32_t pendingAck();
QPID_MESSAGING_EXTERN uint32_t getUnsettledAcks();
/**
* Retrieves the receiver for the next available message. If there
* are no available messages at present the call will block for up
* to the specified timeout waiting for one to arrive. Returns
* true if a message was available at the point of return, in
* which case the passed in receiver reference will be set to the
* receiver for that message or fals if no message was available.
* receiver for that message or false if no message was available.
*/
QPID_CLIENT_EXTERN bool nextReceiver(Receiver&, qpid::sys::Duration timeout=qpid::sys::TIME_INFINITE);
QPID_MESSAGING_EXTERN bool nextReceiver(Receiver&, Duration timeout=Duration::FOREVER);
/**
* Returns the receiver for the next available message. If there
* are no available messages at present the call will block for up
* to the specified timeout waiting for one to arrive. Will throw
* Receiver::NoMessageAvailable if no message became available in
* time.
* to the specified timeout waiting for one to arrive.
*
* @exception Receiver::NoMessageAvailable if no message became
* available in time.
*/
QPID_CLIENT_EXTERN Receiver nextReceiver(qpid::sys::Duration timeout=qpid::sys::TIME_INFINITE);
QPID_MESSAGING_EXTERN Receiver nextReceiver(Duration timeout=Duration::FOREVER);
/**
* Create a new sender through which messages can be sent to the
* specified address.
*/
QPID_CLIENT_EXTERN Sender createSender(const Address& address);
QPID_CLIENT_EXTERN Sender createSender(const std::string& address);
QPID_MESSAGING_EXTERN Sender createSender(const Address& address);
QPID_MESSAGING_EXTERN Sender createSender(const std::string& address);
/**
* Create a new receiver through which messages can be received
* from the specified address.
*/
QPID_CLIENT_EXTERN Receiver createReceiver(const Address& address);
QPID_CLIENT_EXTERN Receiver createReceiver(const std::string& address);
QPID_MESSAGING_EXTERN Receiver createReceiver(const Address& address);
QPID_MESSAGING_EXTERN Receiver createReceiver(const std::string& address);
/**
* Returns the sender with the specified name or throws KeyError
* if there is none for that name.
* Returns the sender with the specified name.
*@exception KeyError if there is none for that name.
*/
QPID_CLIENT_EXTERN Sender getSender(const std::string& name) const;
QPID_MESSAGING_EXTERN Sender getSender(const std::string& name) const;
/**
* Returns the receiver with the specified name or throws KeyError
* if there is none for that name.
* Returns the receiver with the specified name.
*@exception KeyError if there is none for that name.
*/
QPID_CLIENT_EXTERN Receiver getReceiver(const std::string& name) const;
QPID_MESSAGING_EXTERN Receiver getReceiver(const std::string& name) const;
/**
* Returns a handle to the connection this session is associated
* with.
*/
QPID_CLIENT_EXTERN Connection getConnection() const;
QPID_MESSAGING_EXTERN Connection getConnection() const;
QPID_MESSAGING_EXTERN bool hasError();
QPID_MESSAGING_EXTERN void checkError();
private:
friend class qpid::client::PrivateImplRef<Session>;
friend class qpid::messaging::PrivateImplRef<Session>;
};
}} // namespace qpid::messaging

View file

@ -1,168 +0,0 @@
#ifndef QPID_MESSAGING_VARIANT_H
#define QPID_MESSAGING_VARIANT_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include <list>
#include <map>
#include <ostream>
#include <string>
#include "qpid/Exception.h"
#include "qpid/sys/IntegerTypes.h"
#include "qpid/client/ClientImportExport.h"
namespace qpid {
namespace messaging {
/**
* Thrown when an illegal conversion of a variant is attempted.
*/
struct InvalidConversion : public qpid::Exception
{
InvalidConversion(const std::string& msg);
};
enum VariantType {
VAR_VOID = 0,
VAR_BOOL,
VAR_UINT8,
VAR_UINT16,
VAR_UINT32,
VAR_UINT64,
VAR_INT8,
VAR_INT16,
VAR_INT32,
VAR_INT64,
VAR_FLOAT,
VAR_DOUBLE,
VAR_STRING,
VAR_MAP,
VAR_LIST
};
class VariantImpl;
/**
* Represents a value of variable type.
*/
class Variant
{
public:
typedef std::map<std::string, Variant> Map;
typedef std::list<Variant> List;
QPID_CLIENT_EXTERN Variant();
QPID_CLIENT_EXTERN Variant(bool);
QPID_CLIENT_EXTERN Variant(uint8_t);
QPID_CLIENT_EXTERN Variant(uint16_t);
QPID_CLIENT_EXTERN Variant(uint32_t);
QPID_CLIENT_EXTERN Variant(uint64_t);
QPID_CLIENT_EXTERN Variant(int8_t);
QPID_CLIENT_EXTERN Variant(int16_t);
QPID_CLIENT_EXTERN Variant(int32_t);
QPID_CLIENT_EXTERN Variant(int64_t);
QPID_CLIENT_EXTERN Variant(float);
QPID_CLIENT_EXTERN Variant(double);
QPID_CLIENT_EXTERN Variant(const std::string&);
QPID_CLIENT_EXTERN Variant(const char*);
QPID_CLIENT_EXTERN Variant(const Map&);
QPID_CLIENT_EXTERN Variant(const List&);
QPID_CLIENT_EXTERN Variant(const Variant&);
QPID_CLIENT_EXTERN ~Variant();
QPID_CLIENT_EXTERN VariantType getType() const;
QPID_CLIENT_EXTERN bool isVoid() const;
QPID_CLIENT_EXTERN Variant& operator=(bool);
QPID_CLIENT_EXTERN Variant& operator=(uint8_t);
QPID_CLIENT_EXTERN Variant& operator=(uint16_t);
QPID_CLIENT_EXTERN Variant& operator=(uint32_t);
QPID_CLIENT_EXTERN Variant& operator=(uint64_t);
QPID_CLIENT_EXTERN Variant& operator=(int8_t);
QPID_CLIENT_EXTERN Variant& operator=(int16_t);
QPID_CLIENT_EXTERN Variant& operator=(int32_t);
QPID_CLIENT_EXTERN Variant& operator=(int64_t);
QPID_CLIENT_EXTERN Variant& operator=(float);
QPID_CLIENT_EXTERN Variant& operator=(double);
QPID_CLIENT_EXTERN Variant& operator=(const std::string&);
QPID_CLIENT_EXTERN Variant& operator=(const char*);
QPID_CLIENT_EXTERN Variant& operator=(const Map&);
QPID_CLIENT_EXTERN Variant& operator=(const List&);
QPID_CLIENT_EXTERN Variant& operator=(const Variant&);
QPID_CLIENT_EXTERN bool asBool() const;
QPID_CLIENT_EXTERN uint8_t asUint8() const;
QPID_CLIENT_EXTERN uint16_t asUint16() const;
QPID_CLIENT_EXTERN uint32_t asUint32() const;
QPID_CLIENT_EXTERN uint64_t asUint64() const;
QPID_CLIENT_EXTERN int8_t asInt8() const;
QPID_CLIENT_EXTERN int16_t asInt16() const;
QPID_CLIENT_EXTERN int32_t asInt32() const;
QPID_CLIENT_EXTERN int64_t asInt64() const;
QPID_CLIENT_EXTERN float asFloat() const;
QPID_CLIENT_EXTERN double asDouble() const;
QPID_CLIENT_EXTERN std::string asString() const;
QPID_CLIENT_EXTERN operator bool() const;
QPID_CLIENT_EXTERN operator uint8_t() const;
QPID_CLIENT_EXTERN operator uint16_t() const;
QPID_CLIENT_EXTERN operator uint32_t() const;
QPID_CLIENT_EXTERN operator uint64_t() const;
QPID_CLIENT_EXTERN operator int8_t() const;
QPID_CLIENT_EXTERN operator int16_t() const;
QPID_CLIENT_EXTERN operator int32_t() const;
QPID_CLIENT_EXTERN operator int64_t() const;
QPID_CLIENT_EXTERN operator float() const;
QPID_CLIENT_EXTERN operator double() const;
QPID_CLIENT_EXTERN operator const char*() const;
QPID_CLIENT_EXTERN const Map& asMap() const;
QPID_CLIENT_EXTERN Map& asMap();
QPID_CLIENT_EXTERN const List& asList() const;
QPID_CLIENT_EXTERN List& asList();
/**
* Unlike asString(), getString() will not do any conversions and
* will throw InvalidConversion if the type is not STRING.
*/
QPID_CLIENT_EXTERN const std::string& getString() const;
QPID_CLIENT_EXTERN std::string& getString();
QPID_CLIENT_EXTERN void setEncoding(const std::string&);
QPID_CLIENT_EXTERN const std::string& getEncoding() const;
QPID_CLIENT_EXTERN bool isEqualTo(const Variant& a) const;
QPID_CLIENT_EXTERN void reset();
private:
VariantImpl* impl;
};
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const Variant& value);
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::Map& map);
QPID_CLIENT_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::List& list);
QPID_CLIENT_EXTERN bool operator==(const Variant& a, const Variant& b);
typedef Variant::Map VariantMap;
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_VARIANT_H*/

View file

@ -0,0 +1,153 @@
#ifndef QPID_MESSAGING_EXCEPTIONS_H
#define QPID_MESSAGING_EXCEPTIONS_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/messaging/ImportExport.h"
#include "qpid/types/Exception.h"
#include "qpid/types/Variant.h"
namespace qpid {
namespace messaging {
/** \ingroup messaging
*/
struct MessagingException : public qpid::types::Exception
{
QPID_MESSAGING_EXTERN MessagingException(const std::string& msg);
QPID_MESSAGING_EXTERN virtual ~MessagingException() throw();
qpid::types::Variant::Map detail;
//TODO: override what() to include detail if present
};
struct InvalidOptionString : public MessagingException
{
QPID_MESSAGING_EXTERN InvalidOptionString(const std::string& msg);
};
struct KeyError : public MessagingException
{
QPID_MESSAGING_EXTERN KeyError(const std::string&);
};
struct LinkError : public MessagingException
{
QPID_MESSAGING_EXTERN LinkError(const std::string&);
};
struct AddressError : public LinkError
{
QPID_MESSAGING_EXTERN AddressError(const std::string&);
};
/**
* Thrown when a syntactically correct address cannot be resolved or
* used.
*/
struct ResolutionError : public AddressError
{
QPID_MESSAGING_EXTERN ResolutionError(const std::string& msg);
};
struct AssertionFailed : public ResolutionError
{
QPID_MESSAGING_EXTERN AssertionFailed(const std::string& msg);
};
struct NotFound : public ResolutionError
{
QPID_MESSAGING_EXTERN NotFound(const std::string& msg);
};
/**
* Thrown when an address string with inalid sytanx is used.
*/
struct MalformedAddress : public AddressError
{
QPID_MESSAGING_EXTERN MalformedAddress(const std::string& msg);
};
struct ReceiverError : public LinkError
{
QPID_MESSAGING_EXTERN ReceiverError(const std::string&);
};
struct FetchError : public ReceiverError
{
QPID_MESSAGING_EXTERN FetchError(const std::string&);
};
struct NoMessageAvailable : public FetchError
{
QPID_MESSAGING_EXTERN NoMessageAvailable();
};
struct SenderError : public LinkError
{
QPID_MESSAGING_EXTERN SenderError(const std::string&);
};
struct SendError : public SenderError
{
QPID_MESSAGING_EXTERN SendError(const std::string&);
};
struct TargetCapacityExceeded : public SendError
{
QPID_MESSAGING_EXTERN TargetCapacityExceeded(const std::string&);
};
struct SessionError : public MessagingException
{
QPID_MESSAGING_EXTERN SessionError(const std::string&);
};
struct TransactionError : public SessionError
{
QPID_MESSAGING_EXTERN TransactionError(const std::string&);
};
struct TransactionAborted : public TransactionError
{
QPID_MESSAGING_EXTERN TransactionAborted(const std::string&);
};
struct UnauthorizedAccess : public SessionError
{
QPID_MESSAGING_EXTERN UnauthorizedAccess(const std::string&);
};
struct ConnectionError : public MessagingException
{
QPID_MESSAGING_EXTERN ConnectionError(const std::string&);
};
struct TransportFailure : public MessagingException
{
QPID_MESSAGING_EXTERN TransportFailure(const std::string&);
};
}} // namespace qpid::messaging
#endif /*!QPID_MESSAGING_EXCEPTIONS_H*/

View file

@ -24,6 +24,7 @@
#include "qpid/sys/IntegerTypes.h"
#include "qpid/Address.h"
#include "qpid/CommonImportExport.h"
#include <vector>
namespace qpid {
namespace sys {
@ -40,10 +41,10 @@ namespace SystemInfo {
QPID_COMMON_EXTERN long concurrency();
/**
* Get the local host name and set it in the specified TcpAddress.
* Get the local host name and set it in the specified.
* Returns false if it can't be obtained and sets errno to any error value.
*/
QPID_COMMON_EXTERN bool getLocalHostname (TcpAddress &address);
QPID_COMMON_EXTERN bool getLocalHostname (Address &address);
QPID_COMMON_EXTERN void getLocalIpAddresses (uint16_t port, std::vector<Address> &addrList);

View file

@ -49,16 +49,18 @@ class Thread
QPID_COMMON_EXTERN explicit Thread(qpid::sys::Runnable*);
QPID_COMMON_EXTERN explicit Thread(qpid::sys::Runnable&);
QPID_COMMON_EXTERN void join();
QPID_COMMON_EXTERN operator bool();
QPID_COMMON_EXTERN bool operator==(const Thread&) const;
QPID_COMMON_EXTERN bool operator!=(const Thread&) const;
QPID_COMMON_EXTERN unsigned long id();
QPID_COMMON_EXTERN void join();
QPID_COMMON_EXTERN static Thread current();
/** ID of current thread for logging.
* Workaround for broken Thread::current() in APR
*/
static unsigned long logId() { return current().id(); }
QPID_COMMON_EXTERN static unsigned long logId();
};
}}

View file

@ -58,20 +58,15 @@ class Duration;
* accessors to its internal state. If you think you want to replace its value,
* you need to construct a new AbsTime and assign it, viz:
*
* AbsTime when = AbsTime::now();
* AbsTime when = now();
* ...
* when = AbsTime(when, 2*TIME_SEC); // Advance timer 2 secs
*
* If for some reason you need access to the internal nanosec value you need
* to convert the AbsTime to a Duration and use its conversion to int64_t, viz:
* AbsTime is not intended to be used to represent calendar dates/times
* but you can construct a Duration since the Unix Epoch, 1970-1-1-00:00,
* so that you can convert to a date/time if needed:
*
* AbsTime now = AbsTime::now();
*
* int64_t ns = Duration(now);
*
* However note that the nanosecond value that is returned here is not
* defined to be anything in particular and could vary from platform to
* platform.
* int64_t nanosec_since_epoch = Duration(EPOCH, now());
*
* There are some sensible operations that are currently missing from
* AbsTime, but nearly all that's needed can be done with a mixture of
@ -84,20 +79,22 @@ class Duration;
*/
class AbsTime {
friend class Duration;
friend class Condition;
TimePrivate timepoint;
public:
QPID_COMMON_EXTERN inline AbsTime() {}
inline AbsTime() : timepoint() {}
QPID_COMMON_EXTERN AbsTime(const AbsTime& time0, const Duration& duration);
// Default assignment operation fine
// Default copy constructor fine
QPID_COMMON_EXTERN static AbsTime now();
QPID_COMMON_EXTERN static AbsTime FarFuture();
const TimePrivate& getPrivate(void) const { return timepoint; }
QPID_COMMON_EXTERN static AbsTime Epoch();
bool operator==(const AbsTime& t) const { return t.timepoint == timepoint; }
template <class S> void serialize(S& s) { s(timepoint); }
friend bool operator<(const AbsTime& a, const AbsTime& b);
friend bool operator>(const AbsTime& a, const AbsTime& b);
@ -122,8 +119,7 @@ class Duration {
friend class AbsTime;
public:
QPID_COMMON_EXTERN inline Duration(int64_t time0);
QPID_COMMON_EXTERN explicit Duration(const AbsTime& time0);
QPID_COMMON_EXTERN inline Duration(int64_t time0 = 0);
QPID_COMMON_EXTERN explicit Duration(const AbsTime& start, const AbsTime& finish);
inline operator int64_t() const;
};
@ -156,6 +152,9 @@ const Duration TIME_NSEC = 1;
/** Value to represent an infinite timeout */
const Duration TIME_INFINITE = std::numeric_limits<int64_t>::max();
/** Absolute time point for the Unix epoch: 1970-01-01T00:00:00 */
const AbsTime EPOCH = AbsTime::Epoch();
/** Time greater than any other time */
const AbsTime FAR_FUTURE = AbsTime::FarFuture();

View file

@ -65,7 +65,7 @@ void Condition::wait(Mutex& mutex) {
bool Condition::wait(Mutex& mutex, const AbsTime& absoluteTime){
struct timespec ts;
toTimespec(ts, Duration(absoluteTime));
toTimespec(ts, Duration(EPOCH, absoluteTime));
int status = pthread_cond_timedwait(&condition, &mutex.mutex, &ts);
if (status != 0) {
if (status == ETIMEDOUT) return false;

View file

@ -23,6 +23,7 @@
*/
#include "qpid/Exception.h"
#include "qpid/Msg.h"
#include <cerrno>
#include <assert.h>

View file

@ -1,5 +1,5 @@
#ifndef QPID_MESSAGING_CODEC_H
#define QPID_MESSAGING_CODEC_H
#ifndef QPID_TYPES_EXCEPTION_H
#define QPID_TYPES_EXCEPTION_H
/*
*
@ -21,24 +21,24 @@
* under the License.
*
*/
#include <string>
#include "qpid/client/ClientImportExport.h"
#include "qpid/types/ImportExport.h"
namespace qpid {
namespace messaging {
namespace types {
class Variant;
/**
*
*/
class Codec
class Exception : public std::exception
{
public:
QPID_CLIENT_EXTERN virtual ~Codec() {}
virtual void encode(const Variant&, std::string&) = 0;
virtual void decode(const std::string&, Variant&) = 0;
private:
};
}} // namespace qpid::messaging
QPID_TYPES_EXTERN explicit Exception(const std::string& message=std::string()) throw();
QPID_TYPES_EXTERN virtual ~Exception() throw();
QPID_TYPES_EXTERN virtual const char* what() const throw();
#endif /*!QPID_MESSAGING_CODEC_H*/
private:
const std::string message;
};
}} // namespace qpid::types
#endif /*!QPID_TYPES_EXCEPTION_H*/

View file

@ -0,0 +1,33 @@
#ifndef QPID_TYPES_IMPORTEXPORT_H
#define QPID_TYPES_IMPORTEXPORT_H
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#if defined(WIN32) && !defined(QPID_DECLARE_STATIC)
#if defined(TYPES_EXPORT) || defined (qpidtypes_EXPORTS)
#define QPID_TYPES_EXTERN __declspec(dllexport)
#else
#define QPID_TYPES_EXTERN __declspec(dllimport)
#endif
#else
#define QPID_TYPES_EXTERN
#endif
#endif /*!QPID_TYPES_IMPORTEXPORT_H*/

View file

@ -0,0 +1,94 @@
#ifndef QPID_TYPES_UUID_H
#define QPID_TYPES_UUID_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/types/ImportExport.h"
#include <iosfwd>
#include <string>
namespace qpid {
namespace types {
class Uuid
{
public:
static const size_t SIZE;
/**
* If unique is true, this will generate a new unique uuid, if not
* it will construct a null uuid.
*/
QPID_TYPES_EXTERN Uuid(bool unique=false);
QPID_TYPES_EXTERN Uuid(const Uuid&);
QPID_TYPES_EXTERN Uuid& operator=(const Uuid&);
/** Copy the UUID from data16, which must point to a 16-byte UUID */
QPID_TYPES_EXTERN Uuid(const unsigned char* data16);
/** Set to a new unique identifier. */
QPID_TYPES_EXTERN void generate();
/** Set to all zeros. */
QPID_TYPES_EXTERN void clear();
/** Test for null (all zeros). */
QPID_TYPES_EXTERN bool isNull() const;
QPID_TYPES_EXTERN operator bool() const;
QPID_TYPES_EXTERN bool operator!() const;
/** String value in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */
QPID_TYPES_EXTERN std::string str() const;
QPID_TYPES_EXTERN size_t size() const;
QPID_TYPES_EXTERN const unsigned char* data() const;
friend QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&);
friend QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&);
friend QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&);
friend QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&);
friend QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&);
friend QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&);
friend QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid);
friend QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&);
private:
unsigned char bytes[16];
};
/** Returns true if the uuids are equal, false otherwise. **/
QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&);
/** Returns true if the uuids are NOT equal, false if they are. **/
QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&);
QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&);
QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&);
QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&);
QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&);
/** Print in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */
QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid);
/** Read from format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb. */
QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&);
}} // namespace qpid::types
#endif /*!QPID_TYPES_UUID_H*/

View file

@ -0,0 +1,173 @@
#ifndef QPID_TYPES_VARIANT_H
#define QPID_TYPES_VARIANT_H
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include <list>
#include <map>
#include <ostream>
#include <string>
#include "Uuid.h"
#include "qpid/types/Exception.h"
#include "qpid/sys/IntegerTypes.h"
#include "qpid/types/ImportExport.h"
namespace qpid {
namespace types {
/**
* Thrown when an illegal conversion of a variant is attempted.
*/
struct InvalidConversion : public Exception
{
InvalidConversion(const std::string& msg);
};
enum VariantType {
VAR_VOID = 0,
VAR_BOOL,
VAR_UINT8,
VAR_UINT16,
VAR_UINT32,
VAR_UINT64,
VAR_INT8,
VAR_INT16,
VAR_INT32,
VAR_INT64,
VAR_FLOAT,
VAR_DOUBLE,
VAR_STRING,
VAR_MAP,
VAR_LIST,
VAR_UUID
};
class VariantImpl;
/**
* Represents a value of variable type.
*/
class Variant
{
public:
typedef std::map<std::string, Variant> Map;
typedef std::list<Variant> List;
QPID_TYPES_EXTERN Variant();
QPID_TYPES_EXTERN Variant(bool);
QPID_TYPES_EXTERN Variant(uint8_t);
QPID_TYPES_EXTERN Variant(uint16_t);
QPID_TYPES_EXTERN Variant(uint32_t);
QPID_TYPES_EXTERN Variant(uint64_t);
QPID_TYPES_EXTERN Variant(int8_t);
QPID_TYPES_EXTERN Variant(int16_t);
QPID_TYPES_EXTERN Variant(int32_t);
QPID_TYPES_EXTERN Variant(int64_t);
QPID_TYPES_EXTERN Variant(float);
QPID_TYPES_EXTERN Variant(double);
QPID_TYPES_EXTERN Variant(const std::string&);
QPID_TYPES_EXTERN Variant(const char*);
QPID_TYPES_EXTERN Variant(const Map&);
QPID_TYPES_EXTERN Variant(const List&);
QPID_TYPES_EXTERN Variant(const Variant&);
QPID_TYPES_EXTERN Variant(const Uuid&);
QPID_TYPES_EXTERN ~Variant();
QPID_TYPES_EXTERN VariantType getType() const;
QPID_TYPES_EXTERN bool isVoid() const;
QPID_TYPES_EXTERN Variant& operator=(bool);
QPID_TYPES_EXTERN Variant& operator=(uint8_t);
QPID_TYPES_EXTERN Variant& operator=(uint16_t);
QPID_TYPES_EXTERN Variant& operator=(uint32_t);
QPID_TYPES_EXTERN Variant& operator=(uint64_t);
QPID_TYPES_EXTERN Variant& operator=(int8_t);
QPID_TYPES_EXTERN Variant& operator=(int16_t);
QPID_TYPES_EXTERN Variant& operator=(int32_t);
QPID_TYPES_EXTERN Variant& operator=(int64_t);
QPID_TYPES_EXTERN Variant& operator=(float);
QPID_TYPES_EXTERN Variant& operator=(double);
QPID_TYPES_EXTERN Variant& operator=(const std::string&);
QPID_TYPES_EXTERN Variant& operator=(const char*);
QPID_TYPES_EXTERN Variant& operator=(const Map&);
QPID_TYPES_EXTERN Variant& operator=(const List&);
QPID_TYPES_EXTERN Variant& operator=(const Variant&);
QPID_TYPES_EXTERN Variant& operator=(const Uuid&);
QPID_TYPES_EXTERN Variant& fromString(const std::string&);
QPID_TYPES_EXTERN bool asBool() const;
QPID_TYPES_EXTERN uint8_t asUint8() const;
QPID_TYPES_EXTERN uint16_t asUint16() const;
QPID_TYPES_EXTERN uint32_t asUint32() const;
QPID_TYPES_EXTERN uint64_t asUint64() const;
QPID_TYPES_EXTERN int8_t asInt8() const;
QPID_TYPES_EXTERN int16_t asInt16() const;
QPID_TYPES_EXTERN int32_t asInt32() const;
QPID_TYPES_EXTERN int64_t asInt64() const;
QPID_TYPES_EXTERN float asFloat() const;
QPID_TYPES_EXTERN double asDouble() const;
QPID_TYPES_EXTERN std::string asString() const;
QPID_TYPES_EXTERN Uuid asUuid() const;
QPID_TYPES_EXTERN operator bool() const;
QPID_TYPES_EXTERN operator uint8_t() const;
QPID_TYPES_EXTERN operator uint16_t() const;
QPID_TYPES_EXTERN operator uint32_t() const;
QPID_TYPES_EXTERN operator uint64_t() const;
QPID_TYPES_EXTERN operator int8_t() const;
QPID_TYPES_EXTERN operator int16_t() const;
QPID_TYPES_EXTERN operator int32_t() const;
QPID_TYPES_EXTERN operator int64_t() const;
QPID_TYPES_EXTERN operator float() const;
QPID_TYPES_EXTERN operator double() const;
QPID_TYPES_EXTERN operator std::string() const;
QPID_TYPES_EXTERN operator Uuid() const;
QPID_TYPES_EXTERN const Map& asMap() const;
QPID_TYPES_EXTERN Map& asMap();
QPID_TYPES_EXTERN const List& asList() const;
QPID_TYPES_EXTERN List& asList();
/**
* Unlike asString(), getString() will not do any conversions and
* will throw InvalidConversion if the type is not STRING.
*/
QPID_TYPES_EXTERN const std::string& getString() const;
QPID_TYPES_EXTERN std::string& getString();
QPID_TYPES_EXTERN void setEncoding(const std::string&);
QPID_TYPES_EXTERN const std::string& getEncoding() const;
QPID_TYPES_EXTERN bool isEqualTo(const Variant& a) const;
QPID_TYPES_EXTERN void reset();
private:
VariantImpl* impl;
};
QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream& out, const Variant& value);
QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::Map& map);
QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream& out, const Variant::List& list);
QPID_TYPES_EXTERN bool operator==(const Variant& a, const Variant& b);
}} // namespace qpid::types
#endif /*!QPID_TYPES_VARIANT_H*/

View file

@ -1,35 +0,0 @@
# libqpidclient.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='libqpidclient.so.2'
# Names of this library.
library_names='libqpidclient.so.2.0.0 libqpidclient.so.2 libqpidclient.so'
# The name of the static archive.
old_library=''
# Libraries that this one depends upon.
dependency_libs=' -L/awips2/qpid/lib -L/usr/local/lib -L/usr/lib/openais -L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync /awips2/qpid/lib/libqpidcommon.la -lboost_program_options -lboost_filesystem -ldl -lrt -luuid -lcoroipcc'
# Version information for libqpidclient.
current=2
age=0
revision=0
# Is this an already installed library?
installed=yes
# Should we warn about portability when linking against -modules?
shouldnotlink=no
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir='/awips2/qpid/lib'

View file

@ -0,0 +1 @@
libqpidclient.so.4.0.0

View file

@ -0,0 +1 @@
libqpidclient.so.4.0.0

Binary file not shown.

View file

@ -1,35 +0,0 @@
# libqpidcommon.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='libqpidcommon.so.2'
# Names of this library.
library_names='libqpidcommon.so.2.0.0 libqpidcommon.so.2 libqpidcommon.so'
# The name of the static archive.
old_library=''
# Libraries that this one depends upon.
dependency_libs=' -L/awips2/qpid/lib -L/usr/local/lib -L/usr/lib/openais -L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync -lboost_program_options -lboost_filesystem -luuid -ldl -lrt -lcoroipcc'
# Version information for libqpidcommon.
current=2
age=0
revision=0
# Is this an already installed library?
installed=yes
# Should we warn about portability when linking against -modules?
shouldnotlink=no
# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''
# Directory that this library needs to be installed in:
libdir='/awips2/qpid/lib'

View file

@ -0,0 +1 @@
libqpidcommon.so.4.0.0

View file

@ -0,0 +1 @@
libqpidcommon.so.4.0.0

Binary file not shown.

View file

@ -0,0 +1 @@
libqpidmessaging.so.3.0.2

View file

@ -0,0 +1 @@
libqpidmessaging.so.3.0.2

Binary file not shown.

View file

@ -0,0 +1 @@
libqpidtypes.so.1.1.1

View file

@ -0,0 +1 @@
libqpidtypes.so.1.1.1

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more