PIChunkStream

git-svn-id: svn://db.shs.com.ru/pip@176 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2016-01-31 09:05:23 +00:00
parent 57a7af0b35
commit cc22bf0c67
390 changed files with 5229 additions and 3603 deletions

View File

@@ -1,26 +1,42 @@
#include "pikbdlistener.h"
#include "piconnection.h"
#include "piconfig.h"
#include "piethernet.h"
#include "pichunkstream.h"
void ke(PIKbdListener::KeyEvent k, void*) {
piCout << k.modifiers << k.key;
}
struct S {
int i;
float f;
PIString s;
};
PIByteArray & operator <<(PIByteArray & b, const S & s) {b << s.i << s.f << s.s; return b;}
PIByteArray & operator >>(PIByteArray & b, S & s) {b >> s.i >> s.f >> s.s; return b;}
int main (int argc, char * argv[]) {
/*PIKbdListener k;
k.enableExitCapture();
PIConnection conn;
conn.configureFromConfig("c.conf", "c");
conn.start();
k.start();
WAIT_FOR_EXIT
return 0;*/
/*PIConfig c("mems.conf", PIIODevice::ReadOnly);
piCout << c.allTree();*/
PIKbdListener k(ke);
k.enableExitCapture();
k.start();
WAIT_FOR_EXIT
PIChunkStream cs;
S s;
s.i = 99; s.f = 0.01; s.s = "SSS";
PIVector<float> f;
f << -1. << 2.5 << 11.;
cs << cs.chunk(1, 10) << cs.chunk(2, PIString("text")) << cs.chunk(4, f) << cs.chunk(3, s);
f.clear();
PIByteArray ba(cs.data());
piCout << ba;
PIChunkStream cs2(ba);
s.i = 0; s.f = 0; s.s = "";
int i(0);
PIString str;
piCout << i << str << f << s.i << s.f << s.s;
while (!cs2.atEnd()) {
switch (cs2.read()) {
case 1: i = cs2.getData<int>(); break;
case 2: str = cs2.getData<PIString>(); break;
case 3: s = cs2.getData<S>(); break;
case 4: f = cs2.getData<PIVector<float> >(); break;
}
}
piCout << i << str << f << s.i << s.f << s.s;
return 0;
}