Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
B
brpc
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
brpc
Commits
c2388562
Commit
c2388562
authored
Apr 09, 2018
by
wangxuefeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename ThriftBinary* to ThriftFramed*
parent
c332d839
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
99 additions
and
97 deletions
+99
-97
Makefile
Makefile
+1
-1
client.cpp
example/thrift_extension_c++/client.cpp
+1
-1
server.cpp
example/thrift_extension_c++/server.cpp
+7
-7
global.cpp
src/brpc/global.cpp
+4
-4
thrift_protocol.cpp
src/brpc/policy/thrift_protocol.cpp
+20
-20
thrift_protocol.h
src/brpc/policy/thrift_protocol.h
+6
-6
thrift_binary_message.cpp
src/brpc/thrift_binary_message.cpp
+34
-34
thrift_binary_message.h
src/brpc/thrift_binary_message.h
+14
-12
thrift_service.h
src/brpc/thrift_service.h
+10
-10
thrift_utils.h
src/butil/thrift_utils.h
+2
-2
No files found.
Makefile
View file @
c2388562
...
@@ -6,7 +6,7 @@ include config.mk
...
@@ -6,7 +6,7 @@ include config.mk
# 2. Added -D__const__= : Avoid over-optimizations of TLS variables by GCC>=4.8
# 2. Added -D__const__= : Avoid over-optimizations of TLS variables by GCC>=4.8
# 3. Removed -Werror: Not block compilation for non-vital warnings, especially when the
# 3. Removed -Werror: Not block compilation for non-vital warnings, especially when the
# code is tested on newer systems. If the code is used in production, add -Werror back
# code is tested on newer systems. If the code is used in production, add -Werror back
CPPFLAGS
+=
-D
ENABLE_THRIFT_FRAMED_PROTOCOL
-D
BTHREAD_USE_FAST_PTHREAD_MUTEX
-D__const__
=
-D_GNU_SOURCE
-DUSE_SYMBOLIZE
-DNO_TCMALLOC
-D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS
-DNDEBUG
-DBRPC_REVISION
=
\"
$(
shell
git rev-parse
--short
HEAD
)
\"
CPPFLAGS
+=
-DBTHREAD_USE_FAST_PTHREAD_MUTEX
-D__const__
=
-D_GNU_SOURCE
-DUSE_SYMBOLIZE
-DNO_TCMALLOC
-D__STDC_FORMAT_MACROS
-D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS
-DNDEBUG
-DBRPC_REVISION
=
\"
$(
shell
git rev-parse
--short
HEAD
)
\"
CXXFLAGS
=
$(CPPFLAGS)
-O2
-pipe
-Wall
-W
-fPIC
-fstrict-aliasing
-Wno-invalid-offsetof
-Wno-unused-parameter
-fno-omit-frame-pointer
-std
=
c++0x
CXXFLAGS
=
$(CPPFLAGS)
-O2
-pipe
-Wall
-W
-fPIC
-fstrict-aliasing
-Wno-invalid-offsetof
-Wno-unused-parameter
-fno-omit-frame-pointer
-std
=
c++0x
CFLAGS
=
$(CPPFLAGS)
-O2
-pipe
-Wall
-W
-fPIC
-fstrict-aliasing
-Wno-unused-parameter
-fno-omit-frame-pointer
CFLAGS
=
$(CPPFLAGS)
-O2
-pipe
-Wall
-W
-fPIC
-fstrict-aliasing
-Wno-unused-parameter
-fno-omit-frame-pointer
DEBUG_CXXFLAGS
=
$
(
filter-out
-DNDEBUG
,
$(CXXFLAGS)
)
-DUNIT_TEST
-DBVAR_NOT_LINK_DEFAULT_VARIABLES
DEBUG_CXXFLAGS
=
$
(
filter-out
-DNDEBUG
,
$(CXXFLAGS)
)
-DUNIT_TEST
-DBVAR_NOT_LINK_DEFAULT_VARIABLES
...
...
example/thrift_extension_c++/client.cpp
View file @
c2388562
...
@@ -90,7 +90,7 @@ int main(int argc, char* argv[]) {
...
@@ -90,7 +90,7 @@ int main(int argc, char* argv[]) {
<<
"Sending thrift requests at qps="
<<
g_latency_recorder
.
qps
(
1
)
<<
"Sending thrift requests at qps="
<<
g_latency_recorder
.
qps
(
1
)
<<
" latency="
<<
g_latency_recorder
.
latency
(
1
);
<<
" latency="
<<
g_latency_recorder
.
latency
(
1
);
sleep
(
1
);
//
sleep(1);
}
}
...
...
example/thrift_extension_c++/server.cpp
View file @
c2388562
...
@@ -48,10 +48,10 @@ public:
...
@@ -48,10 +48,10 @@ public:
// Adapt your own thrift-based protocol to use brpc
// Adapt your own thrift-based protocol to use brpc
class
MyThriftProtocol
:
public
brpc
::
ThriftFramedService
{
class
MyThriftProtocol
:
public
brpc
::
ThriftFramedService
{
public
:
public
:
void
ProcessThrift
Binary
Request
(
const
brpc
::
Server
&
,
void
ProcessThrift
Framed
Request
(
const
brpc
::
Server
&
,
brpc
::
Controller
*
cntl
,
brpc
::
Controller
*
cntl
,
const
brpc
::
Thrift
Binary
Message
&
request
,
const
brpc
::
Thrift
Framed
Message
&
request
,
brpc
::
Thrift
Binary
Message
*
response
,
brpc
::
Thrift
Framed
Message
*
response
,
brpc
::
ThriftFramedClosure
*
done
)
{
brpc
::
ThriftFramedClosure
*
done
)
{
// This object helps you to call done->Run() in RAII style. If you need
// This object helps you to call done->Run() in RAII style. If you need
// to process the request asynchronously, pass done_guard.release().
// to process the request asynchronously, pass done_guard.release().
...
@@ -81,10 +81,10 @@ public:
...
@@ -81,10 +81,10 @@ public:
// Adapt your own thrift-based protocol to use brpc
// Adapt your own thrift-based protocol to use brpc
class
MyThriftProtocolAnother
:
public
brpc
::
ThriftFramedService
{
class
MyThriftProtocolAnother
:
public
brpc
::
ThriftFramedService
{
public
:
public
:
void
ProcessThrift
Binary
Request
(
const
brpc
::
Server
&
,
void
ProcessThrift
Framed
Request
(
const
brpc
::
Server
&
,
brpc
::
Controller
*
cntl
,
brpc
::
Controller
*
cntl
,
const
brpc
::
Thrift
Binary
Message
&
request
,
const
brpc
::
Thrift
Framed
Message
&
request
,
brpc
::
Thrift
Binary
Message
*
response
,
brpc
::
Thrift
Framed
Message
*
response
,
brpc
::
ThriftFramedClosure
*
done
)
{
brpc
::
ThriftFramedClosure
*
done
)
{
// This object helps you to call done->Run() in RAII style. If you need
// This object helps you to call done->Run() in RAII style. If you need
// to process the request asynchronously, pass done_guard.release().
// to process the request asynchronously, pass done_guard.release().
...
@@ -97,7 +97,7 @@ public:
...
@@ -97,7 +97,7 @@ public:
return
;
return
;
}
}
brpc
::
Thrift
Binary
Message
request_ref
=
request
;
brpc
::
Thrift
Framed
Message
request_ref
=
request
;
example
::
EchoRequest
*
req
=
request_ref
.
cast
<
example
::
EchoRequest
>
();
example
::
EchoRequest
*
req
=
request_ref
.
cast
<
example
::
EchoRequest
>
();
example
::
EchoResponse
*
res
=
response
->
cast
<
example
::
EchoResponse
>
();
example
::
EchoResponse
*
res
=
response
->
cast
<
example
::
EchoResponse
>
();
...
...
src/brpc/global.cpp
View file @
c2388562
...
@@ -423,10 +423,10 @@ static void GlobalInitializeOrDieImpl() {
...
@@ -423,10 +423,10 @@ static void GlobalInitializeOrDieImpl() {
}
}
#ifdef ENABLE_THRIFT_FRAMED_PROTOCOL
#ifdef ENABLE_THRIFT_FRAMED_PROTOCOL
Protocol
thrift_binary_protocol
=
{
ParseThrift
Binary
Message
,
Protocol
thrift_binary_protocol
=
{
ParseThrift
Framed
Message
,
SerializeThrift
BinaryRequest
,
PackThriftBinary
Request
,
SerializeThrift
FramedRequest
,
PackThriftFramed
Request
,
ProcessThrift
BinaryRequest
,
ProcessThriftBinary
Response
,
ProcessThrift
FramedRequest
,
ProcessThriftFramed
Response
,
VerifyThrift
Binary
Request
,
NULL
,
NULL
,
VerifyThrift
Framed
Request
,
NULL
,
NULL
,
CONNECTION_TYPE_POOLED_AND_SHORT
,
"thrift"
};
CONNECTION_TYPE_POOLED_AND_SHORT
,
"thrift"
};
if
(
RegisterProtocol
(
PROTOCOL_THRIFT
,
thrift_binary_protocol
)
!=
0
)
{
if
(
RegisterProtocol
(
PROTOCOL_THRIFT
,
thrift_binary_protocol
)
!=
0
)
{
exit
(
1
);
exit
(
1
);
...
...
src/brpc/policy/thrift_protocol.cpp
View file @
c2388562
...
@@ -192,7 +192,7 @@ void ThriftFramedClosure::SetMethodName(const std::string& full_method_name) {
...
@@ -192,7 +192,7 @@ void ThriftFramedClosure::SetMethodName(const std::string& full_method_name) {
namespace
policy
{
namespace
policy
{
ParseResult
ParseThrift
Binary
Message
(
butil
::
IOBuf
*
source
,
ParseResult
ParseThrift
Framed
Message
(
butil
::
IOBuf
*
source
,
Socket
*
,
bool
/*read_eof*/
,
const
void
*
/*arg*/
)
{
Socket
*
,
bool
/*read_eof*/
,
const
void
*
/*arg*/
)
{
char
header_buf
[
sizeof
(
thrift_binary_head_t
)
+
3
];
char
header_buf
[
sizeof
(
thrift_binary_head_t
)
+
3
];
...
@@ -230,14 +230,14 @@ struct CallMethodInBackupThreadArgs {
...
@@ -230,14 +230,14 @@ struct CallMethodInBackupThreadArgs {
ThriftFramedService
*
service
;
ThriftFramedService
*
service
;
const
Server
*
server
;
const
Server
*
server
;
Controller
*
controller
;
Controller
*
controller
;
const
Thrift
Binary
Message
*
request
;
const
Thrift
Framed
Message
*
request
;
Thrift
Binary
Message
*
response
;
Thrift
Framed
Message
*
response
;
ThriftFramedClosure
*
done
;
ThriftFramedClosure
*
done
;
};
};
static
void
CallMethodInBackupThread
(
void
*
void_args
)
{
static
void
CallMethodInBackupThread
(
void
*
void_args
)
{
CallMethodInBackupThreadArgs
*
args
=
(
CallMethodInBackupThreadArgs
*
)
void_args
;
CallMethodInBackupThreadArgs
*
args
=
(
CallMethodInBackupThreadArgs
*
)
void_args
;
args
->
service
->
ProcessThrift
Binary
Request
(
*
args
->
server
,
args
->
controller
,
args
->
service
->
ProcessThrift
Framed
Request
(
*
args
->
server
,
args
->
controller
,
*
args
->
request
,
args
->
response
,
*
args
->
request
,
args
->
response
,
args
->
done
);
args
->
done
);
delete
args
;
delete
args
;
...
@@ -246,8 +246,8 @@ static void CallMethodInBackupThread(void* void_args) {
...
@@ -246,8 +246,8 @@ static void CallMethodInBackupThread(void* void_args) {
static
void
EndRunningCallMethodInPool
(
ThriftFramedService
*
service
,
static
void
EndRunningCallMethodInPool
(
ThriftFramedService
*
service
,
const
Server
&
server
,
const
Server
&
server
,
Controller
*
controller
,
Controller
*
controller
,
const
Thrift
Binary
Message
&
request
,
const
Thrift
Framed
Message
&
request
,
Thrift
Binary
Message
*
response
,
Thrift
Framed
Message
*
response
,
ThriftFramedClosure
*
done
)
{
ThriftFramedClosure
*
done
)
{
CallMethodInBackupThreadArgs
*
args
=
new
CallMethodInBackupThreadArgs
;
CallMethodInBackupThreadArgs
*
args
=
new
CallMethodInBackupThreadArgs
;
args
->
service
=
service
;
args
->
service
=
service
;
...
@@ -259,7 +259,7 @@ static void EndRunningCallMethodInPool(ThriftFramedService* service,
...
@@ -259,7 +259,7 @@ static void EndRunningCallMethodInPool(ThriftFramedService* service,
return
EndRunningUserCodeInPool
(
CallMethodInBackupThread
,
args
);
return
EndRunningUserCodeInPool
(
CallMethodInBackupThread
,
args
);
};
};
void
ProcessThrift
Binary
Request
(
InputMessageBase
*
msg_base
)
{
void
ProcessThrift
Framed
Request
(
InputMessageBase
*
msg_base
)
{
const
int64_t
start_parse_us
=
butil
::
cpuwide_time_us
();
const
int64_t
start_parse_us
=
butil
::
cpuwide_time_us
();
...
@@ -302,8 +302,8 @@ void ProcessThriftBinaryRequest(InputMessageBase* msg_base) {
...
@@ -302,8 +302,8 @@ void ProcessThriftBinaryRequest(InputMessageBase* msg_base) {
}
}
ThriftFramedClosure
*
thrift_done
=
new
(
space
)
ThriftFramedClosure
(
sub_space
);
ThriftFramedClosure
*
thrift_done
=
new
(
space
)
ThriftFramedClosure
(
sub_space
);
Controller
*
cntl
=
&
(
thrift_done
->
_controller
);
Controller
*
cntl
=
&
(
thrift_done
->
_controller
);
Thrift
Binary
Message
*
req
=
&
(
thrift_done
->
_request
);
Thrift
Framed
Message
*
req
=
&
(
thrift_done
->
_request
);
Thrift
Binary
Message
*
res
=
&
(
thrift_done
->
_response
);
Thrift
Framed
Message
*
res
=
&
(
thrift_done
->
_response
);
req
->
head
=
*
req_head
;
req
->
head
=
*
req_head
;
msg
->
payload
.
swap
(
req
->
body
);
msg
->
payload
.
swap
(
req
->
body
);
...
@@ -369,10 +369,10 @@ void ProcessThriftBinaryRequest(InputMessageBase* msg_base) {
...
@@ -369,10 +369,10 @@ void ProcessThriftBinaryRequest(InputMessageBase* msg_base) {
span
->
AsParent
();
span
->
AsParent
();
}
}
if
(
!
FLAGS_usercode_in_pthread
)
{
if
(
!
FLAGS_usercode_in_pthread
)
{
return
service
->
ProcessThrift
Binary
Request
(
*
server
,
cntl
,
*
req
,
res
,
thrift_done
);
return
service
->
ProcessThrift
Framed
Request
(
*
server
,
cntl
,
*
req
,
res
,
thrift_done
);
}
}
if
(
BeginRunningUserCode
())
{
if
(
BeginRunningUserCode
())
{
service
->
ProcessThrift
Binary
Request
(
*
server
,
cntl
,
*
req
,
res
,
thrift_done
);
service
->
ProcessThrift
Framed
Request
(
*
server
,
cntl
,
*
req
,
res
,
thrift_done
);
return
EndRunningUserCodeInPlace
();
return
EndRunningUserCodeInPlace
();
}
else
{
}
else
{
return
EndRunningCallMethodInPool
(
return
EndRunningCallMethodInPool
(
...
@@ -381,11 +381,11 @@ void ProcessThriftBinaryRequest(InputMessageBase* msg_base) {
...
@@ -381,11 +381,11 @@ void ProcessThriftBinaryRequest(InputMessageBase* msg_base) {
}
}
void
ProcessThrift
Binary
Response
(
InputMessageBase
*
msg_base
)
{
void
ProcessThrift
Framed
Response
(
InputMessageBase
*
msg_base
)
{
const
int64_t
start_parse_us
=
butil
::
cpuwide_time_us
();
const
int64_t
start_parse_us
=
butil
::
cpuwide_time_us
();
DestroyingPtr
<
MostCommonMessage
>
msg
(
static_cast
<
MostCommonMessage
*>
(
msg_base
));
DestroyingPtr
<
MostCommonMessage
>
msg
(
static_cast
<
MostCommonMessage
*>
(
msg_base
));
// Fetch correlation id that we saved before in `PacThrift
Binary
Request'
// Fetch correlation id that we saved before in `PacThrift
Framed
Request'
const
CallId
cid
=
{
static_cast
<
uint64_t
>
(
msg
->
socket
()
->
correlation_id
())
};
const
CallId
cid
=
{
static_cast
<
uint64_t
>
(
msg
->
socket
()
->
correlation_id
())
};
Controller
*
cntl
=
NULL
;
Controller
*
cntl
=
NULL
;
const
int
rc
=
bthread_id_lock
(
cid
,
(
void
**
)
&
cntl
);
const
int
rc
=
bthread_id_lock
(
cid
,
(
void
**
)
&
cntl
);
...
@@ -404,8 +404,8 @@ void ProcessThriftBinaryResponse(InputMessageBase* msg_base) {
...
@@ -404,8 +404,8 @@ void ProcessThriftBinaryResponse(InputMessageBase* msg_base) {
span
->
set_start_parse_us
(
start_parse_us
);
span
->
set_start_parse_us
(
start_parse_us
);
}
}
// MUST be Thrift
BinaryMessage (checked in SerializeThriftBinary
Request)
// MUST be Thrift
FramedMessage (checked in SerializeThriftFramed
Request)
Thrift
BinaryMessage
*
response
=
(
ThriftBinary
Message
*
)
cntl
->
response
();
Thrift
FramedMessage
*
response
=
(
ThriftFramed
Message
*
)
cntl
->
response
();
const
int
saved_error
=
cntl
->
ErrorCode
();
const
int
saved_error
=
cntl
->
ErrorCode
();
if
(
response
!=
NULL
)
{
if
(
response
!=
NULL
)
{
msg
->
meta
.
copy_to
(
&
response
->
head
,
sizeof
(
thrift_binary_head_t
));
msg
->
meta
.
copy_to
(
&
response
->
head
,
sizeof
(
thrift_binary_head_t
));
...
@@ -506,7 +506,7 @@ void ProcessThriftBinaryResponse(InputMessageBase* msg_base) {
...
@@ -506,7 +506,7 @@ void ProcessThriftBinaryResponse(InputMessageBase* msg_base) {
accessor
.
OnResponse
(
cid
,
saved_error
);
accessor
.
OnResponse
(
cid
,
saved_error
);
}
}
bool
VerifyThrift
Binary
Request
(
const
InputMessageBase
*
msg_base
)
{
bool
VerifyThrift
Framed
Request
(
const
InputMessageBase
*
msg_base
)
{
Server
*
server
=
(
Server
*
)
msg_base
->
arg
();
Server
*
server
=
(
Server
*
)
msg_base
->
arg
();
if
(
server
->
options
().
auth
)
{
if
(
server
->
options
().
auth
)
{
LOG
(
WARNING
)
<<
"thrift does not support authentication"
;
LOG
(
WARNING
)
<<
"thrift does not support authentication"
;
...
@@ -515,14 +515,14 @@ bool VerifyThriftBinaryRequest(const InputMessageBase* msg_base) {
...
@@ -515,14 +515,14 @@ bool VerifyThriftBinaryRequest(const InputMessageBase* msg_base) {
return
true
;
return
true
;
}
}
void
SerializeThrift
Binary
Request
(
butil
::
IOBuf
*
request_buf
,
Controller
*
cntl
,
void
SerializeThrift
Framed
Request
(
butil
::
IOBuf
*
request_buf
,
Controller
*
cntl
,
const
google
::
protobuf
::
Message
*
req_base
)
{
const
google
::
protobuf
::
Message
*
req_base
)
{
if
(
req_base
==
NULL
)
{
if
(
req_base
==
NULL
)
{
return
cntl
->
SetFailed
(
EREQUEST
,
"request is NULL"
);
return
cntl
->
SetFailed
(
EREQUEST
,
"request is NULL"
);
}
}
ControllerPrivateAccessor
accessor
(
cntl
);
ControllerPrivateAccessor
accessor
(
cntl
);
const
Thrift
BinaryMessage
*
req
=
(
const
ThriftBinary
Message
*
)
req_base
;
const
Thrift
FramedMessage
*
req
=
(
const
ThriftFramed
Message
*
)
req_base
;
thrift_binary_head_t
head
=
req
->
head
;
thrift_binary_head_t
head
=
req
->
head
;
...
@@ -556,7 +556,7 @@ void SerializeThriftBinaryRequest(butil::IOBuf* request_buf, Controller* cntl,
...
@@ -556,7 +556,7 @@ void SerializeThriftBinaryRequest(butil::IOBuf* request_buf, Controller* cntl,
xfer
+=
out_portocol
->
writeFieldBegin
(
"request"
,
::
apache
::
thrift
::
protocol
::
T_STRUCT
,
1
);
xfer
+=
out_portocol
->
writeFieldBegin
(
"request"
,
::
apache
::
thrift
::
protocol
::
T_STRUCT
,
1
);
// request's write
// request's write
Thrift
BinaryMessage
*
r
=
const_cast
<
ThriftBinary
Message
*>
(
req
);
Thrift
FramedMessage
*
r
=
const_cast
<
ThriftFramed
Message
*>
(
req
);
xfer
+=
r
->
write
(
out_portocol
.
get
());
xfer
+=
r
->
write
(
out_portocol
.
get
());
// end request's write
// end request's write
...
@@ -583,7 +583,7 @@ void SerializeThriftBinaryRequest(butil::IOBuf* request_buf, Controller* cntl,
...
@@ -583,7 +583,7 @@ void SerializeThriftBinaryRequest(butil::IOBuf* request_buf, Controller* cntl,
}
}
void
PackThrift
Binary
Request
(
void
PackThrift
Framed
Request
(
butil
::
IOBuf
*
packet_buf
,
butil
::
IOBuf
*
packet_buf
,
SocketMessage
**
,
SocketMessage
**
,
uint64_t
correlation_id
,
uint64_t
correlation_id
,
...
...
src/brpc/policy/thrift_protocol.h
View file @
c2388562
...
@@ -24,18 +24,18 @@ namespace brpc {
...
@@ -24,18 +24,18 @@ namespace brpc {
namespace
policy
{
namespace
policy
{
// Parse binary protocol format of thrift framed
// Parse binary protocol format of thrift framed
ParseResult
ParseThrift
Binary
Message
(
butil
::
IOBuf
*
source
,
Socket
*
socket
,
bool
read_eof
,
const
void
*
arg
);
ParseResult
ParseThrift
Framed
Message
(
butil
::
IOBuf
*
source
,
Socket
*
socket
,
bool
read_eof
,
const
void
*
arg
);
// Actions to a (client) request in thrift binary framed format
// Actions to a (client) request in thrift binary framed format
void
ProcessThrift
Binary
Request
(
InputMessageBase
*
msg
);
void
ProcessThrift
Framed
Request
(
InputMessageBase
*
msg
);
// Actions to a (server) response in thrift binary framed format
// Actions to a (server) response in thrift binary framed format
void
ProcessThrift
Binary
Response
(
InputMessageBase
*
msg
);
void
ProcessThrift
Framed
Response
(
InputMessageBase
*
msg
);
void
SerializeThrift
Binary
Request
(
butil
::
IOBuf
*
request_buf
,
Controller
*
controller
,
void
SerializeThrift
Framed
Request
(
butil
::
IOBuf
*
request_buf
,
Controller
*
controller
,
const
google
::
protobuf
::
Message
*
request
);
const
google
::
protobuf
::
Message
*
request
);
void
PackThrift
Binary
Request
(
void
PackThrift
Framed
Request
(
butil
::
IOBuf
*
packet_buf
,
butil
::
IOBuf
*
packet_buf
,
SocketMessage
**
,
SocketMessage
**
,
uint64_t
correlation_id
,
uint64_t
correlation_id
,
...
@@ -45,7 +45,7 @@ void PackThriftBinaryRequest(
...
@@ -45,7 +45,7 @@ void PackThriftBinaryRequest(
const
Authenticator
*
);
const
Authenticator
*
);
// Verify authentication information in thrift binary format
// Verify authentication information in thrift binary format
bool
VerifyThrift
Binary
Request
(
const
InputMessageBase
*
msg
);
bool
VerifyThrift
Framed
Request
(
const
InputMessageBase
*
msg
);
}
// namespace policy
}
// namespace policy
}
// namespace brpc
}
// namespace brpc
...
...
src/brpc/thrift_binary_message.cpp
View file @
c2388562
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
namespace
brpc
{
namespace
brpc
{
namespace
{
namespace
{
const
::
google
::
protobuf
::
Descriptor
*
Thrift
Binary
Message_descriptor_
=
NULL
;
const
::
google
::
protobuf
::
Descriptor
*
Thrift
Framed
Message_descriptor_
=
NULL
;
}
// namespace
}
// namespace
...
@@ -41,7 +41,7 @@ void protobuf_AssignDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto() {
...
@@ -41,7 +41,7 @@ void protobuf_AssignDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto() {
::
google
::
protobuf
::
DescriptorPool
::
generated_pool
()
->
FindFileByName
(
::
google
::
protobuf
::
DescriptorPool
::
generated_pool
()
->
FindFileByName
(
"baidu/rpc/thrift_binary_message.proto"
);
"baidu/rpc/thrift_binary_message.proto"
);
GOOGLE_CHECK
(
file
!=
NULL
);
GOOGLE_CHECK
(
file
!=
NULL
);
Thrift
Binary
Message_descriptor_
=
file
->
message_type
(
0
);
Thrift
Framed
Message_descriptor_
=
file
->
message_type
(
0
);
}
}
namespace
{
namespace
{
...
@@ -55,13 +55,13 @@ inline void protobuf_AssignDescriptorsOnce() {
...
@@ -55,13 +55,13 @@ inline void protobuf_AssignDescriptorsOnce() {
void
protobuf_RegisterTypes
(
const
::
std
::
string
&
)
{
void
protobuf_RegisterTypes
(
const
::
std
::
string
&
)
{
protobuf_AssignDescriptorsOnce
();
protobuf_AssignDescriptorsOnce
();
::
google
::
protobuf
::
MessageFactory
::
InternalRegisterGeneratedMessage
(
::
google
::
protobuf
::
MessageFactory
::
InternalRegisterGeneratedMessage
(
Thrift
BinaryMessage_descriptor_
,
&
ThriftBinary
Message
::
default_instance
());
Thrift
FramedMessage_descriptor_
,
&
ThriftFramed
Message
::
default_instance
());
}
}
}
// namespace
}
// namespace
void
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
()
{
void
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
()
{
delete
Thrift
Binary
Message
::
default_instance_
;
delete
Thrift
Framed
Message
::
default_instance_
;
}
}
void
protobuf_AddDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto_impl
()
{
void
protobuf_AddDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto_impl
()
{
...
@@ -77,8 +77,8 @@ void protobuf_AddDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto_impl() {
...
@@ -77,8 +77,8 @@ void protobuf_AddDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto_impl() {
"hriftBinaryMessage"
,
58
);
"hriftBinaryMessage"
,
58
);
::
google
::
protobuf
::
MessageFactory
::
InternalRegisterGeneratedFile
(
::
google
::
protobuf
::
MessageFactory
::
InternalRegisterGeneratedFile
(
"thrift_binary_message.proto"
,
&
protobuf_RegisterTypes
);
"thrift_binary_message.proto"
,
&
protobuf_RegisterTypes
);
Thrift
BinaryMessage
::
default_instance_
=
new
ThriftBinary
Message
();
Thrift
FramedMessage
::
default_instance_
=
new
ThriftFramed
Message
();
Thrift
Binary
Message
::
default_instance_
->
InitAsDefaultInstance
();
Thrift
Framed
Message
::
default_instance_
->
InitAsDefaultInstance
();
::
google
::
protobuf
::
internal
::
OnShutdown
(
&
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
);
::
google
::
protobuf
::
internal
::
OnShutdown
(
&
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
);
}
}
...
@@ -103,59 +103,59 @@ struct StaticDescriptorInitializer_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
...
@@ -103,59 +103,59 @@ struct StaticDescriptorInitializer_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
#ifndef _MSC_VER
#ifndef _MSC_VER
#endif // !_MSC_VER
#endif // !_MSC_VER
Thrift
BinaryMessage
::
ThriftBinary
Message
()
Thrift
FramedMessage
::
ThriftFramed
Message
()
:
::
google
::
protobuf
::
Message
()
{
:
::
google
::
protobuf
::
Message
()
{
SharedCtor
();
SharedCtor
();
}
}
void
Thrift
Binary
Message
::
InitAsDefaultInstance
()
{
void
Thrift
Framed
Message
::
InitAsDefaultInstance
()
{
}
}
Thrift
BinaryMessage
::
ThriftBinaryMessage
(
const
ThriftBinary
Message
&
from
)
Thrift
FramedMessage
::
ThriftFramedMessage
(
const
ThriftFramed
Message
&
from
)
:
::
google
::
protobuf
::
Message
()
{
:
::
google
::
protobuf
::
Message
()
{
SharedCtor
();
SharedCtor
();
MergeFrom
(
from
);
MergeFrom
(
from
);
}
}
void
Thrift
Binary
Message
::
SharedCtor
()
{
void
Thrift
Framed
Message
::
SharedCtor
()
{
memset
(
&
head
,
0
,
sizeof
(
head
));
memset
(
&
head
,
0
,
sizeof
(
head
));
}
}
Thrift
BinaryMessage
::~
ThriftBinary
Message
()
{
Thrift
FramedMessage
::~
ThriftFramed
Message
()
{
SharedDtor
();
SharedDtor
();
if
(
thrift_raw_instance
&&
thrift_raw_instance_deleter
)
{
if
(
thrift_raw_instance
&&
thrift_raw_instance_deleter
)
{
thrift_raw_instance_deleter
(
thrift_raw_instance
);
thrift_raw_instance_deleter
(
thrift_raw_instance
);
}
}
}
}
void
Thrift
Binary
Message
::
SharedDtor
()
{
void
Thrift
Framed
Message
::
SharedDtor
()
{
if
(
this
!=
default_instance_
)
{
if
(
this
!=
default_instance_
)
{
}
}
}
}
const
::
google
::
protobuf
::
Descriptor
*
Thrift
Binary
Message
::
descriptor
()
{
const
::
google
::
protobuf
::
Descriptor
*
Thrift
Framed
Message
::
descriptor
()
{
protobuf_AssignDescriptorsOnce
();
protobuf_AssignDescriptorsOnce
();
return
Thrift
Binary
Message_descriptor_
;
return
Thrift
Framed
Message_descriptor_
;
}
}
const
Thrift
BinaryMessage
&
ThriftBinary
Message
::
default_instance
()
{
const
Thrift
FramedMessage
&
ThriftFramed
Message
::
default_instance
()
{
if
(
default_instance_
==
NULL
)
if
(
default_instance_
==
NULL
)
protobuf_AddDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
();
protobuf_AddDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
();
return
*
default_instance_
;
return
*
default_instance_
;
}
}
Thrift
BinaryMessage
*
ThriftBinary
Message
::
default_instance_
=
NULL
;
Thrift
FramedMessage
*
ThriftFramed
Message
::
default_instance_
=
NULL
;
Thrift
BinaryMessage
*
ThriftBinary
Message
::
New
()
const
{
Thrift
FramedMessage
*
ThriftFramed
Message
::
New
()
const
{
return
new
Thrift
Binary
Message
;
return
new
Thrift
Framed
Message
;
}
}
void
Thrift
Binary
Message
::
Clear
()
{
void
Thrift
Framed
Message
::
Clear
()
{
memset
(
&
head
,
0
,
sizeof
(
head
));
memset
(
&
head
,
0
,
sizeof
(
head
));
body
.
clear
();
body
.
clear
();
}
}
bool
Thrift
Binary
Message
::
MergePartialFromCodedStream
(
bool
Thrift
Framed
Message
::
MergePartialFromCodedStream
(
::
google
::
protobuf
::
io
::
CodedInputStream
*
input
)
{
::
google
::
protobuf
::
io
::
CodedInputStream
*
input
)
{
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
::
google
::
protobuf
::
uint32
tag
;
::
google
::
protobuf
::
uint32
tag
;
...
@@ -169,55 +169,55 @@ bool ThriftBinaryMessage::MergePartialFromCodedStream(
...
@@ -169,55 +169,55 @@ bool ThriftBinaryMessage::MergePartialFromCodedStream(
#undef DO_
#undef DO_
}
}
void
Thrift
Binary
Message
::
SerializeWithCachedSizes
(
void
Thrift
Framed
Message
::
SerializeWithCachedSizes
(
::
google
::
protobuf
::
io
::
CodedOutputStream
*
)
const
{
::
google
::
protobuf
::
io
::
CodedOutputStream
*
)
const
{
}
}
::
google
::
protobuf
::
uint8
*
Thrift
Binary
Message
::
SerializeWithCachedSizesToArray
(
::
google
::
protobuf
::
uint8
*
Thrift
Framed
Message
::
SerializeWithCachedSizesToArray
(
::
google
::
protobuf
::
uint8
*
target
)
const
{
::
google
::
protobuf
::
uint8
*
target
)
const
{
return
target
;
return
target
;
}
}
int
Thrift
Binary
Message
::
ByteSize
()
const
{
int
Thrift
Framed
Message
::
ByteSize
()
const
{
return
sizeof
(
thrift_binary_head_t
)
+
body
.
size
();
return
sizeof
(
thrift_binary_head_t
)
+
body
.
size
();
}
}
void
Thrift
Binary
Message
::
MergeFrom
(
const
::
google
::
protobuf
::
Message
&
from
)
{
void
Thrift
Framed
Message
::
MergeFrom
(
const
::
google
::
protobuf
::
Message
&
from
)
{
GOOGLE_CHECK_NE
(
&
from
,
this
);
GOOGLE_CHECK_NE
(
&
from
,
this
);
const
Thrift
Binary
Message
*
source
=
const
Thrift
Framed
Message
*
source
=
::
google
::
protobuf
::
internal
::
dynamic_cast_if_available
<
const
Thrift
Binary
Message
*>
(
::
google
::
protobuf
::
internal
::
dynamic_cast_if_available
<
const
Thrift
Framed
Message
*>
(
&
from
);
&
from
);
if
(
source
==
NULL
)
{
if
(
source
==
NULL
)
{
LOG
(
ERROR
)
<<
"Can only merge from Thrift
Binary
Message"
;
LOG
(
ERROR
)
<<
"Can only merge from Thrift
Framed
Message"
;
return
;
return
;
}
else
{
}
else
{
MergeFrom
(
*
source
);
MergeFrom
(
*
source
);
}
}
}
}
void
Thrift
BinaryMessage
::
MergeFrom
(
const
ThriftBinary
Message
&
from
)
{
void
Thrift
FramedMessage
::
MergeFrom
(
const
ThriftFramed
Message
&
from
)
{
GOOGLE_CHECK_NE
(
&
from
,
this
);
GOOGLE_CHECK_NE
(
&
from
,
this
);
head
=
from
.
head
;
head
=
from
.
head
;
body
=
from
.
body
;
body
=
from
.
body
;
}
}
void
Thrift
Binary
Message
::
CopyFrom
(
const
::
google
::
protobuf
::
Message
&
from
)
{
void
Thrift
Framed
Message
::
CopyFrom
(
const
::
google
::
protobuf
::
Message
&
from
)
{
if
(
&
from
==
this
)
return
;
if
(
&
from
==
this
)
return
;
Clear
();
Clear
();
MergeFrom
(
from
);
MergeFrom
(
from
);
}
}
void
Thrift
BinaryMessage
::
CopyFrom
(
const
ThriftBinary
Message
&
from
)
{
void
Thrift
FramedMessage
::
CopyFrom
(
const
ThriftFramed
Message
&
from
)
{
if
(
&
from
==
this
)
return
;
if
(
&
from
==
this
)
return
;
Clear
();
Clear
();
MergeFrom
(
from
);
MergeFrom
(
from
);
}
}
bool
Thrift
Binary
Message
::
IsInitialized
()
const
{
bool
Thrift
Framed
Message
::
IsInitialized
()
const
{
return
true
;
return
true
;
}
}
void
Thrift
BinaryMessage
::
Swap
(
ThriftBinary
Message
*
other
)
{
void
Thrift
FramedMessage
::
Swap
(
ThriftFramed
Message
*
other
)
{
if
(
other
!=
this
)
{
if
(
other
!=
this
)
{
const
thrift_binary_head_t
tmp
=
other
->
head
;
const
thrift_binary_head_t
tmp
=
other
->
head
;
other
->
head
=
head
;
other
->
head
=
head
;
...
@@ -226,10 +226,10 @@ void ThriftBinaryMessage::Swap(ThriftBinaryMessage* other) {
...
@@ -226,10 +226,10 @@ void ThriftBinaryMessage::Swap(ThriftBinaryMessage* other) {
}
}
}
}
::
google
::
protobuf
::
Metadata
Thrift
Binary
Message
::
GetMetadata
()
const
{
::
google
::
protobuf
::
Metadata
Thrift
Framed
Message
::
GetMetadata
()
const
{
protobuf_AssignDescriptorsOnce
();
protobuf_AssignDescriptorsOnce
();
::
google
::
protobuf
::
Metadata
metadata
;
::
google
::
protobuf
::
Metadata
metadata
;
metadata
.
descriptor
=
Thrift
Binary
Message_descriptor_
;
metadata
.
descriptor
=
Thrift
Framed
Message_descriptor_
;
metadata
.
reflection
=
NULL
;
metadata
.
reflection
=
NULL
;
return
metadata
;
return
metadata
;
}
}
...
...
src/brpc/thrift_binary_message.h
View file @
c2388562
...
@@ -20,6 +20,8 @@
...
@@ -20,6 +20,8 @@
#include <functional>
#include <functional>
#include <string>
#include <string>
#include <boost/make_shared.hpp>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/repeated_field.h>
...
@@ -53,7 +55,7 @@ void protobuf_AssignDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto();
...
@@ -53,7 +55,7 @@ void protobuf_AssignDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto();
void
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
();
void
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
();
// Representing a thrift_binary request or response.
// Representing a thrift_binary request or response.
class
Thrift
Binary
Message
:
public
::
google
::
protobuf
::
Message
{
class
Thrift
Framed
Message
:
public
::
google
::
protobuf
::
Message
{
public
:
public
:
thrift_binary_head_t
head
;
thrift_binary_head_t
head
;
butil
::
IOBuf
body
;
butil
::
IOBuf
body
;
...
@@ -62,28 +64,28 @@ public:
...
@@ -62,28 +64,28 @@ public:
void
*
thrift_raw_instance
;
void
*
thrift_raw_instance
;
public
:
public
:
Thrift
Binary
Message
();
Thrift
Framed
Message
();
virtual
~
Thrift
Binary
Message
();
virtual
~
Thrift
Framed
Message
();
Thrift
BinaryMessage
(
const
ThriftBinary
Message
&
from
);
Thrift
FramedMessage
(
const
ThriftFramed
Message
&
from
);
inline
Thrift
BinaryMessage
&
operator
=
(
const
ThriftBinary
Message
&
from
)
{
inline
Thrift
FramedMessage
&
operator
=
(
const
ThriftFramed
Message
&
from
)
{
CopyFrom
(
from
);
CopyFrom
(
from
);
return
*
this
;
return
*
this
;
}
}
static
const
::
google
::
protobuf
::
Descriptor
*
descriptor
();
static
const
::
google
::
protobuf
::
Descriptor
*
descriptor
();
static
const
Thrift
Binary
Message
&
default_instance
();
static
const
Thrift
Framed
Message
&
default_instance
();
void
Swap
(
Thrift
Binary
Message
*
other
);
void
Swap
(
Thrift
Framed
Message
*
other
);
// implements Message ----------------------------------------------
// implements Message ----------------------------------------------
Thrift
Binary
Message
*
New
()
const
;
Thrift
Framed
Message
*
New
()
const
;
void
CopyFrom
(
const
::
google
::
protobuf
::
Message
&
from
);
void
CopyFrom
(
const
::
google
::
protobuf
::
Message
&
from
);
void
MergeFrom
(
const
::
google
::
protobuf
::
Message
&
from
);
void
MergeFrom
(
const
::
google
::
protobuf
::
Message
&
from
);
void
CopyFrom
(
const
Thrift
Binary
Message
&
from
);
void
CopyFrom
(
const
Thrift
Framed
Message
&
from
);
void
MergeFrom
(
const
Thrift
Binary
Message
&
from
);
void
MergeFrom
(
const
Thrift
Framed
Message
&
from
);
void
Clear
();
void
Clear
();
bool
IsInitialized
()
const
;
bool
IsInitialized
()
const
;
...
@@ -188,11 +190,11 @@ friend void protobuf_AssignDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto();
...
@@ -188,11 +190,11 @@ friend void protobuf_AssignDesc_baidu_2frpc_2fthrift_binary_5fmessage_2eproto();
friend
void
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
();
friend
void
protobuf_ShutdownFile_baidu_2frpc_2fthrift_binary_5fmessage_2eproto
();
void
InitAsDefaultInstance
();
void
InitAsDefaultInstance
();
static
Thrift
Binary
Message
*
default_instance_
;
static
Thrift
Framed
Message
*
default_instance_
;
};
};
template
<
typename
T
>
template
<
typename
T
>
class
ThriftMessage
:
public
Thrift
Binary
Message
{
class
ThriftMessage
:
public
Thrift
Framed
Message
{
public
:
public
:
ThriftMessage
()
{
ThriftMessage
()
{
...
...
src/brpc/thrift_service.h
View file @
c2388562
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
#define BRPC_THRIFT_SERVICE_H
#define BRPC_THRIFT_SERVICE_H
#include "brpc/controller.h" // Controller
#include "brpc/controller.h" // Controller
#include "brpc/thrift_binary_message.h" // Thrift
Binary
Message
#include "brpc/thrift_binary_message.h" // Thrift
Framed
Message
#include "brpc/describable.h"
#include "brpc/describable.h"
...
@@ -29,7 +29,7 @@ class Server;
...
@@ -29,7 +29,7 @@ class Server;
class
MethodStatus
;
class
MethodStatus
;
class
StatusService
;
class
StatusService
;
namespace
policy
{
namespace
policy
{
void
ProcessThrift
Binary
Request
(
InputMessageBase
*
msg_base
);
void
ProcessThrift
Framed
Request
(
InputMessageBase
*
msg_base
);
}
}
// The continuation of request processing. Namely send response back to client.
// The continuation of request processing. Namely send response back to client.
...
@@ -56,7 +56,7 @@ public:
...
@@ -56,7 +56,7 @@ public:
void
DoNotRespond
();
void
DoNotRespond
();
private
:
private
:
friend
void
policy
::
ProcessThrift
Binary
Request
(
InputMessageBase
*
msg_base
);
friend
void
policy
::
ProcessThrift
Framed
Request
(
InputMessageBase
*
msg_base
);
friend
class
DeleteThriftFramedClosure
;
friend
class
DeleteThriftFramedClosure
;
// Only callable by Run().
// Only callable by Run().
~
ThriftFramedClosure
();
~
ThriftFramedClosure
();
...
@@ -64,8 +64,8 @@ friend class DeleteThriftFramedClosure;
...
@@ -64,8 +64,8 @@ friend class DeleteThriftFramedClosure;
Socket
*
_socket_ptr
;
Socket
*
_socket_ptr
;
const
Server
*
_server
;
const
Server
*
_server
;
int64_t
_start_parse_us
;
int64_t
_start_parse_us
;
Thrift
Binary
Message
_request
;
Thrift
Framed
Message
_request
;
Thrift
Binary
Message
_response
;
Thrift
Framed
Message
_response
;
bool
_do_respond
;
bool
_do_respond
;
void
*
_additional_space
;
void
*
_additional_space
;
Controller
_controller
;
Controller
_controller
;
...
@@ -98,10 +98,10 @@ public:
...
@@ -98,10 +98,10 @@ public:
// request The thrift_binary request received.
// request The thrift_binary request received.
// response The thrift_binary response that you should fill in.
// response The thrift_binary response that you should fill in.
// done You must call done->Run() to end the processing.
// done You must call done->Run() to end the processing.
virtual
void
ProcessThrift
Binary
Request
(
const
Server
&
server
,
virtual
void
ProcessThrift
Framed
Request
(
const
Server
&
server
,
Controller
*
controller
,
Controller
*
controller
,
const
Thrift
Binary
Message
&
request
,
const
Thrift
Framed
Message
&
request
,
Thrift
Binary
Message
*
response
,
Thrift
Framed
Message
*
response
,
ThriftFramedClosure
*
done
)
=
0
;
ThriftFramedClosure
*
done
)
=
0
;
// Put descriptions into the stream.
// Put descriptions into the stream.
...
@@ -110,14 +110,14 @@ public:
...
@@ -110,14 +110,14 @@ public:
private
:
private
:
DISALLOW_COPY_AND_ASSIGN
(
ThriftFramedService
);
DISALLOW_COPY_AND_ASSIGN
(
ThriftFramedService
);
friend
class
ThriftFramedClosure
;
friend
class
ThriftFramedClosure
;
friend
void
policy
::
ProcessThrift
Binary
Request
(
InputMessageBase
*
msg_base
);
friend
void
policy
::
ProcessThrift
Framed
Request
(
InputMessageBase
*
msg_base
);
friend
class
StatusService
;
friend
class
StatusService
;
friend
class
Server
;
friend
class
Server
;
private
:
private
:
void
Expose
(
const
butil
::
StringPiece
&
prefix
);
void
Expose
(
const
butil
::
StringPiece
&
prefix
);
// Tracking status of non Thrift
Binary
PbService
// Tracking status of non Thrift
Framed
PbService
MethodStatus
*
_status
;
MethodStatus
*
_status
;
size_t
_additional_space
;
size_t
_additional_space
;
std
::
string
_cached_name
;
std
::
string
_cached_name
;
...
...
src/butil/thrift_utils.h
View file @
c2388562
...
@@ -28,8 +28,8 @@
...
@@ -28,8 +28,8 @@
namespace
brpc
{
namespace
brpc
{
bool
brpc_thrift_server_helper
(
const
brpc
::
Thrift
Binary
Message
&
request
,
bool
brpc_thrift_server_helper
(
const
brpc
::
Thrift
Framed
Message
&
request
,
brpc
::
Thrift
Binary
Message
*
response
,
brpc
::
Thrift
Framed
Message
*
response
,
boost
::
shared_ptr
<::
apache
::
thrift
::
TDispatchProcessor
>
processor
)
{
boost
::
shared_ptr
<::
apache
::
thrift
::
TDispatchProcessor
>
processor
)
{
auto
in_buffer
=
auto
in_buffer
=
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment