Skip to content

Commit 2566da1

Browse files
committed
Feature: Float array extraction
1 parent 3f3a497 commit 2566da1

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

src/eckit/message/Message.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ void Message::getDoubleArray(const std::string& key, std::vector<double>& v) con
9898
return content_->getDoubleArray(key, v);
9999
}
100100

101+
void Message::getFloatArray(const std::string& key, std::vector<float>& v) const {
102+
return content_->getFloatArray(key, v);
103+
}
104+
101105
size_t Message::getSize(const std::string& key) const {
102106
return content_->getSize(key);
103107
}
@@ -106,6 +110,9 @@ void Message::getDoubleArray(const std::string& key, double* data, size_t len) c
106110
return content_->getDoubleArray(key, data, len);
107111
}
108112

113+
void Message::getFloatArray(const std::string& key, float* data, size_t len) const {
114+
return content_->getFloatArray(key, data, len);
115+
}
109116

110117
eckit::Buffer Message::decode() const {
111118
return lookupDecoder().decode(*this);

src/eckit/message/Message.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,12 @@ class Message {
7878
long getLong(const std::string& key) const;
7979
double getDouble(const std::string& key) const;
8080
void getDoubleArray(const std::string& key, std::vector<double>&) const;
81+
void getFloatArray(const std::string& key, std::vector<float>&) const;
8182
size_t getSize(const std::string& key) const;
8283

8384
// Write double array at key to pre allocated array
8485
void getDoubleArray(const std::string& key, double* data, size_t len) const;
86+
void getFloatArray(const std::string& key, float* data, size_t len) const;
8587

8688
void getMetadata(MetadataGatherer&, GetMetadataOptions options = GetMetadataOptions{}) const;
8789

src/eckit/message/MessageContent.cc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,24 @@ void MessageContent::getDoubleArray(const std::string& key, std::vector<double>&
6161
throw eckit::SeriousBug(oss.str());
6262
}
6363

64+
void MessageContent::getFloatArray(const std::string& key, std::vector<float>&) const {
65+
std::ostringstream oss;
66+
oss << "Not implemented " << *this << " getFloatArray(key, vector<float>&)";
67+
throw eckit::SeriousBug(oss.str());
68+
}
69+
6470
void MessageContent::getDoubleArray(const std::string& key, double* data, size_t len) const {
6571
std::ostringstream oss;
6672
oss << "Not implemented " << *this << " getDoubleArray(key, double*, len)";
6773
throw eckit::SeriousBug(oss.str());
6874
}
6975

76+
void MessageContent::getFloatArray(const std::string& key, float* data, size_t len) const {
77+
std::ostringstream oss;
78+
oss << "Not implemented " << *this << " getFloatArray(key, float*, len)";
79+
throw eckit::SeriousBug(oss.str());
80+
}
81+
7082
size_t MessageContent::getSize(const std::string& key) const {
7183
std::ostringstream oss;
7284
oss << "Not implemented " << *this << " getSize(key)";

src/eckit/message/MessageContent.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,13 @@ class MessageContent : public eckit::Counted {
6363

6464
virtual void getDoubleArray(const std::string& key, std::vector<double>&) const;
6565

66+
virtual void getFloatArray(const std::string& key, std::vector<float>&) const;
67+
6668
virtual size_t getSize(const std::string& key) const;
6769

6870
// Write double array at key to pre allocated array.
6971
virtual void getDoubleArray(const std::string& key, double* data, size_t len) const;
72+
virtual void getFloatArray(const std::string& key, float* data, size_t len) const;
7073

7174
virtual eckit::DataHandle* readHandle() const;
7275

0 commit comments

Comments
 (0)