diff options
author | Mike Buland <eichlan@xagasoft.com> | 2011-01-19 23:02:44 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2011-01-19 23:02:44 +0000 |
commit | 10c557562e1d67c55314c212371ea9cb7f802863 (patch) | |
tree | 5834f4060874de33df5d0f9ebe115059d2541189 | |
parent | dfb29c814b9c3327df3ab90e333b43504768e6d6 (diff) | |
download | libbu++-10c557562e1d67c55314c212371ea9cb7f802863.tar.gz libbu++-10c557562e1d67c55314c212371ea9cb7f802863.tar.bz2 libbu++-10c557562e1d67c55314c212371ea9cb7f802863.tar.xz libbu++-10c557562e1d67c55314c212371ea9cb7f802863.zip |
Started work adding more functions to stream, and changing to a new size type.
-rw-r--r-- | src/client.h | 1 | ||||
-rw-r--r-- | src/config.h | 2 | ||||
-rw-r--r-- | src/extratypes.h | 17 | ||||
-rw-r--r-- | src/membuf.cpp | 18 | ||||
-rw-r--r-- | src/membuf.h | 17 | ||||
-rw-r--r-- | src/stdstream.cpp | 14 | ||||
-rw-r--r-- | src/stdstream.h | 14 | ||||
-rw-r--r-- | src/stream.cpp | 2 | ||||
-rw-r--r-- | src/stream.h | 42 | ||||
-rw-r--r-- | src/tcpsocket.cpp | 40 | ||||
-rw-r--r-- | src/tcpsocket.h | 23 |
11 files changed, 128 insertions, 62 deletions
diff --git a/src/client.h b/src/client.h index 096df2f..98b31f7 100644 --- a/src/client.h +++ b/src/client.h | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <stdint.h> | 11 | #include <stdint.h> |
12 | 12 | ||
13 | #include "bu/config.h" | ||
13 | #include "bu/fstring.h" | 14 | #include "bu/fstring.h" |
14 | #include "bu/queuebuf.h" | 15 | #include "bu/queuebuf.h" |
15 | 16 | ||
diff --git a/src/config.h b/src/config.h index ad4991e..3a19a1f 100644 --- a/src/config.h +++ b/src/config.h | |||
@@ -15,4 +15,6 @@ | |||
15 | #include "bu/compat/osx.h" | 15 | #include "bu/compat/osx.h" |
16 | #include "bu/compat/linux.h" | 16 | #include "bu/compat/linux.h" |
17 | 17 | ||
18 | #include "bu/extratypes.h" | ||
19 | |||
18 | #endif | 20 | #endif |
diff --git a/src/extratypes.h b/src/extratypes.h new file mode 100644 index 0000000..bc32dcd --- /dev/null +++ b/src/extratypes.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #ifndef EXTRA_TYPES_H | ||
2 | #define EXTRA_TYPES_H | ||
3 | |||
4 | #include "bu/config.h" | ||
5 | |||
6 | namespace Bu | ||
7 | { | ||
8 | #ifdef USE_64BIT_IO | ||
9 | typedef int64_t size; | ||
10 | typedef uint64_t usize; | ||
11 | #else | ||
12 | typedef int32_t size; | ||
13 | typedef uint32_t usize; | ||
14 | #endif | ||
15 | }; | ||
16 | |||
17 | #endif | ||
diff --git a/src/membuf.cpp b/src/membuf.cpp index b822641..1a6bf9a 100644 --- a/src/membuf.cpp +++ b/src/membuf.cpp | |||
@@ -28,9 +28,9 @@ void Bu::MemBuf::close() | |||
28 | { | 28 | { |
29 | } | 29 | } |
30 | 30 | ||
31 | size_t Bu::MemBuf::read( void *pBuf, size_t nBytes ) | 31 | size Bu::MemBuf::read( void *pBuf, size nBytes ) |
32 | { | 32 | { |
33 | if( (size_t)sBuf.getSize()-(size_t)nPos < nBytes ) | 33 | if( (size)sBuf.getSize()-(size)nPos < nBytes ) |
34 | nBytes = sBuf.getSize()-nPos; | 34 | nBytes = sBuf.getSize()-nPos; |
35 | 35 | ||
36 | memcpy( pBuf, sBuf.getStr()+nPos, nBytes ); | 36 | memcpy( pBuf, sBuf.getStr()+nPos, nBytes ); |
@@ -39,7 +39,7 @@ size_t Bu::MemBuf::read( void *pBuf, size_t nBytes ) | |||
39 | return nBytes; | 39 | return nBytes; |
40 | } | 40 | } |
41 | 41 | ||
42 | size_t Bu::MemBuf::write( const void *pBuf, size_t nBytes ) | 42 | size Bu::MemBuf::write( const void *pBuf, size nBytes ) |
43 | { | 43 | { |
44 | if( nPos == sBuf.getSize() ) | 44 | if( nPos == sBuf.getSize() ) |
45 | { | 45 | { |
@@ -52,7 +52,7 @@ size_t Bu::MemBuf::write( const void *pBuf, size_t nBytes ) | |||
52 | { | 52 | { |
53 | // Trickier, we must do this in two parts, overwrite, then append | 53 | // Trickier, we must do this in two parts, overwrite, then append |
54 | // Frist, overwrite. | 54 | // Frist, overwrite. |
55 | size_t iOver = sBuf.getSize() - nPos; | 55 | size iOver = sBuf.getSize() - nPos; |
56 | if( iOver > nBytes ) | 56 | if( iOver > nBytes ) |
57 | iOver = nBytes; | 57 | iOver = nBytes; |
58 | memcpy( sBuf.getStr()+nPos, pBuf, iOver ); | 58 | memcpy( sBuf.getStr()+nPos, pBuf, iOver ); |
@@ -66,26 +66,26 @@ size_t Bu::MemBuf::write( const void *pBuf, size_t nBytes ) | |||
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | long Bu::MemBuf::tell() | 69 | size Bu::MemBuf::tell() |
70 | { | 70 | { |
71 | return nPos; | 71 | return nPos; |
72 | } | 72 | } |
73 | 73 | ||
74 | void Bu::MemBuf::seek( long offset ) | 74 | void Bu::MemBuf::seek( size offset ) |
75 | { | 75 | { |
76 | nPos += offset; | 76 | nPos += offset; |
77 | if( nPos < 0 ) nPos = 0; | 77 | if( nPos < 0 ) nPos = 0; |
78 | else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize(); | 78 | else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize(); |
79 | } | 79 | } |
80 | 80 | ||
81 | void Bu::MemBuf::setPos( long pos ) | 81 | void Bu::MemBuf::setPos( size pos ) |
82 | { | 82 | { |
83 | nPos = pos; | 83 | nPos = pos; |
84 | if( nPos < 0 ) nPos = 0; | 84 | if( nPos < 0 ) nPos = 0; |
85 | else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize(); | 85 | else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize(); |
86 | } | 86 | } |
87 | 87 | ||
88 | void Bu::MemBuf::setPosEnd( long pos ) | 88 | void Bu::MemBuf::setPosEnd( size pos ) |
89 | { | 89 | { |
90 | nPos = sBuf.getSize()-pos; | 90 | nPos = sBuf.getSize()-pos; |
91 | if( nPos < 0 ) nPos = 0; | 91 | if( nPos < 0 ) nPos = 0; |
@@ -140,7 +140,7 @@ void Bu::MemBuf::setBlocking( bool ) | |||
140 | { | 140 | { |
141 | } | 141 | } |
142 | 142 | ||
143 | void Bu::MemBuf::setSize( long iSize ) | 143 | void Bu::MemBuf::setSize( size iSize ) |
144 | { | 144 | { |
145 | if( iSize < 0 ) | 145 | if( iSize < 0 ) |
146 | iSize = 0; | 146 | iSize = 0; |
diff --git a/src/membuf.h b/src/membuf.h index 9e406c1..a75aca1 100644 --- a/src/membuf.h +++ b/src/membuf.h | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <stdint.h> | 11 | #include <stdint.h> |
12 | 12 | ||
13 | #include "bu/config.h" | ||
13 | #include "bu/stream.h" | 14 | #include "bu/stream.h" |
14 | #include "bu/fstring.h" | 15 | #include "bu/fstring.h" |
15 | 16 | ||
@@ -27,14 +28,14 @@ namespace Bu | |||
27 | virtual ~MemBuf(); | 28 | virtual ~MemBuf(); |
28 | 29 | ||
29 | virtual void close(); | 30 | virtual void close(); |
30 | virtual size_t read( void *pBuf, size_t nBytes ); | 31 | virtual size read( void *pBuf, size iBytes ); |
31 | 32 | ||
32 | virtual size_t write( const void *pBuf, size_t nBytes ); | 33 | virtual size write( const void *pBuf, size iBytes ); |
33 | using Stream::write; | 34 | using Stream::write; |
34 | virtual long tell(); | 35 | virtual size tell(); |
35 | virtual void seek( long offset ); | 36 | virtual void seek( size offset ); |
36 | virtual void setPos( long pos ); | 37 | virtual void setPos( size pos ); |
37 | virtual void setPosEnd( long pos ); | 38 | virtual void setPosEnd( size pos ); |
38 | virtual bool isEos(); | 39 | virtual bool isEos(); |
39 | virtual bool isOpen(); | 40 | virtual bool isOpen(); |
40 | virtual void flush(); | 41 | virtual void flush(); |
@@ -45,14 +46,14 @@ namespace Bu | |||
45 | virtual bool isSeekable(); | 46 | virtual bool isSeekable(); |
46 | virtual bool isBlocking(); | 47 | virtual bool isBlocking(); |
47 | virtual void setBlocking( bool bBlocking=true ); | 48 | virtual void setBlocking( bool bBlocking=true ); |
48 | virtual void setSize( long iSize ); | 49 | virtual void setSize( size iSize ); |
49 | 50 | ||
50 | Bu::FString &getString(); | 51 | Bu::FString &getString(); |
51 | void setString( const Bu::FString &sNewData ); | 52 | void setString( const Bu::FString &sNewData ); |
52 | 53 | ||
53 | private: | 54 | private: |
54 | Bu::FString sBuf; | 55 | Bu::FString sBuf; |
55 | long nPos; | 56 | size nPos; |
56 | }; | 57 | }; |
57 | } | 58 | } |
58 | 59 | ||
diff --git a/src/stdstream.cpp b/src/stdstream.cpp index 32ddec4..64ca1cd 100644 --- a/src/stdstream.cpp +++ b/src/stdstream.cpp | |||
@@ -20,30 +20,30 @@ void Bu::StdStream::close() | |||
20 | { | 20 | { |
21 | } | 21 | } |
22 | 22 | ||
23 | size_t Bu::StdStream::read( void *pBuf, size_t nBytes ) | 23 | Bu::size Bu::StdStream::read( void *pBuf, Bu::size nBytes ) |
24 | { | 24 | { |
25 | return fread( pBuf, 1, nBytes, stdin ); | 25 | return fread( pBuf, 1, nBytes, stdin ); |
26 | } | 26 | } |
27 | 27 | ||
28 | size_t Bu::StdStream::write( const void *pBuf, size_t nBytes ) | 28 | Bu::size Bu::StdStream::write( const void *pBuf, Bu::size nBytes ) |
29 | { | 29 | { |
30 | return fwrite( pBuf, 1, nBytes, stdout ); | 30 | return fwrite( pBuf, 1, nBytes, stdout ); |
31 | } | 31 | } |
32 | 32 | ||
33 | long Bu::StdStream::tell() | 33 | Bu::size Bu::StdStream::tell() |
34 | { | 34 | { |
35 | return 0; | 35 | return 0; |
36 | } | 36 | } |
37 | 37 | ||
38 | void Bu::StdStream::seek( long ) | 38 | void Bu::StdStream::seek( Bu::size ) |
39 | { | 39 | { |
40 | } | 40 | } |
41 | 41 | ||
42 | void Bu::StdStream::setPos( long ) | 42 | void Bu::StdStream::setPos( Bu::size ) |
43 | { | 43 | { |
44 | } | 44 | } |
45 | 45 | ||
46 | void Bu::StdStream::setPosEnd( long ) | 46 | void Bu::StdStream::setPosEnd( Bu::size ) |
47 | { | 47 | { |
48 | } | 48 | } |
49 | 49 | ||
@@ -96,7 +96,7 @@ void Bu::StdStream::setBlocking( bool ) | |||
96 | { | 96 | { |
97 | } | 97 | } |
98 | 98 | ||
99 | void Bu::StdStream::setSize( long ) | 99 | void Bu::StdStream::setSize( Bu::size ) |
100 | { | 100 | { |
101 | } | 101 | } |
102 | 102 | ||
diff --git a/src/stdstream.h b/src/stdstream.h index 4efeece..c500dfc 100644 --- a/src/stdstream.h +++ b/src/stdstream.h | |||
@@ -23,13 +23,13 @@ namespace Bu | |||
23 | virtual ~StdStream(); | 23 | virtual ~StdStream(); |
24 | 24 | ||
25 | virtual void close(); | 25 | virtual void close(); |
26 | virtual size_t read( void *pBuf, size_t nBytes ); | 26 | virtual size read( void *pBuf, size nBytes ); |
27 | virtual size_t write( const void *pBuf, size_t nBytes ); | 27 | virtual size write( const void *pBuf, size nBytes ); |
28 | using Stream::write; | 28 | using Stream::write; |
29 | virtual long tell(); | 29 | virtual size tell(); |
30 | virtual void seek( long offset ); | 30 | virtual void seek( size offset ); |
31 | virtual void setPos( long pos ); | 31 | virtual void setPos( size pos ); |
32 | virtual void setPosEnd( long pos ); | 32 | virtual void setPosEnd( size pos ); |
33 | virtual bool isEos(); | 33 | virtual bool isEos(); |
34 | virtual bool isOpen(); | 34 | virtual bool isOpen(); |
35 | virtual void flush(); | 35 | virtual void flush(); |
@@ -40,7 +40,7 @@ namespace Bu | |||
40 | virtual bool isSeekable(); | 40 | virtual bool isSeekable(); |
41 | virtual bool isBlocking(); | 41 | virtual bool isBlocking(); |
42 | virtual void setBlocking( bool bBlocking=true ); | 42 | virtual void setBlocking( bool bBlocking=true ); |
43 | virtual void setSize( long iSize ); | 43 | virtual void setSize( size iSize ); |
44 | }; | 44 | }; |
45 | } | 45 | } |
46 | 46 | ||
diff --git a/src/stream.cpp b/src/stream.cpp index 0e05cad..f13d33a 100644 --- a/src/stream.cpp +++ b/src/stream.cpp | |||
@@ -30,7 +30,7 @@ Bu::FString Bu::Stream::readLine() | |||
30 | } | 30 | } |
31 | } | 31 | } |
32 | 32 | ||
33 | size_t Bu::Stream::write( const Bu::FString &sBuf ) | 33 | Bu::size Bu::Stream::write( const Bu::FString &sBuf ) |
34 | { | 34 | { |
35 | return write( sBuf.getStr(), sBuf.getSize() ); | 35 | return write( sBuf.getStr(), sBuf.getSize() ); |
36 | } | 36 | } |
diff --git a/src/stream.h b/src/stream.h index 0ea5560..e7db7af 100644 --- a/src/stream.h +++ b/src/stream.h | |||
@@ -8,6 +8,8 @@ | |||
8 | #ifndef BU_STREAM_H | 8 | #ifndef BU_STREAM_H |
9 | #define BU_STREAM_H | 9 | #define BU_STREAM_H |
10 | 10 | ||
11 | #include "bu/config.h" | ||
12 | |||
11 | #include <stdint.h> | 13 | #include <stdint.h> |
12 | #include <stdio.h> | 14 | #include <stdio.h> |
13 | 15 | ||
@@ -43,7 +45,7 @@ namespace Bu | |||
43 | *@param nBytes (size_t) Max data to read. | 45 | *@param nBytes (size_t) Max data to read. |
44 | *@returns (size_t) Amount of data read. | 46 | *@returns (size_t) Amount of data read. |
45 | */ | 47 | */ |
46 | virtual size_t read( void *pBuf, size_t nBytes ) = 0; | 48 | virtual size read( void *pBuf, size iBytes ) = 0; |
47 | 49 | ||
48 | /** | 50 | /** |
49 | * Attempts to read a complete line from the stream. This will stop | 51 | * Attempts to read a complete line from the stream. This will stop |
@@ -59,33 +61,33 @@ namespace Bu | |||
59 | *@param nBytes (size_t) Amount of data to write from pBuf. | 61 | *@param nBytes (size_t) Amount of data to write from pBuf. |
60 | *@returns (size_t) Amount of data actually written. | 62 | *@returns (size_t) Amount of data actually written. |
61 | */ | 63 | */ |
62 | virtual size_t write( const void *pBuf, size_t nBytes ) = 0; | 64 | virtual size write( const void *pBuf, size iBytes ) = 0; |
63 | 65 | ||
64 | virtual size_t write( const Bu::FString &sBuf ); | 66 | virtual size write( const Bu::FString &sBuf ); |
65 | 67 | ||
66 | /** | 68 | /** |
67 | * Get the current position in the stream. | 69 | * Get the current position in the stream. |
68 | *@returns (long) The current position in the stream. | 70 | *@returns (long) The current position in the stream. |
69 | */ | 71 | */ |
70 | virtual long tell() = 0; | 72 | virtual size tell() = 0; |
71 | 73 | ||
72 | /** | 74 | /** |
73 | * Seek to a position in the stream relative to the current position. | 75 | * Seek to a position in the stream relative to the current position. |
74 | *@param offset (long) Offset from current position to seek to. | 76 | *@param offset (long) Offset from current position to seek to. |
75 | */ | 77 | */ |
76 | virtual void seek( long offset ) = 0; | 78 | virtual void seek( size offset ) = 0; |
77 | 79 | ||
78 | /** | 80 | /** |
79 | * Set position in the stream relative to the start of the stream. | 81 | * Set position in the stream relative to the start of the stream. |
80 | *@param pos (long) The position. | 82 | *@param pos (long) The position. |
81 | */ | 83 | */ |
82 | virtual void setPos( long pos ) = 0; | 84 | virtual void setPos( size pos ) = 0; |
83 | 85 | ||
84 | /** | 86 | /** |
85 | * Set position in the stream relative to the end of the stream. | 87 | * Set position in the stream relative to the end of the stream. |
86 | *@param pos (long) The position. | 88 | *@param pos (long) The position. |
87 | */ | 89 | */ |
88 | virtual void setPosEnd( long pos ) = 0; | 90 | virtual void setPosEnd( size pos ) = 0; |
89 | 91 | ||
90 | /** | 92 | /** |
91 | * Are we at the end of the stream? | 93 | * Are we at the end of the stream? |
@@ -158,10 +160,32 @@ namespace Bu | |||
158 | * removed from the end of the stream, but the content of the added | 160 | * removed from the end of the stream, but the content of the added |
159 | * data is undefined. | 161 | * data is undefined. |
160 | */ | 162 | */ |
161 | virtual void setSize( long iSize ) = 0; | 163 | virtual void setSize( size iSize ) = 0; |
164 | |||
165 | /** | ||
166 | * Returns the size of the stream if the stream can have a size. For | ||
167 | * streams that do not (sockets, pipes, etc.) this should throw an | ||
168 | * unsupported exception. | ||
169 | */ | ||
170 | virtual size getSize() const = 0; | ||
162 | 171 | ||
163 | public: // Filters | 172 | /** |
173 | * Returns the block-size of the stream, if it has one. This should | ||
174 | * throw an unsupported exception. In some cases the block size | ||
175 | * returned will not represent quite the same thing, for example, | ||
176 | * sockets will return their MTU, while files will return the | ||
177 | * filesystem's block size, and memory buffers will throw an exception. | ||
178 | */ | ||
179 | virtual size getBlockSize() const = 0; | ||
164 | 180 | ||
181 | /** | ||
182 | * If possible, this returns a string that can be used to describe how | ||
183 | * to access the open stream. Not all streams support this, such as | ||
184 | * MemBuf, but for files it may give you a path to a file, for a socket | ||
185 | * it may give you an ip address, etc. If it isn't supported, an empty | ||
186 | * string may be returned. | ||
187 | */ | ||
188 | virtual Bu::FString getLocation() const = 0; | ||
165 | 189 | ||
166 | private: | 190 | private: |
167 | 191 | ||
diff --git a/src/tcpsocket.cpp b/src/tcpsocket.cpp index bbd9cf5..22acdf7 100644 --- a/src/tcpsocket.cpp +++ b/src/tcpsocket.cpp | |||
@@ -149,7 +149,7 @@ void Bu::TcpSocket::close() | |||
149 | bActive = false; | 149 | bActive = false; |
150 | } | 150 | } |
151 | 151 | ||
152 | size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes ) | 152 | Bu::size Bu::TcpSocket::read( void *pBuf, Bu::size nBytes ) |
153 | { | 153 | { |
154 | fd_set rfds; | 154 | fd_set rfds; |
155 | FD_ZERO(&rfds); | 155 | FD_ZERO(&rfds); |
@@ -195,11 +195,11 @@ size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes ) | |||
195 | return 0; | 195 | return 0; |
196 | } | 196 | } |
197 | 197 | ||
198 | size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes, | 198 | Bu::size Bu::TcpSocket::read( void *pBuf, Bu::size nBytes, |
199 | uint32_t nSec, uint32_t nUSec ) | 199 | uint32_t nSec, uint32_t nUSec ) |
200 | { | 200 | { |
201 | struct timeval tv; | 201 | struct timeval tv; |
202 | size_t nRead = 0; | 202 | Bu::size nRead = 0; |
203 | 203 | ||
204 | fd_set rfds; | 204 | fd_set rfds; |
205 | FD_ZERO(&rfds); | 205 | FD_ZERO(&rfds); |
@@ -239,7 +239,7 @@ size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes, | |||
239 | return nRead; | 239 | return nRead; |
240 | } | 240 | } |
241 | 241 | ||
242 | size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes ) | 242 | Bu::size Bu::TcpSocket::write( const void *pBuf, Bu::size nBytes ) |
243 | { | 243 | { |
244 | //#ifdef WIN32 | 244 | //#ifdef WIN32 |
245 | int nWrote = TEMP_FAILURE_RETRY( | 245 | int nWrote = TEMP_FAILURE_RETRY( |
@@ -261,10 +261,10 @@ size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes ) | |||
261 | return nWrote; | 261 | return nWrote; |
262 | } | 262 | } |
263 | 263 | ||
264 | size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes, uint32_t nSec, uint32_t nUSec ) | 264 | Bu::size Bu::TcpSocket::write( const void *pBuf, Bu::size nBytes, uint32_t nSec, uint32_t nUSec ) |
265 | { | 265 | { |
266 | struct timeval tv; | 266 | struct timeval tv; |
267 | size_t nWrote = 0; | 267 | Bu::size nWrote = 0; |
268 | 268 | ||
269 | fd_set wfds; | 269 | fd_set wfds; |
270 | FD_ZERO(&wfds); | 270 | FD_ZERO(&wfds); |
@@ -304,22 +304,22 @@ size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes, uint32_t nSec, uin | |||
304 | return nWrote; | 304 | return nWrote; |
305 | } | 305 | } |
306 | 306 | ||
307 | long Bu::TcpSocket::tell() | 307 | Bu::size Bu::TcpSocket::tell() |
308 | { | 308 | { |
309 | throw UnsupportedException(); | 309 | throw UnsupportedException(); |
310 | } | 310 | } |
311 | 311 | ||
312 | void Bu::TcpSocket::seek( long ) | 312 | void Bu::TcpSocket::seek( Bu::size ) |
313 | { | 313 | { |
314 | throw UnsupportedException(); | 314 | throw UnsupportedException(); |
315 | } | 315 | } |
316 | 316 | ||
317 | void Bu::TcpSocket::setPos( long ) | 317 | void Bu::TcpSocket::setPos( Bu::size ) |
318 | { | 318 | { |
319 | throw UnsupportedException(); | 319 | throw UnsupportedException(); |
320 | } | 320 | } |
321 | 321 | ||
322 | void Bu::TcpSocket::setPosEnd( long ) | 322 | void Bu::TcpSocket::setPosEnd( Bu::size ) |
323 | { | 323 | { |
324 | throw UnsupportedException(); | 324 | throw UnsupportedException(); |
325 | } | 325 | } |
@@ -401,7 +401,7 @@ void Bu::TcpSocket::setBlocking( bool bBlocking ) | |||
401 | fcntl( nTcpSocket, F_SETFL, fcntl( nTcpSocket, F_GETFL, 0 ) | O_NONBLOCK ); | 401 | fcntl( nTcpSocket, F_SETFL, fcntl( nTcpSocket, F_GETFL, 0 ) | O_NONBLOCK ); |
402 | } | 402 | } |
403 | #else | 403 | #else |
404 | u_long iMode; | 404 | u_Bu::size iMode; |
405 | if( bBlocking ) | 405 | if( bBlocking ) |
406 | iMode = 0; | 406 | iMode = 0; |
407 | else | 407 | else |
@@ -416,7 +416,7 @@ void Bu::TcpSocket::setBlocking( bool bBlocking ) | |||
416 | #endif | 416 | #endif |
417 | } | 417 | } |
418 | 418 | ||
419 | void Bu::TcpSocket::setSize( long ) | 419 | void Bu::TcpSocket::setSize( Bu::size ) |
420 | { | 420 | { |
421 | } | 421 | } |
422 | 422 | ||
@@ -436,6 +436,8 @@ void Bu::TcpSocket::setAddress() | |||
436 | addr.sin_family = AF_INET; | 436 | addr.sin_family = AF_INET; |
437 | bu_getpeername( nTcpSocket, (sockaddr *)(&addr), &len ); | 437 | bu_getpeername( nTcpSocket, (sockaddr *)(&addr), &len ); |
438 | sAddress = bu_inet_ntoa( addr.sin_addr ); | 438 | sAddress = bu_inet_ntoa( addr.sin_addr ); |
439 | |||
440 | printf("%d\n", IP_MTU ); | ||
439 | } | 441 | } |
440 | 442 | ||
441 | Bu::FString Bu::TcpSocket::getAddress() const | 443 | Bu::FString Bu::TcpSocket::getAddress() const |
@@ -448,3 +450,17 @@ Bu::TcpSocket::operator int() const | |||
448 | return nTcpSocket; | 450 | return nTcpSocket; |
449 | } | 451 | } |
450 | 452 | ||
453 | Bu::size Bu::TcpSocket::getSize() const | ||
454 | { | ||
455 | throw UnsupportedException(); | ||
456 | } | ||
457 | |||
458 | Bu::size Bu::TcpSocket::getBlockSize() const | ||
459 | { | ||
460 | |||
461 | } | ||
462 | |||
463 | Bu::FString Bu::TcpSocket::getLocation() const | ||
464 | { | ||
465 | } | ||
466 | |||
diff --git a/src/tcpsocket.h b/src/tcpsocket.h index 3361e84..8543ad0 100644 --- a/src/tcpsocket.h +++ b/src/tcpsocket.h | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <stdint.h> | 11 | #include <stdint.h> |
12 | 12 | ||
13 | #include "bu/config.h" | ||
13 | #include "bu/stream.h" | 14 | #include "bu/stream.h" |
14 | #include "bu/fstring.h" | 15 | #include "bu/fstring.h" |
15 | #include "bu/exceptionbase.h" | 16 | #include "bu/exceptionbase.h" |
@@ -66,18 +67,18 @@ namespace Bu | |||
66 | 67 | ||
67 | virtual void close(); | 68 | virtual void close(); |
68 | //virtual void read(); | 69 | //virtual void read(); |
69 | virtual size_t read( void *pBuf, size_t nBytes ); | 70 | virtual size read( void *pBuf, size nBytes ); |
70 | virtual size_t read( void *pBuf, size_t nBytes, | 71 | virtual size read( void *pBuf, size nBytes, |
71 | uint32_t nSec, uint32_t nUSec=0 ); | 72 | uint32_t nSec, uint32_t nUSec=0 ); |
72 | virtual size_t write( const void *pBuf, size_t nBytes ); | 73 | virtual size write( const void *pBuf, size nBytes ); |
73 | virtual size_t write( const void *pBuf, size_t nBytes, | 74 | virtual size write( const void *pBuf, size nBytes, |
74 | uint32_t nSec, uint32_t nUSec=0 ); | 75 | uint32_t nSec, uint32_t nUSec=0 ); |
75 | using Stream::write; | 76 | using Stream::write; |
76 | 77 | ||
77 | virtual long tell(); | 78 | virtual size tell(); |
78 | virtual void seek( long offset ); | 79 | virtual void seek( size offset ); |
79 | virtual void setPos( long pos ); | 80 | virtual void setPos( size pos ); |
80 | virtual void setPosEnd( long pos ); | 81 | virtual void setPosEnd( size pos ); |
81 | virtual bool isEos(); | 82 | virtual bool isEos(); |
82 | virtual bool isOpen(); | 83 | virtual bool isOpen(); |
83 | 84 | ||
@@ -93,11 +94,15 @@ namespace Bu | |||
93 | virtual bool isBlocking(); | 94 | virtual bool isBlocking(); |
94 | virtual void setBlocking( bool bBlocking=true ); | 95 | virtual void setBlocking( bool bBlocking=true ); |
95 | 96 | ||
96 | virtual void setSize( long iSize ); | 97 | virtual void setSize( size iSize ); |
97 | 98 | ||
98 | Bu::FString getAddress() const; | 99 | Bu::FString getAddress() const; |
99 | operator int() const; | 100 | operator int() const; |
100 | 101 | ||
102 | virtual size getSize() const; | ||
103 | virtual size getBlockSize() const; | ||
104 | virtual Bu::FString getLocation() const; | ||
105 | |||
101 | private: | 106 | private: |
102 | void setAddress(); | 107 | void setAddress(); |
103 | 108 | ||