summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-07-09 11:36:52 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-07-09 11:36:52 +0200
commit615d111395d7914baabe072a1fabbaa1a51a1f9f (patch)
treec7b1414b60b7d53cf750ac902a1d4f5b3d0a7222
parent2ed33e134f73769f8c25ac05d6f8c2b94a85e99a (diff)
feat&fix: fix parser.hpp, and add is_valid to fix example.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--examples/fix/fix.cc1
-rw-r--r--lib/fix/parser.hpp8
2 files changed, 7 insertions, 2 deletions
diff --git a/examples/fix/fix.cc b/examples/fix/fix.cc
index 6ca0e41..4a6fa8c 100644
--- a/examples/fix/fix.cc
+++ b/examples/fix/fix.cc
@@ -14,6 +14,7 @@ int main(int argc, char** argv)
snu::fix::range_data<char> fix = visitor.visit("8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107-18:15:16|98=0|108=30|10=062|");
std::cout << "magic: " << fix.msg_magic_ << std::endl;
+ std::cout << "is_valid: " << std::boolalpha << fix.is_valid() << std::endl;
for (auto fields : fix.msg_body_)
{
diff --git a/lib/fix/parser.hpp b/lib/fix/parser.hpp
index 254b23d..018648e 100644
--- a/lib/fix/parser.hpp
+++ b/lib/fix/parser.hpp
@@ -54,10 +54,12 @@ namespace snu::fix
char_type* ascii_bytes_;
uint16_t length_;
- bool isValid()
+ bool is_valid()
{
return ascii_bytes_ && length_ > 0;
}
+
+ operator bool() { return this->is_valid(); }
};
/// @brief Convert range to usable string.
@@ -87,10 +89,12 @@ namespace snu::fix
range_data& operator=(const range_data&) = default;
range_data(const range_data&) = default;
- bool isValid()
+ bool is_valid()
{
return !msg_magic_.empty() && msg_magic_.starts_with(range_data::begin);
}
+
+ operator bool() { return this->is_valid(); }
};
/// @brief visitor object which returns a fix::range_data instance.