Files
pip/main.cpp
2022-05-10 18:47:11 +03:00

93 lines
2.3 KiB
C++

#include "pip.h"
#include "pibinarystream.h"
#include "pitextstream.h"
#include "piiostream.h"
//#include "stream.h"
//#include "ccm.h"
//#include "pisystemmonitor_.h"
using namespace PICoutManipulators;
class File: public PIBinaryStream<File> {
public:
PIFile file;
bool binaryStreamAppendImp(const void * d, size_t s) {
file.write(d, s);
return true;
}
bool binaryStreamTakeImp(void * d, size_t s) {
if (file.isEnd())
return false;
file.read(d, s);
return true;
}
};
struct TS {
TS(int v0 = -1, float v1 = -1, PIString v2 = "") {i = v0; f = v1;/* s = v2;*/}
int i;
float f;
//PIString s;
};
PICout operator << (PICout c, const TS & v) {c << '{' << v.i << ", " << v.f << '}'; return c;}
template<typename P> inline PIBinaryStream<P> & operator <<(PIBinaryStream<P> & s, const TS & v) {s << v.i; return s;}
template<typename P> inline PIBinaryStream<P> & operator >>(PIBinaryStream<P> & s, TS & v) {s >> v.i; return s;}
int main(int argc, char * argv[]) {
PIByteArray ba;
PIFile f;
f.open("_", PIIODevice::ReadWrite);
f.clear();
PIIOBinaryStream ios(&f);
auto ts = createPITextStream(&ios);
ts << "hello" << uchar('1');
ts.space();
(ts << PIString::fromUTF8("") << 123).space() << -0.1f;
ts.newLine();
piCout << PIString(ba);
//PIIOByteArray ioba(&ba);
//PIIOBinaryStream stream(&ioba);
/*ProcessStatsFixed_ ps;
ba << ps;
piCout << "s" << ba.data;*/
//File f;
//f.file.open("_", PIIODevice::ReadWrite);
//f.file.clear();
//PIVector<TS> vi({TS(1,20), TS(3,40)});
/*PIVector<TS> vi({{'a', 10}, {'b', 20}, {'c', 30}});
ba << vi;
ba.binaryStreamAppend(&ba, sizeof(ba));
piCout << "src" << vi;
piCout << "s" << ba.data;
vi.fill(TS());
vi.clear();
//f.file.seekToBegin();
ba >> vi;
piCout << "res" << vi;
piCout << "r" << ba.data;*/
/*PIMap<PIIODevice::DeviceMode, PIStringList> map;
map[PIIODevice::ReadOnly] = {"str0", PIString::fromUTF8("русский!")};
piMSleep(100);
map[PIIODevice::ReadWrite] = {""};
piMSleep(100);
map[PIIODevice::WriteOnly] = {PIString::fromUTF8("русский!"), "", "1234567890", "qwertyuiop[]"};
piCout << map;
stream << map;
piCout << ba;
map.clear();
ioba.seekToBegin();
stream >> map;
piCout << map;
piCout << ba;*/
return 0;
}