Trustin Lee
e5bcc74cd5
Warn if the last inbound handler forwarded an exceptionCaught() event
2012-05-30 11:48:04 -07:00
Trustin Lee
cca35454d2
Ensure channelInboundBufferUpdated is fired after channelActive
2012-05-30 11:32:39 -07:00
Trustin Lee
47fa2ef2e8
Use LinkedHashSet instead of HashSet to preserve order of execution
2012-05-30 10:17:45 -07:00
Trustin Lee
9f9045c3b4
Add EventLoop implementation for the local transport
2012-05-30 04:33:43 -07:00
Trustin Lee
c17e5b458a
Typo
2012-05-30 04:28:01 -07:00
Trustin Lee
4154f42520
Less restriction in shutdown hook modification
2012-05-30 04:27:19 -07:00
Trustin Lee
078a502c5f
Add shutdown hooks to SingleThreadEventLoop
...
- LocalChannel and LocalServerChannel uses it to close themselves on
shutdown
- LocalEcho example does not call close() anymore because the channels
are closed automatically on shutdown
2012-05-30 04:23:15 -07:00
Trustin Lee
243f6581c6
Safer shutdown
2012-05-30 04:06:15 -07:00
Trustin Lee
65e224f149
Safer shutdown
2012-05-30 04:05:10 -07:00
Trustin Lee
a53ecbf5f1
Implement the local transport
...
- Replace the old local example with localecho example
- Channel's outbound buffer is guaranteed to be created on construction
time.
2012-05-30 03:58:14 -07:00
Trustin Lee
392623749e
Fix compilation errors
2012-05-30 02:01:48 -07:00
Trustin Lee
78974e85c5
AbstractUnsafe.out() -> directOutbound()
...
- to avoid confusion between Channel.outbound()
2012-05-30 00:38:23 -07:00
Trustin Lee
f4c6bcafaf
Keep channel's outbound buffer in AbstractChannel
...
- Replace firstOut() with newOutboundBuffer()
2012-05-30 00:35:53 -07:00
Trustin Lee
a9948d681e
Throw NoSuchBufferException instead of returning null
...
- Exception in this case makes a user less confusing
- To reduce the overhead of filling the stack trace,
NoSuchBufferException has a public pre-constructed instance.
- This is necessary because codec framework sometimes need to support
both type of outbound buffers.
- Fixed a bug where SpdyFrameEncoder did not handle ping messages
- Reduced memory copy in codec embedder (EmbeddedChannel)
2012-05-29 17:25:09 -07:00
Trustin Lee
8237afff64
Ported most examples
...
- Renamed ChannelBootstrap to Bootstrap
- Renamed ServerChannelBootstrap to ServerBootstrap
- Moved bootstrap classes to io.netty.bootstrap as before
- Moved unfoldAndAdd() to a separate utility class
- Fixed a bug in unfoldAndAdd() where it did not handle ChannelBuffer
correctly
2012-05-29 16:41:26 -07:00
Trustin Lee
026715e818
Refactor the pipeline API to support stacked codecs
...
- Previous API did not support the pipeline which contains multiple
MessageToStreamEncoders because there was no way to find the closest
outbound byte buffer. Now you always get the correct buffer even if
the handler that provides the buffer is placed distantly.
For example:
Channel -> MsgAEncoder -> MsgBEncoder -> MsgCEncoder
Msg(A|B|C)Encoder will all have access to the channel's outbound
byte buffer. Previously, it was simply impossible.
- Improved ChannelBufferHolder.toString()
2012-05-29 12:09:29 -07:00
Trustin Lee
6d39c342b6
Add FIXME
2012-05-28 05:20:32 -07:00
Trustin Lee
e48281471b
Limit future notification stack depth / Robost writeCounter management
...
- Also ported the discard example while testing this commit
2012-05-28 05:05:49 -07:00
Trustin Lee
a2698e65fb
Added more convenience methods to bootstraps
2012-05-28 01:23:58 -07:00
Trustin Lee
626c5ef9c9
Remove the classes that are not part of Netty 4.0.0.Alpha1
...
- Will add them back before Beta1
2012-05-27 19:39:10 -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
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
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
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
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
7ecad7a8ac
Add ChannelInboundMessageHandlerAdapter
2012-05-23 09:47:38 -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