From e0964bbc4f66e7d193abd249213c9cf762fd0294 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 30 Dec 2020 15:37:39 +0800 Subject: import(life): ... --- works/life/cpp-practicum/Vendor.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 works/life/cpp-practicum/Vendor.cpp (limited to 'works/life/cpp-practicum/Vendor.cpp') diff --git a/works/life/cpp-practicum/Vendor.cpp b/works/life/cpp-practicum/Vendor.cpp new file mode 100644 index 0000000..7544451 --- /dev/null +++ b/works/life/cpp-practicum/Vendor.cpp @@ -0,0 +1,33 @@ +#include "Vendor.hpp" + +#include + +QTextStream &operator>>(QTextStream &left, Vendor &right) { + auto line = left.readLine(); + + auto fields = line.split(QChar('|')); + + if (fields.size() != 5) { + throw SerializationException("Line has not 5 parts."); + } + + bool ok; + auto id = fields[0].toInt(&ok); + if (!ok) { + throw SerializationException("Part 1 is not a number."); + } + + right.SetId(id); + right.SetName(fields[1].toStdU16String()); + right.SetType(fields[2].toStdU16String()); + right.SetAddress(fields[3].toStdU16String()); + right.SetPhone(fields[4].toStdU16String()); + + return left; +} + +QTextStream &operator<<(QTextStream &left, const Vendor &right) { + left << right.GetId() << '|' << right.GetName() << '|' << right.GetType() + << '|' << right.GetAddress() << '|' << right.GetPhone(); + return left; +} -- cgit v1.2.3