Trustin Lee
528b5c4328
Removed the modules that are not part of 4.0.0.Alpha1
...
- Will add them back before Beta1 is out
2012-05-27 19:28:28 -07:00
Trustin Lee
f4a19886d3
Reorder methods / Move buffer expansion logic in OIO
2012-05-27 05:31:18 -07:00
Trustin Lee
7b05f34171
Split AbstractOioChannel into its subtypes
...
- AbstractOioMessageChannel and AbstractOioStreamChannel
- Replaced 'if' with polymorphism
- Better performance
2012-05-27 05:19:45 -07:00
Trustin Lee
064b3dc9e5
Split AbstractNioChannel into two subtypes
...
- AbstractNioMessageChannel and AbstractNioStreamChannel
- Better performance
- Replaced 'if' checks with polymorphism
2012-05-27 05:07:23 -07:00
Trustin Lee
7327bb3522
Add SingleThreadEventLoop.runAllTasks()
...
- Removed duplicated processTaskQueue() in child event loops
- Simplified the cleanup of cancelled keys in NIO transport
2012-05-27 04:43:48 -07:00
Trustin Lee
3b8de9f133
Add LoggingHandler to ServerSocketChannel's pipeline
2012-05-27 04:17:33 -07:00
Trustin Lee
f29b6ae29a
Fix performance issue in OioSocketChannel since previous refactoring
2012-05-26 23:29:23 -07:00
Trustin Lee
6206d82b2c
Split AbstractChannel into AbstractOioChannel and AbstractNioChannel
...
- Simpler OIO transport
- Suits better for other transports such as AIO, RXTX, IOStream
- Add ChannelBufferHolders.discardBuffer()
2012-05-26 22:48:48 -07:00
Trustin Lee
a1bdf671f1
Simplified EventLoop implementation names
...
- Also
- Fixed a test failure
- Fixed compiler warnings related with ChannelInitializer type
parameters
2012-05-25 15:51:22 -07:00
Trustin Lee
61314ef51b
Split AbstractChannel.doFlush() into two variants for simpler user impl
...
- Also renamed doRead() to doReadMessages() and doReadBytes()
2012-05-25 15:32:28 -07:00
Trustin Lee
f60f918763
Fixed all SPDY echo tests / Handle closed old I/O channels correctly
2012-05-25 14:24:25 -07:00
Trustin Lee
01aa1647bb
Reduce GC in OioDatagramChannel.doRead/doFlush
2012-05-25 14:12:43 -07:00
Trustin Lee
2395bcd805
Process task queue before start to read
...
- Otherwise some tasks scheduled right after activation will be executed
with 1 second delay.
2012-05-25 14:06:33 -07:00
Trustin Lee
3d490810b8
Hide internal class from users
2012-05-25 14:01:19 -07:00
Trustin Lee
778fbc36a9
Remove selector spinning optimization
2012-05-25 13:59:31 -07:00
Trustin Lee
e2d69120bb
Ported OIO socket/datagram transport to the new API
2012-05-25 13:58:56 -07:00
Trustin Lee
b06a4bea6b
Fix a compilation error
2012-05-25 09:43:28 -07:00
Trustin Lee
bc5e8b6be1
Do not create an iterator unnecessarily
2012-05-25 06:30:30 -07:00
Trustin Lee
59f11ed64f
Optimize AbstractChannel and related classes
...
- AbstractChannel.doRead() is split into two versions so that the
implementation doesn't have to validate the buffer type.
- Optimized ChannelBufferHolder a little bit
- Reduced GC related with flush future notification
- Added FlushCheckpoint and DefaultChannelFuture implements it
opportunistically
-
2012-05-25 06:16:25 -07:00
Trustin Lee
02cb7adf03
Reduce GC in ChannelBuffer bulk operations
...
- Pre-create an NIO ByteBuffer for reuse instead of creating a new one
every time
2012-05-25 06:10:10 -07:00
Trustin Lee
25599018f2
Tiny bit of optimization in event loop
2012-05-24 21:04:12 -07:00
Trustin Lee
02144f70e1
Genericize ChannelInitializer
2012-05-24 15:12:14 -07:00
Trustin Lee
4a3c54b0fa
Add UDP_RECEIVE_PACKET_SIZE option for datagram transport
2012-05-24 10:37:51 -07:00
Trustin Lee
c7c923cab3
Ported the QOTM example to the new API
...
- Fixed bugs in the NIO datagram transports
- DefaultNioDatagramChannelConfig did not initialize on Java 6
2012-05-24 09:32:14 -07:00
Trustin Lee
c6f3b5762e
Implement NIO datagram transport with the new API
...
- AbstractChannel now handles flushing a message buffer
- Cleaned up DatagramChannel interface
- Removed ProtocolFamily because a user can create an NIO
DatagramChannel and specify it as a constructor parameter
- UniqueName and UniqueKey constructors became public so that
I don't need to create a subclass every time.
2012-05-24 08:57:10 -07:00
Trustin Lee
cd11786994
Fix typo in the comment
2012-05-24 08:51:46 -07:00
Trustin Lee
21a3d3fe02
Add more constructor to NioSocketChannel
2012-05-23 23:28:15 -07:00
Trustin Lee
a2d57144b4
Fix compilation errors
2012-05-23 11:47:37 -07:00
Trustin Lee
debaa6a72a
Fix resource management
2012-05-23 11:45:30 -07:00
Trustin Lee
c883b61503
Ported codec-http to the new API
...
- Added ChannelBufferHolders.catchAllBuffer()
- Relaxed UnsupportedMessageTypeException constructor signature
- EmbeddedChannel now uses the catchAllBuffer
- ChanelInboundMessageHandlerAdapter.messageReceive() throws Exception
- Added ChannelInboundStreamHandlerAdapter
2012-05-23 11:42:10 -07:00
Trustin Lee
50b4894c36
Use ChannelInboundMessageHandlerAdapter
2012-05-23 09:49:03 -07:00
Trustin Lee
7ecad7a8ac
Add ChannelInboundMessageHandlerAdapter
2012-05-23 09:47:38 -07:00
Trustin Lee
ee4c1a55eb
Fix a compilation error
2012-05-22 10:57:59 -07:00
Trustin Lee
baa3388859
Make the default constructor of CombinedChannelHandler protected
2012-05-20 20:57:00 +09:00
Trustin Lee
83f1b5fa35
Implement spinning in SelectorUtil.select()
...
- this seems to improve performance when the number of connections is
very small
2012-05-20 16:29:31 +09:00
Trustin Lee
cab983244d
Tidy up AbstractChannel.read()
2012-05-20 15:03:28 +09:00
Trustin Lee
3a8c10cc5a
Do not call expandReadBuffer too often
2012-05-20 14:30:26 +09:00
Trustin Lee
af37ec4f23
Ported the HTTP snoop example to the new API
...
- Replaced pipeline factories with initializers
- Ported essential parts related with HTTP to the new API
- Replaced ChannelHandlerAdapter.combine() with CombinedChannelHandler
- Fixed a bug where ReplayingDecoder does not notify the next handler
- Fixed a bug where ReplayingDecoder calls wrong callDecode() method
- Added a destination buffer as an argument to AbstractChannel.doRead()
for easier implementation
- Fixed a bug where NioSocketChannel did not try to increase the inbound
buffer size (moved the logic to AbstractChannel)
2012-05-20 14:19:11 +09:00
Trustin Lee
e846505ceb
Add combined codec classes and related utility method
2012-05-20 12:53:22 +09:00
Trustin Lee
e5da7b53dd
Add UnsupportedMessageTypeException
...
- Replaced some IllegalArgumentExceptions with
UnsupportedMessageTypeException
- MessageToMessage(Encoder|Decoder) should continue polling the
inbound buffer if encode() or decode() returns null
- aggregating codec can do that
2012-05-18 21:59:02 +09:00
Trustin Lee
9d3eeb9719
Fix compilation errors
2012-05-18 17:50:38 +09:00
Trustin Lee
ddb839eaf9
Make ReplayingDecoder extend StreamToMessageDecoder
2012-05-18 17:38:44 +09:00
Trustin Lee
d4a26c3c52
Add StreamToMessageDecoder.replace() ( #332 )
2012-05-18 17:37:41 +09:00
Trustin Lee
ca12e41406
Fix a compiler warning
2012-05-18 16:58:40 +09:00
Trustin Lee
5c3b432f60
Fix test failures due to recent changes with codec exceptions
2012-05-18 15:45:12 +09:00
Trustin Lee
2802b231e5
Make all codecs throw a CodecException
...
- Added CodecException which is either EncoderException or
DecoderException
- Made all decoder exceptions a subtype of DecoderException
- Replaced CodecEmbedderException with CodecException
- All abstract handlers wraps an exception with a CodecException
2012-05-18 15:42:36 +09:00
Trustin Lee
251a18160c
Move VoidEnum to util
2012-05-18 14:34:42 +09:00
Trustin Lee
dbd973d825
Introduce UniqueName, UniqueKey, and Signal
...
- UniqueKey removes the duplication between ChannelOption and
AttributeKey
- UniqueName provides common name collision check for AttributeKey,
ChannelOption, and Signal.
- Replaced ReplayError with Signal
2012-05-18 14:30:42 +09:00
Trustin Lee
5344dc242c
Finish porting the codec package to the new API
...
- Removed deprecated classes
- Changed type parameter of StreamToMessageDecoder and
MessageToMessageDecoder for more flexibility
- Made all tests in the codec package pass
2012-05-17 16:38:25 +09:00
Trustin Lee
1bf0dfe64a
Retrofit ReplayingDecoder with the new API
...
- Moved up to 'codec' from 'codec.replay'
- Test passes with Redis client codec
2012-05-17 12:37:37 +09:00