diff options
| author | Alan Conway <aconway@apache.org> | 2008-04-07 21:16:48 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-04-07 21:16:48 +0000 |
| commit | 4c79a7d7d717cf28029237de6073c65670c2d7e9 (patch) | |
| tree | eaa98213ff44e9d76f4826c1fd02d1c439ca13da /cpp | |
| parent | b85ed9344b09b1db318ced3ac7026f6211974292 (diff) | |
| download | qpid-python-4c79a7d7d717cf28029237de6073c65670c2d7e9.tar.gz | |
rubygen/0-10/specification.rb
- operator << for generated types.
- src/tests/amqp_0_10/serialize.cpp
src/qpid/BoundedIterator.h, .cpp
- removed unused file
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@645699 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rwxr-xr-x | cpp/rubygen/0-10/specification.rb | 17 | ||||
| -rw-r--r-- | cpp/src/Makefile.am | 1 | ||||
| -rw-r--r-- | cpp/src/qpid/BoundedIterator.h | 67 | ||||
| -rw-r--r-- | cpp/src/tests/BoundedIterator.cpp | 75 | ||||
| -rw-r--r-- | cpp/src/tests/Makefile.am | 1 | ||||
| -rw-r--r-- | cpp/src/tests/amqp_0_10/serialize.cpp | 6 |
6 files changed, 13 insertions, 154 deletions
diff --git a/cpp/rubygen/0-10/specification.rb b/cpp/rubygen/0-10/specification.rb index 549a51fba0..83a7da07a2 100755 --- a/cpp/rubygen/0-10/specification.rb +++ b/cpp/rubygen/0-10/specification.rb @@ -86,9 +86,10 @@ class Specification < CppGen end genl scope("std::ostream& operator << (std::ostream& o, const #{x.classname}&#{"x" unless x.fields.empty?}) {") { - genl "return o << \"[#{x.fqname}\";"; + genl "o << \"[#{x.fqname}\";"; x.fields.each{ |f| genl "o << \" #{f.name}=\" << x.#{f.cppname};" } genl "o << \"];\";" + genl "return o;" } end @@ -158,7 +159,7 @@ class Specification < CppGen # Structs that must be generated early because # they are used by other definitions: each_class_ns { |c| - c.collect_all(AmqpStruct).each { |s| struct_h s if pregenerate? s } + c.collect_all(AmqpStruct).each { |s| struct_h s if pregenerate? s } } # Now dependent domains/structs and actions each_class_ns { |c| @@ -272,7 +273,11 @@ class Specification < CppGen genl "template <class T> #{name}(const T& t) : #{holder_base}(t) {}" genl "using #{holder_base}::operator=;" genl "void set(uint8_t classCode, uint8_t code);" - }}} + } + genl + genl "std::ostream& operator<<(std::ostream& o, const #{name}& h);" + } + } cpp_file("#{@dir}/#{name}") { include "#{@dir}/#{name}" @@ -286,7 +291,11 @@ class Specification < CppGen genl "case 0x#{s.full_code.to_s(16)}: *this=in_place<#{s.fqclassname}>(); break;" } genl "default: assert(0);" - }}}} + }} + genl + genl "std::ostream& operator<<(std::ostream& o, const #{name}& h) { return h.get() ? (o << *h.get()) : (o << \"<empty #{name}>\"); }" + } + } end def gen_visitable(base, subs) diff --git a/cpp/src/Makefile.am b/cpp/src/Makefile.am index fee1f228c4..4aed05a1ef 100644 --- a/cpp/src/Makefile.am +++ b/cpp/src/Makefile.am @@ -149,7 +149,6 @@ libqpidcommon_la_SOURCES = \ qpid/framing/MaxMethodBodySize.h \ qpid/framing/TransferContent.cpp \ qpid/assert.cpp qpid/assert.h \ - qpid/BoundedIterator.h \ qpid/Exception.cpp \ qpid/Plugin.cpp \ qpid/Url.cpp \ diff --git a/cpp/src/qpid/BoundedIterator.h b/cpp/src/qpid/BoundedIterator.h deleted file mode 100644 index 1ff0f01ede..0000000000 --- a/cpp/src/qpid/BoundedIterator.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef QPID_BOUNDEDITERATOR_H -#define QPID_BOUNDEDITERATOR_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 <boost/iterator/iterator_adaptor.hpp> -#include "qpid/Exception.h" - -namespace qpid { - -struct OutOfBoundsException : public Exception {}; - - -/** - * Iterator wrapper that throws an exception if iterated beyound the bounds. - */ -template <class Iter> -class BoundedIterator : - public boost::iterator_adaptor<BoundedIterator<Iter>, Iter> -{ - public: - BoundedIterator(const Iter& begin, const Iter& end_) : - BoundedIterator::iterator_adaptor_(begin), end(end_) {} - - operator Iter() const { return this->base_reference(); } - - private: - typename boost::iterator_reference<Iter>::type dereference() const { - if (this->base_reference() == end) throw OutOfBoundsException(); - return *(this->base_reference()); - } - - void increment() { - if (this->base_reference() == end) throw OutOfBoundsException(); - ++this->base_reference(); - } - - /** Advance requires Iter to be comparable */ - void advance(typename boost::iterator_difference<Iter>::type n) { - this->base_reference() += n; - if (this->base_reference() > end) throw OutOfBoundsException(); - } - - Iter end; - friend class boost::iterator_core_access; -}; -} // namespace qpid - -#endif /*!QPID_BOUNDEDITERATOR_H*/ diff --git a/cpp/src/tests/BoundedIterator.cpp b/cpp/src/tests/BoundedIterator.cpp deleted file mode 100644 index 18904b739f..0000000000 --- a/cpp/src/tests/BoundedIterator.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * 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 "unit_test.h" -#include "qpid/BoundedIterator.h" -#include <string.h> - -using namespace std; -using namespace qpid; - -QPID_AUTO_TEST_SUITE(BoundedIteratorTestSuite) - -BOOST_AUTO_TEST_CASE(testIncrement) { - const char* b="ab"; - const char* e=b+strlen(b); - BoundedIterator<const char*> i(b,e); - BOOST_CHECK_EQUAL('a', *i); - ++i; - BOOST_CHECK_EQUAL('b', *i); - ++i; - BOOST_CHECK(static_cast<const char*>(i) == e); - try { - ++i; - BOOST_FAIL("Expected exception"); - } - catch (const OutOfBoundsException&) {} -} - -BOOST_AUTO_TEST_CASE(testAdvance) { - const char* b="abc"; - const char* e=b+strlen(b); - BoundedIterator<const char*> i(b,e); - i += 2; - BOOST_CHECK_EQUAL('c', *i); - try { - i += 2; - BOOST_FAIL("Expected exception"); - } - catch (const OutOfBoundsException&) {} -} - -BOOST_AUTO_TEST_CASE(testDeref) { - const char* b="ab"; - const char* e=b+strlen(b); - BoundedIterator<const char*> i(b,e); - i += 2; - BOOST_CHECK(static_cast<const char*>(i) == e); - try { - (void)*i; - BOOST_FAIL("Expected exception"); - } - catch (const OutOfBoundsException&) {} -} - - - - -QPID_AUTO_TEST_SUITE_END() diff --git a/cpp/src/tests/Makefile.am b/cpp/src/tests/Makefile.am index fd3f67e99f..487fb08c9a 100644 --- a/cpp/src/tests/Makefile.am +++ b/cpp/src/tests/Makefile.am @@ -42,7 +42,6 @@ unit_test_SOURCES= unit_test.cpp unit_test.h \ amqp_0_10/serialize.cpp \ amqp_0_10/ProxyTemplate.cpp \ amqp_0_10/apply.cpp \ - BoundedIterator.cpp \ IncompleteMessageList.cpp \ amqp_0_10/Map.cpp diff --git a/cpp/src/tests/amqp_0_10/serialize.cpp b/cpp/src/tests/amqp_0_10/serialize.cpp index a8f66df215..fa00e79ff3 100644 --- a/cpp/src/tests/amqp_0_10/serialize.cpp +++ b/cpp/src/tests/amqp_0_10/serialize.cpp @@ -252,12 +252,6 @@ struct DummyPacked { char k; DummyPacked(char a=0, char b=0, char c=0) : i(a), j(b), k(c) {} template <class S> void serialize(S& s) { s(i)(j)(k); } - - string str() const { - ostringstream os; - os << i << j << k; - return os.str(); - } }; Packer<DummyPacked> serializable(DummyPacked& d) { return Packer<DummyPacked>(d); } |
