Skip to content

Commit 756ac27

Browse files
committed
1,ChannelInitializer改成pipelineInitializer
2,smallfile增加不需要设置最大size的接口
1 parent 437f665 commit 756ac27

File tree

51 files changed

+385
-265
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+385
-265
lines changed

cetty-beanstalk/src/cetty/beanstalk/builder/BeanstalkClientBuilder.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ BeanstalkClientBuilder::BeanstalkClientBuilder(const EventLoopPoolPtr& eventLoop
5050
init();
5151
}
5252

53-
bool initializeChannel(const ChannelPtr& channel) {
54-
ChannelPipeline& pipeline = channel->pipeline();
55-
53+
bool initializeChannel(ChannelPipeline& pipeline) {
5654
pipeline.addLast<BeanstalkCommandEncoder::HandlerPtr>("beanstalkEncoder",
5755
BeanstalkCommandEncoder::HandlerPtr(new BeanstalkCommandEncoder));
5856

cetty-core/build/cetty/cetty.vcxproj

+7-1
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,12 @@
175175
<ClCompile Include="..\..\src\cetty\handler\timeout\TimeoutException.cpp" />
176176
<ClCompile Include="..\..\src\cetty\handler\timeout\WriteTimeoutException.cpp" />
177177
<ClCompile Include="..\..\src\cetty\handler\timeout\WriteTimeoutHandler.cpp" />
178+
<ClCompile Include="..\..\src\cetty\logging\LogConsoleSink.cpp" />
178179
<ClCompile Include="..\..\src\cetty\logging\Logger.cpp" />
179180
<ClCompile Include="..\..\src\cetty\logging\LogMessage.cpp" />
180181
<ClCompile Include="..\..\src\cetty\logging\LogPatternFormatter.cpp" />
182+
<ClCompile Include="..\..\src\cetty\logging\LogSink.cpp" />
183+
<ClCompile Include="..\..\src\cetty\logging\LogWin32DebugSink.cpp" />
181184
<ClCompile Include="..\..\src\cetty\util\Adler32.cpp" />
182185
<ClCompile Include="..\..\src\cetty\util\Base64.cpp" />
183186
<ClCompile Include="..\..\src\cetty\util\CurrentThread.cpp" />
@@ -220,7 +223,7 @@
220223
<ClInclude Include="..\..\..\include\cetty\channel\ChannelInboundBufferHandler.h" />
221224
<ClInclude Include="..\..\..\include\cetty\channel\ChannelInboundMessageFilter.h" />
222225
<ClInclude Include="..\..\..\include\cetty\channel\ChannelInboundMessageHandler.h" />
223-
<ClInclude Include="..\..\..\include\cetty\channel\ChannelInitializer.h" />
226+
<ClInclude Include="..\..\..\include\cetty\channel\ChannelPipelineInitializer.h" />
224227
<ClInclude Include="..\..\..\include\cetty\channel\ChannelMessageContainer.h" />
225228
<ClInclude Include="..\..\..\include\cetty\channel\ChannelMessageHandler.h" />
226229
<ClInclude Include="..\..\..\include\cetty\channel\ChannelMessageHandlerContext.h" />
@@ -321,6 +324,7 @@
321324
<ClInclude Include="..\..\..\include\cetty\handler\timeout\TimeoutException.h" />
322325
<ClInclude Include="..\..\..\include\cetty\handler\timeout\WriteTimeoutException.h" />
323326
<ClInclude Include="..\..\..\include\cetty\handler\timeout\WriteTimeoutHandler.h" />
327+
<ClInclude Include="..\..\..\include\cetty\logging\LogConsoleSink.h" />
324328
<ClInclude Include="..\..\..\include\cetty\logging\LogFileSink.h" />
325329
<ClInclude Include="..\..\..\include\cetty\logging\Logger.h" />
326330
<ClInclude Include="..\..\..\include\cetty\logging\LoggerHelper.h" />
@@ -329,6 +333,8 @@
329333
<ClInclude Include="..\..\..\include\cetty\logging\LogPatternFormatter.h" />
330334
<ClInclude Include="..\..\..\include\cetty\logging\LogScribeSink.h" />
331335
<ClInclude Include="..\..\..\include\cetty\logging\LogSink.h" />
336+
<ClInclude Include="..\..\..\include\cetty\logging\LogSinkPtr.h" />
337+
<ClInclude Include="..\..\..\include\cetty\logging\LogWin32DebugSink.h" />
332338
<ClInclude Include="..\..\..\include\cetty\Platform.h" />
333339
<ClInclude Include="..\..\..\include\cetty\PlatformWin32.h" />
334340
<ClInclude Include="..\..\..\include\cetty\Types.h" />

cetty-core/build/cetty/cetty.vcxproj.filters

+24-6
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,15 @@
332332
<ClCompile Include="..\..\src\cetty\channel\asio\AsioDeadlineTimeout.cpp">
333333
<Filter>channel\asio</Filter>
334334
</ClCompile>
335+
<ClCompile Include="..\..\src\cetty\logging\LogWin32DebugSink.cpp">
336+
<Filter>logging</Filter>
337+
</ClCompile>
338+
<ClCompile Include="..\..\src\cetty\logging\LogConsoleSink.cpp">
339+
<Filter>logging</Filter>
340+
</ClCompile>
341+
<ClCompile Include="..\..\src\cetty\logging\LogSink.cpp">
342+
<Filter>logging</Filter>
343+
</ClCompile>
335344
</ItemGroup>
336345
<ItemGroup>
337346
<ClInclude Include="..\..\..\include\cetty\channel\ChannelHandlerContext.h">
@@ -535,9 +544,6 @@
535544
<ClInclude Include="..\..\..\include\cetty\channel\ChannelPipeline.h">
536545
<Filter>buffer</Filter>
537546
</ClInclude>
538-
<ClInclude Include="..\..\..\include\cetty\channel\ChannelPipeline.h">
539-
<Filter>buffer</Filter>
540-
</ClInclude>
541547
<ClInclude Include="..\..\..\include\cetty\logging\Logger.h">
542548
<Filter>logging</Filter>
543549
</ClInclude>
@@ -639,9 +645,6 @@
639645
<ClInclude Include="..\..\..\include\cetty\channel\VoidMessage.h">
640646
<Filter>channel</Filter>
641647
</ClInclude>
642-
<ClInclude Include="..\..\..\include\cetty\channel\ChannelInitializer.h">
643-
<Filter>channel</Filter>
644-
</ClInclude>
645648
<ClInclude Include="..\..\..\include\cetty\channel\ChannelHandlerWrapper.h">
646649
<Filter>channel</Filter>
647650
</ClInclude>
@@ -876,5 +879,20 @@
876879
<ClInclude Include="..\..\..\include\cetty\channel\ChannelMessageTailLinkContext.h">
877880
<Filter>channel</Filter>
878881
</ClInclude>
882+
<ClInclude Include="..\..\..\include\cetty\channel\ChannelPipelineInitializer.h">
883+
<Filter>channel</Filter>
884+
</ClInclude>
885+
<ClInclude Include="..\..\..\include\cetty\channel\ChannelPipeline.h">
886+
<Filter>channel</Filter>
887+
</ClInclude>
888+
<ClInclude Include="..\..\..\include\cetty\logging\LogConsoleSink.h">
889+
<Filter>logging</Filter>
890+
</ClInclude>
891+
<ClInclude Include="..\..\..\include\cetty\logging\LogWin32DebugSink.h">
892+
<Filter>logging</Filter>
893+
</ClInclude>
894+
<ClInclude Include="..\..\..\include\cetty\logging\LogSinkPtr.h">
895+
<Filter>logging</Filter>
896+
</ClInclude>
879897
</ItemGroup>
880898
</Project>

cetty-core/example/discard/server/DiscardServer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121

2222
#include <cetty/bootstrap/ServerBootstrap.h>
23-
#include <cetty/channel/ChannelInitializer.h>
23+
#include <cetty/channel/ChannelPipelineInitializer.h>
2424

2525
#include "DiscardServerHandler.h"
2626

@@ -43,7 +43,7 @@ int main(int argc, char* argv[]) {
4343
threadCount = atoi(argv[1]);
4444
}
4545

46-
ChannelInitializer1<DiscardServerHandler> initializer("discard");
46+
ChannelPipelineInitializer1<DiscardServerHandler> initializer("discard");
4747

4848
ServerBootstrap bootstrap(threadCount);
4949

cetty-core/example/echo/client/EchoClient.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#include <cetty/bootstrap/ClientBootstrap.h>
99
#include <cetty/channel/ChannelPipeline.h>
10-
#include <cetty/channel/ChannelInitializer.h>
10+
#include <cetty/channel/ChannelPipelineInitializer.h>
1111
#include <cetty/channel/InetAddress.h>
1212
#include <cetty/channel/ChannelFuture.h>
1313

@@ -51,7 +51,7 @@ int main(int argc, char* argv[]) {
5151

5252
// Configure the client.
5353
ClientBootstrap bootstrap(ioThreadCount);
54-
ChannelInitializer1<EchoClientHandler> initializer;
54+
ChannelPipelineInitializer1<EchoClientHandler> initializer;
5555

5656
// Set up the pipeline factory.
5757
bootstrap.setInitializer(

cetty-core/example/echo/server/EchoServer.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include <cetty/channel/InetAddress.h>
88
#include <cetty/channel/ChannelFuture.h>
9-
#include <cetty/channel/ChannelInitializer.h>
9+
#include <cetty/channel/ChannelPipelineInitializer.h>
1010

1111
#include <cetty/bootstrap/ServerBootstrap.h>
1212

@@ -30,8 +30,8 @@ int main(int argc, char* argv[]) {
3030
threadCount = atoi(argv[1]);
3131
}
3232

33-
Logger::logLevel(LogLevel::DEBUG);
34-
ChannelInitializer1<EchoServerHandler> initializer("echo");
33+
Logger::setLevel(LogLevel::DEBUG);
34+
ChannelPipelineInitializer1<EchoServerHandler> initializer("echo");
3535

3636
ServerBootstrap bootstrap(threadCount);
3737

cetty-core/example/http/snoop/server/HttpServer.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include <cetty/bootstrap/ServerBootstrap.h>
2222
#include <cetty/bootstrap/asio/AsioServerBootstrap.h>
2323

24-
#include <cetty/channel/ChannelInitializer.h>
24+
#include <cetty/channel/ChannelPipelineInitializer.h>
2525
#include <cetty/handler/codec/http/HttpServerCodec.h>
2626
#include <cetty/handler/codec/http/HttpChunkAggregator.h>
2727
#include "HttpRequestHandler.h"
@@ -43,14 +43,15 @@ using namespace cetty::handler::codec::http;
4343

4444
int main(int argc, const char* argv[]) {
4545
// Configure the server.
46-
AsioServerBootstrap bootstrap(0);
46+
ServerBootstrap bootstrap(0);
4747

48-
ChannelInitializer2<HttpServerCodec, HttpRequestHandler> initializer;
48+
ChannelPipelineInitializer2<HttpServerCodec, HttpRequestHandler> initializer;
4949

5050
bootstrap.setChildOption(ChannelOption::CO_TCP_NODELAY, true)
5151
.setOption(ChannelOption::CO_SO_REUSEADDR, true)
5252
.setOption(ChannelOption::CO_SO_BACKLOG, 4096)
53-
.setChildInitializer(boost::bind<bool>(initializer, _1));
53+
.setChildInitializer(boost::bind<bool>(initializer, _1))
54+
.bind(8080)->await();
5455

55-
bootstrap.bind(8080);
56+
bootstrap.waitingForExit();
5657
};

cetty-core/example/proxy/HexDumpProxy.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ using namespace cetty::handler::logging;
3535
* @version $Rev: 2080 $, $Date: 2010-01-26 18:04:19 +0900 (Tue, 26 Jan 2010) $
3636
*/
3737

38-
bool initializeChannel(const ChannelPtr& channel,
38+
bool initializeChannel(ChannelPipeline& pipeline,
3939
const std::string& host,
4040
int port) {
41-
channel->pipeline().addLast<LoggingHandler::Ptr>("log",
41+
pipeline.addLast<LoggingHandler::Ptr>("log",
4242
LoggingHandler::Ptr(new LoggingHandler(LogLevel.INFO)));
4343

44-
channel->pipeline().addLast<HexDumpProxyFrontendHandler::Ptr>("proxy",
44+
pipeline.addLast<HexDumpProxyFrontendHandler::Ptr>("proxy",
4545
HexDumpProxyFrontendHandler::Ptr(
4646
new HexDumpProxyFrontendHandler(host, port)));
4747
}

cetty-core/src/cetty/bootstrap/ClientBootstrap.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,13 @@ ChannelFuturePtr ClientBootstrap::connect(const InetAddress& remote,
7777
ChannelException("Failed to create a new channel."));
7878
}
7979

80-
ch->setInitializer(initializer_);
80+
if (!initializer()) {
81+
LOG_INFO << "has not set channel pipeline initializer.";
82+
return NullChannel::instance()->newFailedFuture(
83+
ChannelException("has not set channel pipeline initializer."));
84+
}
85+
86+
ch->setInitializer(initializer());
8187
ch->open();
8288

8389
// Set the options.

cetty-core/src/cetty/bootstrap/ServerBootstrap.cpp

+3-5
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
#include <cetty/channel/InetAddress.h>
2626
#include <cetty/channel/NullChannel.h>
2727
#include <cetty/channel/ChannelConfig.h>
28-
#include <cetty/channel/ChannelException.h>
2928
#include <cetty/channel/ChannelPipeline.h>
30-
#include <cetty/channel/ChannelInitializer.h>
29+
#include <cetty/channel/ChannelException.h>
3130
#include <cetty/channel/ChannelFutureListener.h>
31+
#include <cetty/channel/ChannelPipelineInitializer.h>
3232
#include <cetty/channel/ChannelMessageHandlerContext.h>
3333

3434
#include <cetty/util/Exception.h>
@@ -225,9 +225,7 @@ void ServerBootstrap::shutdown() {
225225
clearChannels();
226226
}
227227

228-
bool ServerBootstrap::initServerChannel(const ChannelPtr& channel) {
229-
ChannelPipeline& pipeline = channel->pipeline();
230-
228+
bool ServerBootstrap::initServerChannel(ChannelPipeline& pipeline) {
231229
pipeline.addLast<Acceptor>("acceptor",
232230
Acceptor::Ptr(new Acceptor(*this)));
233231

cetty-core/src/cetty/channel/Channel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ void Channel::open() {
7777
closeFuture_ = new DefaultChannelFuture(self, false);
7878

7979
if (initializer_) {
80-
initializer_(self);
80+
initializer_(*pipeline_);
8181
}
8282
}
8383
else {

cetty-core/src/cetty/channel/ChannelPipeline.cpp

+17-20
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,23 @@ namespace channel {
4040
using namespace cetty::buffer;
4141
using namespace cetty::util;
4242

43-
class DummyHandler : private boost::noncopyable {
43+
class NullChannelHandlerContext : public ChannelHandlerContext {
4444
public:
45-
typedef ChannelMessageHandlerContext<DummyHandler,
46-
VoidMessage,
47-
VoidMessage,
48-
VoidMessage,
49-
VoidMessage,
50-
VoidMessageContainer,
51-
VoidMessageContainer,
52-
VoidMessageContainer,
53-
VoidMessageContainer> Context;
54-
55-
typedef ChannelHandlerWrapper<DummyHandler>::Handler Handler;
56-
typedef ChannelHandlerWrapper<DummyHandler>::HandlerPtr HandlerPtr;
45+
NullChannelHandlerContext()
46+
: ChannelHandlerContext("_null") {
47+
}
5748

58-
public:
59-
void registerTo(Context& ctx) {}
49+
virtual ~NullChannelHandlerContext() {
50+
}
51+
52+
protected:
53+
virtual boost::any getInboundMessageContainer() {
54+
return boost::any();
55+
}
56+
57+
virtual boost::any getOutboundMessageContainer() {
58+
return boost::any();
59+
}
6060
};
6161

6262
ChannelPipeline::ChannelPipeline(const ChannelPtr& channel)
@@ -67,9 +67,7 @@ ChannelPipeline::ChannelPipeline(const ChannelPtr& channel)
6767
head_(),
6868
tail_() {
6969

70-
head_ = tail_ = new DummyHandler::Context("dummyHeader",
71-
DummyHandler::HandlerPtr(new DummyHandler));
72-
70+
head_ = tail_ = new NullChannelHandlerContext;
7371
voidFuture_ = new VoidChannelFuture(channel_);
7472
}
7573

@@ -87,8 +85,7 @@ void ChannelPipeline::setHead(ChannelHandlerContext* ctx) {
8785
ChannelHandlerContext* newHead = ctx;
8886

8987
if (!newHead) {
90-
newHead = new DummyHandler::Context("dummyHeader",
91-
DummyHandler::HandlerPtr(new DummyHandler));
88+
newHead = new NullChannelHandlerContext;
9289
}
9390

9491
newHead->initialize(*this);

cetty-core/src/cetty/channel/EventLoopPool.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,9 @@ EventLoopPool::EventLoopPool(int ioThreadCount)
6868
EventLoopPool::~EventLoopPool() {
6969
}
7070

71+
void EventLoopPool::insertLoop(const ThreadId& id, const EventLoopPtr& loop) {
72+
allEventLoops_.insert(std::make_pair(id, loop));
73+
}
74+
7175
}
7276
}

cetty-core/src/cetty/channel/asio/AsioWriteOperationQueue.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ AsioWriteOperation::AsioWriteOperation(const ChannelBufferPtr& buffer,
5454
BOOST_ASSERT(byteSize == byteSize_ &&
5555
"buffer size should be same after compact");
5656

57-
buffers_[buffers_.truncatedCnt++] = AsioBuffer(bytes, byteSize_);
57+
buffers_.push_back(AsioBuffer(bytes, byteSize_));
5858
}
5959
else {
6060
for (int i = 0, j = gathering.blockCount(); i < j; ++i) {
6161
const StringPiece& bytes = gathering.at(i);
62-
buffers_[buffers_.truncatedCnt++] =
63-
AsioBuffer(const_cast<char*>(bytes.data()), bytes.size());
62+
buffers_.push_back(
63+
AsioBuffer(const_cast<char*>(bytes.data()), bytes.size()));
6464
}
6565
}
6666
}

0 commit comments

Comments
 (0)