diff options
Diffstat (limited to '')
-rw-r--r-- | c++-qt/src/gatsstream.cpp | 3 | ||||
-rw-r--r-- | c++-qt/src/gatsstream.h | 7 | ||||
-rw-r--r-- | c++-qt/tests/echo/echo.pro | 15 | ||||
-rw-r--r-- | c++-qt/tests/echo/main.cpp | 14 | ||||
-rw-r--r-- | c++-qt/tests/echo/mainwnd.cpp | 30 | ||||
-rw-r--r-- | c++-qt/tests/echo/mainwnd.h | 23 |
6 files changed, 92 insertions, 0 deletions
diff --git a/c++-qt/src/gatsstream.cpp b/c++-qt/src/gatsstream.cpp index ae53d0d..3874de2 100644 --- a/c++-qt/src/gatsstream.cpp +++ b/c++-qt/src/gatsstream.cpp | |||
@@ -62,6 +62,9 @@ Gats::Object *Gats::GatsStream::readObject() | |||
62 | rTmp.open( QIODevice::ReadOnly ); | 62 | rTmp.open( QIODevice::ReadOnly ); |
63 | rTmp.seek( 5 ); | 63 | rTmp.seek( 5 ); |
64 | Gats::Object *pObj = Gats::Object::read( rTmp ); | 64 | Gats::Object *pObj = Gats::Object::read( rTmp ); |
65 | qbRead.clear(); | ||
66 | |||
67 | emit objectRead( pObj ); | ||
65 | 68 | ||
66 | return pObj; | 69 | return pObj; |
67 | } | 70 | } |
diff --git a/c++-qt/src/gatsstream.h b/c++-qt/src/gatsstream.h index 3cf1081..f1c0625 100644 --- a/c++-qt/src/gatsstream.h +++ b/c++-qt/src/gatsstream.h | |||
@@ -15,6 +15,7 @@ namespace Gats | |||
15 | GatsStream( QIODevice &rStream ); | 15 | GatsStream( QIODevice &rStream ); |
16 | virtual ~GatsStream(); | 16 | virtual ~GatsStream(); |
17 | 17 | ||
18 | public slots: | ||
18 | /** | 19 | /** |
19 | * Read an object packet from the assosiated stream. This will make | 20 | * Read an object packet from the assosiated stream. This will make |
20 | * every effort to only read exactly enough data to describe one packet, | 21 | * every effort to only read exactly enough data to describe one packet, |
@@ -32,6 +33,7 @@ namespace Gats | |||
32 | */ | 33 | */ |
33 | Gats::Object *readObject(); | 34 | Gats::Object *readObject(); |
34 | 35 | ||
36 | public: | ||
35 | /** | 37 | /** |
36 | * Write an object | 38 | * Write an object |
37 | */ | 39 | */ |
@@ -45,6 +47,11 @@ namespace Gats | |||
45 | bool hasReadBuffer() { return qbRead.size() > 0; } | 47 | bool hasReadBuffer() { return qbRead.size() > 0; } |
46 | int getReadBufferSize() { return qbRead.size(); } | 48 | int getReadBufferSize() { return qbRead.size(); } |
47 | 49 | ||
50 | QIODevice &getIODevice() { return rStream; } | ||
51 | |||
52 | signals: | ||
53 | void objectRead( Gats::Object *pObj ); | ||
54 | |||
48 | private: | 55 | private: |
49 | bool skipReadNulls(); | 56 | bool skipReadNulls(); |
50 | 57 | ||
diff --git a/c++-qt/tests/echo/echo.pro b/c++-qt/tests/echo/echo.pro new file mode 100644 index 0000000..63c741a --- /dev/null +++ b/c++-qt/tests/echo/echo.pro | |||
@@ -0,0 +1,15 @@ | |||
1 | ###################################################################### | ||
2 | # Automatically generated by qmake (2.01a) Fri Apr 6 00:45:00 2012 | ||
3 | ###################################################################### | ||
4 | |||
5 | TEMPLATE = app | ||
6 | TARGET = | ||
7 | DEPENDPATH += . | ||
8 | INCLUDEPATH += . ../.. | ||
9 | QT += network | ||
10 | |||
11 | LIBS += -L../.. -lgats-qt | ||
12 | |||
13 | # Input | ||
14 | SOURCES += main.cpp mainwnd.cpp | ||
15 | HEADERS += mainwnd.h | ||
diff --git a/c++-qt/tests/echo/main.cpp b/c++-qt/tests/echo/main.cpp new file mode 100644 index 0000000..43ceae4 --- /dev/null +++ b/c++-qt/tests/echo/main.cpp | |||
@@ -0,0 +1,14 @@ | |||
1 | #include <QApplication> | ||
2 | |||
3 | #include "mainwnd.h" | ||
4 | |||
5 | int main( int argc, char *argv[] ) | ||
6 | { | ||
7 | QApplication app( argc, argv ); | ||
8 | |||
9 | MainWnd wnd; | ||
10 | wnd.show(); | ||
11 | |||
12 | return app.exec(); | ||
13 | } | ||
14 | |||
diff --git a/c++-qt/tests/echo/mainwnd.cpp b/c++-qt/tests/echo/mainwnd.cpp new file mode 100644 index 0000000..4b90421 --- /dev/null +++ b/c++-qt/tests/echo/mainwnd.cpp | |||
@@ -0,0 +1,30 @@ | |||
1 | #include "mainwnd.h" | ||
2 | |||
3 | MainWnd::MainWnd() | ||
4 | { | ||
5 | pSrv = new QTcpServer( this ); | ||
6 | connect( pSrv, SIGNAL(newConnection()), this, SLOT(newConnection())); | ||
7 | pSrv->listen( QHostAddress::Any, 7317 ); | ||
8 | } | ||
9 | |||
10 | MainWnd::~MainWnd() | ||
11 | { | ||
12 | } | ||
13 | |||
14 | void MainWnd::newConnection() | ||
15 | { | ||
16 | while( pSrv->hasPendingConnections() ) | ||
17 | { | ||
18 | QTcpSocket *pSock = pSrv->nextPendingConnection(); | ||
19 | Gats::GatsStream *pGats = new Gats::GatsStream( *pSock ); | ||
20 | connect( pSock, SIGNAL(readyRead()), pGats, SLOT(readObject()) ); | ||
21 | connect( pGats, SIGNAL(objectRead( Gats::Object * )), | ||
22 | this, SLOT(objectRead( Gats::Object * ))); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | void MainWnd::objectRead( Gats::Object *pObj ) | ||
27 | { | ||
28 | ((Gats::GatsStream *)sender())->writeObject( pObj ); | ||
29 | delete pObj; | ||
30 | } | ||
diff --git a/c++-qt/tests/echo/mainwnd.h b/c++-qt/tests/echo/mainwnd.h new file mode 100644 index 0000000..0afbd6a --- /dev/null +++ b/c++-qt/tests/echo/mainwnd.h | |||
@@ -0,0 +1,23 @@ | |||
1 | |||
2 | #include <QTcpServer> | ||
3 | #include <QTcpSocket> | ||
4 | #include <QMainWindow> | ||
5 | |||
6 | #include "gats-qt/gatsstream.h" | ||
7 | #include "gats-qt/types.h" | ||
8 | |||
9 | class MainWnd : public QMainWindow | ||
10 | { | ||
11 | Q_OBJECT; | ||
12 | public: | ||
13 | QTcpServer *pSrv; | ||
14 | |||
15 | MainWnd(); | ||
16 | virtual ~MainWnd(); | ||
17 | |||
18 | public slots: | ||
19 | void newConnection(); | ||
20 | void objectRead( Gats::Object *pObj ); | ||
21 | |||
22 | signals: | ||
23 | }; | ||