#include "pikbdlistener.h" #include "piconnection.h" #include "piconfig.h" #include "piscreentiles.h" #include "piscreen.h" #include "piethernet.h" #include "piintrospection.h" struct MS { //MS() {i = 0; f = 0.;} int i; float f; PIString s; }; PIByteArray & operator<<(PIByteArray & ba, const MS & v) {ba << v.i << v.f << v.s; return ba;} PIByteArray & operator>>(PIByteArray & ba, MS & v) {ba >> v.i >> v.f >> v.s; return ba;} PICout operator <<(PICout c, const MS & v) {c << "(" << v.i << v.f << v.s << ")"; return c;} REGISTER_VARIANT(MS) REGISTER_VARIANT_CAST(MS, int) {return v.i;} REGISTER_VARIANT_CAST(MS, float) {return v.f;} REGISTER_VARIANT_CAST(MS, PIString) {return v.s;} int main (int argc, char * argv[]) { //PIByteArray ba; /*PIKbdListener kbd; kbd.enableExitCapture(); PIString str; str.reserve(1024*1024); PIINTROSPECTION_START //piCout << PIINTROSPECTION_CONTAINERS->count; WAIT_FOR_EXIT*/ PIVector vl; vl << PIVariant('2') << PIVariant(-5.5) << PIVariant(10) << PIVariant(complexd(2,3)) << PIVariant("text") << PIVariant(PIByteArray("bytearray", 9)) << PIVariant(PIDateTime::current()); piForeachC (PIVariant v, vl) piCout << v << v.value(); PIByteArray ba; ba << PIString("500"); piCout << PIVariant::fromValue(ba, "PIString"); piCout << PIVariant("PIString"); piCout << __PIVariantFunctions__::typeNameHelper(); piCout << __PIVariantInfoStorage__::get()->map->size(); for (PIMap::iterator i = __PIVariantInfoStorage__::get()->map->begin(); i != __PIVariantInfoStorage__::get()->map->end(); ++i) piCout << i.key() << i.value()->cast.size(); PIEthernet eth; piCout << eth.properties(); MS ms = (MS){-1, 3.3, "str"}; PIVariant mv = PIVariant::fromValue(ms); piCout << mv << mv.type(); piCout << mv.toInt(); piCout << mv.toFloat(); piCout << mv.toString(); piCout << ms << mv.value() << vl[0].value(); /*PIScreen screen; TileSimple window; window.back_format.color_back = PIScreenTypes::Red; window.content << TileSimple::Row("label", PIScreenTypes::CellFormat(PIScreenTypes::Black, PIScreenTypes::Transparent)); screen.rootTile()->addTile(&window); screen.enableExitCapture(PIKbdListener::F10); screen.start(); screen.waitForFinish();*/ return 0; }