Files
pip/main.cpp
peri4 1a214cff4e version 3.12.0
split pibase.h into 2 files
add PIScopeExitCall
2023-06-18 22:02:20 +03:00

78 lines
2.5 KiB
C++

#include "pibytearray.h"
#include "piiostream.h"
#include "pijson.h"
#include "pimathbase.h"
#include "pip.h"
#include "pivaluetree.h"
using namespace PICoutManipulators;
struct SomeType {
int i;
float f;
};
PICout operator<<(PICout c, const SomeType & v) {
c << "SomeType(" << v.i << "," << v.f << ")";
return c;
}
REGISTER_VARIANT(SomeType);
REGISTER_VARIANT_CAST(SomeType, PIString) {
return PIString::fromNumber(v.i) + ";" + PIString::fromNumber(v.f);
}
REGISTER_VARIANT_CAST(PIString, SomeType) {
PIStringList sl = v.split(';').resize(2);
return SomeType{sl[0].toInt(), sl[1].toFloat()};
}
int main(int argc, char * argv[]) {
/*PIValueTree root;
root.addChild({"bool", PIVariant(false)});
root.addChild({"integer", PIVariant(256)});
root.addChild({"string", PIVariant("str")});
for (auto it: root.children()) {
piCout << it.name() << it.value();
}
piCout << piSerialize(root);*/
// PIVariant v = PIVariant::fromType(PIVariant::typeID<double>());
// piCout << v;
// piCout << v.toString();
// v.setValueFromString("2E-3");
// piCout << v.value<double>();
// piCout << v.toString();
// piCout << PITime();
// piCout << PITime::fromString("05:12:56");
// piCout << PITime::fromString("05: 12:56");
// piCout << PITime::fromString("05.12:56");
// piCout << PITime::fromString("05.12:56:333", "h.m.s");
// piCout << PIDateTime::fromString(PIDateTime::current().toString("__yyyy_MM_d__hh_mm_ss__"), "__yyyy_MM_d__hh_mm_ss__");
/*piCout << PIVariantTypes::Color();
piCout << PIVariantTypes::Color(0xFF00FFff);
PIVariant v = PIVariant::fromType(PIVariant::typeName<PIVariantTypes::Color>());
piCout << PIVariant::typeName<PIPointd>();
piCout << PIVariant::typeFromName(PIVariant::typeName<PIVariantTypes::Color>());
piCout << PIVariant::typeIDFromName(PIVariant::typeName<PIVariantTypes::Color>());
piCout << PIVariant::typeIDFromType(PIVariant::pivColor);
v.setValueFromString("0xFF00FFff");
piCout << v;*/
// PIVariantTypes::Enum e;
// e.enum_name = "MyEnum";
// e << PIVariantTypes::Enumerator(10105, "Null") << PIVariantTypes::Enumerator(20, "Sec") << PIVariantTypes::Enumerator(100, "Fir");
// e.selectValue(20);
// piCout << e.toString();
// piCout << PIVariantTypes::Enum::fromString(e.toString()).toString();
// piCout << PIVariantTypes::Enum::fromString("\"MyEnum\"(\"Null\":10105 \"Sec\":20 \"Fir\":100) 20").toString();
{
PIScopeExitCall ec([]() { piCout << "exit"; });
ec.cancel();
}
piCout << PIVariantTypes::Enum::fromString("(\"DeformationWithTemperature2\":1\n;Sigma1:2\n;Tau:3)").toString();
return 0;
}