diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2009-07-16 21:52:57 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2009-07-16 21:52:57 +0000 |
| commit | ff5688b09c21242c2a0bee70cdfd1ea50b06f4f0 (patch) | |
| tree | a7f3d393ff8176b491f87fa6caf490df138a5844 | |
| parent | 89df61f21e525c7a36846ce1a960ffba5501cdca (diff) | |
| download | libbu++-ff5688b09c21242c2a0bee70cdfd1ea50b06f4f0.tar.gz libbu++-ff5688b09c21242c2a0bee70cdfd1ea50b06f4f0.tar.bz2 libbu++-ff5688b09c21242c2a0bee70cdfd1ea50b06f4f0.tar.xz libbu++-ff5688b09c21242c2a0bee70cdfd1ea50b06f4f0.zip | |
Client code is even cooler, it supports flushing data in case of buffering in
the filter chain, I'm going to go ahead and make that optional coming up.
| -rw-r--r-- | src/client.cpp | 1 | ||||
| -rw-r--r-- | src/client.h | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp index 24f9bfb..729526e 100644 --- a/src/client.cpp +++ b/src/client.cpp | |||
| @@ -85,6 +85,7 @@ void Bu::Client::processOutput() | |||
| 85 | { | 85 | { |
| 86 | int nAmnt = (sWriteBuf.getSize()<2048)?(sWriteBuf.getSize()):(2048); | 86 | int nAmnt = (sWriteBuf.getSize()<2048)?(sWriteBuf.getSize()):(2048); |
| 87 | int nReal = pTopStream->write( sWriteBuf.getStr(), nAmnt ); | 87 | int nReal = pTopStream->write( sWriteBuf.getStr(), nAmnt ); |
| 88 | pTopStream->flush(); | ||
| 88 | sWriteBuf.trimFront( nReal ); | 89 | sWriteBuf.trimFront( nReal ); |
| 89 | //sWriteBuf.clear(); | 90 | //sWriteBuf.clear(); |
| 90 | } | 91 | } |
diff --git a/src/client.h b/src/client.h index 7ba1ac5..72b1b05 100644 --- a/src/client.h +++ b/src/client.h | |||
| @@ -73,6 +73,22 @@ namespace Bu | |||
| 73 | pTopStream = pFlt; | 73 | pTopStream = pFlt; |
| 74 | lFilts.prepend( pFlt ); | 74 | lFilts.prepend( pFlt ); |
| 75 | } | 75 | } |
| 76 | |||
| 77 | template<typename filter, typename p1t> | ||
| 78 | void pushFilter( p1t p1 ) | ||
| 79 | { | ||
| 80 | filter *pFlt = new filter( *pTopStream, p1 ); | ||
| 81 | pTopStream = pFlt; | ||
| 82 | lFilts.prepend( pFlt ); | ||
| 83 | } | ||
| 84 | |||
| 85 | template<typename filter, typename p1t, typename p2t> | ||
| 86 | void pushFilter( p1t p1, p2t p2 ) | ||
| 87 | { | ||
| 88 | filter *pFlt = new filter( *pTopStream, p1, p2 ); | ||
| 89 | pTopStream = pFlt; | ||
| 90 | lFilts.prepend( pFlt ); | ||
| 91 | } | ||
| 76 | 92 | ||
| 77 | private: | 93 | private: |
| 78 | typedef Bu::List<Bu::Stream *> FilterList; | 94 | typedef Bu::List<Bu::Stream *> FilterList; |
