diff --git a/src_main/core/pivarianttypes.cpp b/src_main/core/pivarianttypes.cpp index 3991cb7a..2045a495 100644 --- a/src_main/core/pivarianttypes.cpp +++ b/src_main/core/pivarianttypes.cpp @@ -104,13 +104,14 @@ PIPropertyStorage PIVariantTypes::IODevice::get() const { } -PIString PIVariantTypes::IODevice::toString() const { +PIString PIVariantTypes::IODevice::toPICout() const { PIString s; - s << "IODevice(" << prefix << ", "; + s << "IODevice(" << prefix << ", mode="; int rwc = 0; if (mode & 1) {s << "r"; ++rwc;} if (mode & 2) {s << "w"; ++rwc;} if (rwc == 1) s << "o"; + s << ", flags="; if (options != 0) { if (((PIIODevice::DeviceOptions)options)[PIIODevice::BlockingRead]) s << " br"; diff --git a/src_main/core/pivarianttypes.h b/src_main/core/pivarianttypes.h index b0a1b321..bb48c060 100644 --- a/src_main/core/pivarianttypes.h +++ b/src_main/core/pivarianttypes.h @@ -81,7 +81,7 @@ namespace PIVariantTypes { IODevice(); void set(const PIPropertyStorage & ps); PIPropertyStorage get() const; - PIString toString() const; + PIString toPICout() const; PIString prefix; int mode; // PIIODevice::DeviceMode int options; // PIIODevice::DeviceOptions @@ -112,7 +112,7 @@ inline PICout operator <<(PICout s, const PIVariantTypes::Color & v) {s.saveCont inline PIByteArray & operator <<(PIByteArray & s, const PIVariantTypes::IODevice & v) {s << v.prefix << v.mode << v.options << v.props; return s;} inline PIByteArray & operator >>(PIByteArray & s, PIVariantTypes::IODevice & v) {s >> v.prefix >> v.mode >> v.options >> v.props; return s;} -inline PICout operator <<(PICout s, const PIVariantTypes::IODevice & v) {s << v.toString(); return s;} +inline PICout operator <<(PICout s, const PIVariantTypes::IODevice & v) {s << v.toPICout(); return s;} #endif // PIVARIANTYPES_H diff --git a/src_main/io_devices/pifile.cpp b/src_main/io_devices/pifile.cpp index 1947b78d..e35f8983 100755 --- a/src_main/io_devices/pifile.cpp +++ b/src_main/io_devices/pifile.cpp @@ -313,6 +313,20 @@ void PIFile::configureFromFullPathDevice(const PIString & full_path) { } +PIPropertyStorage PIFile::constructVariantDevice() const { + PIPropertyStorage ret; + PIVariantTypes::File f; + f.file = path(); + ret.addProperty("path", f); + return ret; +} + + +void PIFile::configureFromVariantDevice(const PIPropertyStorage & d) { + setPath(d.propertyValueByName("path").toString()); +} + + PIString PIFile::strType(const PIIODevice::DeviceMode type) { switch (type) { case PIIODevice::ReadOnly: return "rb"; diff --git a/src_main/io_devices/pifile.h b/src_main/io_devices/pifile.h index d7aaa87c..aba6e9b9 100755 --- a/src_main/io_devices/pifile.h +++ b/src_main/io_devices/pifile.h @@ -24,6 +24,7 @@ #define PIFILE_H #include "piiodevice.h" +#include "pipropertystorage.h" class PIP_EXPORT PIFile: public PIIODevice @@ -289,6 +290,8 @@ protected: PIString fullPathPrefix() const {return PIStringAscii("file");} PIString constructFullPathDevice() const; void configureFromFullPathDevice(const PIString & full_path); + PIPropertyStorage constructVariantDevice() const; + void configureFromVariantDevice(const PIPropertyStorage & d); int readDevice(void * read_to, int max_size); int writeDevice(const void * data, int max_size); bool openDevice(); diff --git a/src_main/io_devices/piiodevice.cpp b/src_main/io_devices/piiodevice.cpp index 307cae2f..8f143357 100755 --- a/src_main/io_devices/piiodevice.cpp +++ b/src_main/io_devices/piiodevice.cpp @@ -459,3 +459,4 @@ PIPropertyStorage PIIODevice::constructVariantDevice() const { void PIIODevice::configureFromVariantDevice(const PIPropertyStorage & d) { setPath(d.propertyValueByName("path").toString()); } + diff --git a/src_main/io_devices/piiodevice.h b/src_main/io_devices/piiodevice.h index 4bb4b461..c1babc5d 100755 --- a/src_main/io_devices/piiodevice.h +++ b/src_main/io_devices/piiodevice.h @@ -418,5 +418,4 @@ private: }; - #endif // PIIODEVICE_H