summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing/FieldTable.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-09-19 17:49:18 +0000
committerGordon Sim <gsim@apache.org>2008-09-19 17:49:18 +0000
commit5260106042c9d9e4bfffa97cdd6c5da8e6b21a79 (patch)
tree85d83ce1ded20963b97348c2147ef7d4934003bb /cpp/src/qpid/framing/FieldTable.cpp
parentd2af591a59a1bbe07d459ba2ec5f598fcedb5560 (diff)
downloadqpid-python-5260106042c9d9e4bfffa97cdd6c5da8e6b21a79.tar.gz
Return success indicator for getTable/getArray, cleanup implementation a little.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@697165 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing/FieldTable.cpp')
-rw-r--r--cpp/src/qpid/framing/FieldTable.cpp17
1 files changed, 4 insertions, 13 deletions
diff --git a/cpp/src/qpid/framing/FieldTable.cpp b/cpp/src/qpid/framing/FieldTable.cpp
index 5a5d755fe8..a85f5e0918 100644
--- a/cpp/src/qpid/framing/FieldTable.cpp
+++ b/cpp/src/qpid/framing/FieldTable.cpp
@@ -123,21 +123,12 @@ int FieldTable::getInt(const std::string& name) const {
// return getValue<uint64_t>(name);
//}
-void FieldTable::getTable(const std::string& name, FieldTable& value) const {
- FieldTable::ValuePtr vptr = get(name);
- if (vptr) {
- value = vptr->get<const FieldTable&>();
- }
+bool FieldTable::getTable(const std::string& name, FieldTable& value) const {
+ return getEncodedValue<FieldTable>(get(name), value);
}
-void FieldTable::getArray(const std::string& name, Array& value) const {
- FieldTable::ValuePtr vptr = get(name);
- if (vptr) {
- const EncodedValue<Array>* ev = dynamic_cast< EncodedValue<Array>* >(&(vptr->getData()));
- if (ev != 0) {
- value = ev->getValue();
- }
- }
+bool FieldTable::getArray(const std::string& name, Array& value) const {
+ return getEncodedValue<Array>(get(name), value);
}
void FieldTable::encode(Buffer& buffer) const{