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
05770b138d
CodecUtil should be final
2012-05-29 17:25:38 -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
b10cf29393
Add isDecodable/isEncodable() to codecs to support stacked codecs
2012-05-29 13:34:01 -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
81e8c49931
Fix bugs in ZlibDecoder / Port the factorial example
...
- Fixed IndexOutOfBoundsException in ZlibDecoder
- Fixed a bug where ZlibDecoder raises an exception when a connection
is closed
2012-05-29 00:06:00 -07:00
Trustin Lee
e00f303e4f
Fix compilation error caused by recent changes in AbstractChannel
2012-05-28 05:32:48 -07:00
Trustin Lee
ef4ee49800
Merge branch 'master' into next-api
2012-05-28 05:30:13 -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
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
norman
326b88c430
A small optimization for the fix of #360
2012-05-24 08:47:35 +02:00
Norman Maurer
609caeba94
Merge pull request #363 from sunng87/master
...
Fix #360 , add check for empty string buffer
2012-05-23 23:40:55 -07:00
Sun Ning
a6d7105761
fix #360 , add check for empty buffer; also add unit test for this scenario
2012-05-24 14:33:19 +08: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