From c256b20602a42a3d33f36bb0e8d9692906d282a6 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 12 Oct 2006 18:52:49 +0000 Subject: Converted broker to a class for use in tests, plugins etc. qpid::Exception base class for all exceptions, inherits std::exception. Require boost on all platforms: http://www.boost.org, 'yum boost' on fedora. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@463376 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/qpidd/Makefile | 42 +++++++++++++++++++++++++++++++++++++++ cpp/qpidd/src/qpidd.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 cpp/qpidd/Makefile create mode 100644 cpp/qpidd/src/qpidd.cpp (limited to 'cpp/qpidd') diff --git a/cpp/qpidd/Makefile b/cpp/qpidd/Makefile new file mode 100644 index 0000000000..f2dca4df3b --- /dev/null +++ b/cpp/qpidd/Makefile @@ -0,0 +1,42 @@ +# +# Copyright (c) 2006 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. +# + +# +# Build qpidd broker daemon executable. +# + +QPID_HOME = ../.. +include $(QPID_HOME)/cpp/options.mk +TARGET=$(BROKER) +SOURCES= $(wildcard src/*.cpp) +OBJECTS= $(subst .cpp,.o,$(SOURCES)) + + +.PHONY: all clean test + +all: $(TARGET) + +test: + @$(MAKE) -C test all + +clean: + -@rm -f $(OBJECTS) src/*.d $(TARGET) + @$(MAKE) -C test clean + +$(TARGET): $(OBJECTS) + $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) -lapr-1 $(COMMON_LIB) $(BROKER_LIB) + +-include $(SOURCES:.cpp=.d) diff --git a/cpp/qpidd/src/qpidd.cpp b/cpp/qpidd/src/qpidd.cpp new file mode 100644 index 0000000000..51be80d51d --- /dev/null +++ b/cpp/qpidd/src/qpidd.cpp @@ -0,0 +1,52 @@ +/* + * + * Copyright (c) 2006 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 "../../broker/inc/../../broker/inc/Broker.h" +#include "../../broker/inc/Broker.h" +#include "../../broker/inc/Configuration.h" +#include "../../broker/inc/SessionHandlerFactoryImpl.h" +#include "Acceptor.h" +#include "QpidError.h" +#include "apr_signal.h" +#include +#include + +using namespace qpid::broker; +using namespace qpid::io; + +void handle_signal(int /*signal*/){ + std::cout << "Shutting down..." << std::endl; +} + +int main(int argc, char** argv) +{ + Configuration config; + try { + config.parse(argc, argv); + if(config.isHelp()){ + config.usage(); + }else{ + apr_signal(SIGINT, handle_signal); + Broker::shared_ptr broker = Broker::create(config); + broker->run(); + } + return 0; + } catch(std::exception e) { + std::cout << e.what() << std::endl; + } + return 1; +} -- cgit v1.2.1