Skip to content

Commit 5995878

Browse files
committed
Add CustomModule for RPC and Http.
1 parent 226a0c3 commit 5995878

8 files changed

+52
-0
lines changed

src/http/http_client.cc

+3
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ void HttpClient::add_filter(RPCFilter *filter)
131131
case RPCModuleTypeMetrics:
132132
module = new HttpMetricsModule();
133133
break;
134+
case RPCModuleTypeCustom:
135+
module = new HttpCustomModule();
136+
break;
134137
default:
135138
break;
136139
}

src/http/http_module.h

+2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ class HttpMetricsModule : public MetricsModule
4141
bool server_begin(SubTask *task, RPCModuleData& data) override;
4242
};
4343

44+
using HttpCustomModule = MetricsModule;
45+
4446
} // end namespace srpc
4547

4648
#endif

src/http/http_server.cc

+3
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ void HttpServer::add_filter(RPCFilter *filter)
4747
case RPCModuleTypeMetrics:
4848
module = new HttpMetricsModule();
4949
break;
50+
case RPCModuleTypeCustom:
51+
module = new HttpCustomModule();
52+
break;
5053
default:
5154
break;
5255
}

src/module/rpc_module.cc

+20
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,26 @@ bool SnowFlake::get_id(long long group_id, long long machine_id,
135135
return true;
136136
}
137137

138+
bool CustomModule::client_begin(SubTask *task, RPCModuleData& data)
139+
{
140+
return true;
141+
}
142+
143+
bool CustomModule::client_end(SubTask *task, RPCModuleData& data)
144+
{
145+
return true;
146+
}
147+
148+
bool CustomModule::server_begin(SubTask *task, RPCModuleData& data)
149+
{
150+
return true;
151+
}
152+
153+
bool CustomModule::server_end(SubTask *task, RPCModuleData& data)
154+
{
155+
return true;
156+
}
157+
138158
bool http_set_header_module_data(const RPCModuleData& data,
139159
protocol::HttpMessage *msg)
140160
{

src/module/rpc_module.h

+17
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,23 @@ class SnowFlake
116116
long long machine_shift;
117117
};
118118

119+
class CustomModule : public RPCModule
120+
{
121+
public:
122+
bool client_begin(SubTask *task, RPCModuleData& data) override;
123+
bool client_end(SubTask *task, RPCModuleData& data) override;
124+
bool server_begin(SubTask *task, RPCModuleData& data) override;
125+
bool server_end(SubTask *task, RPCModuleData& data) override;
126+
127+
public:
128+
CustomModule() : RPCModule(RPCModuleTypeCustom) { }
129+
};
130+
131+
template<class SERVER_TASK, class CLIENT_TASK>
132+
class RPCCustomModule : public CustomModule
133+
{
134+
};
135+
119136
bool http_get_header_module_data(const protocol::HttpMessage *msg,
120137
RPCModuleData& data);
121138

src/rpc_basic.h

+1
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ enum RPCModuleType
143143
RPCModuleTypeTrace = 1,
144144
RPCModuleTypeMetrics = 2,
145145
RPCModuleTypeLog = 3,
146+
RPCModuleTypeCustom = 4,
146147
};
147148

148149
class RPCCommon

src/rpc_client.h

+3
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ void RPCClient<RPCTYPE>::add_filter(RPCFilter *filter)
154154
case RPCModuleTypeMetrics:
155155
module = new RPCMetricsModule<SERVER_TASK, CLIENT_TASK>();
156156
break;
157+
case RPCModuleTypeCustom:
158+
module = new RPCCustomModule<SERVER_TASK, CLIENT_TASK>();
159+
break;
157160
default:
158161
break;
159162
}

src/rpc_server.h

+3
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ void RPCServer<RPCTYPE>::add_filter(RPCFilter *filter)
165165
case RPCModuleTypeMetrics:
166166
module = new RPCMetricsModule<SERVER_TASK, CLIENT_TASK>();
167167
break;
168+
case RPCModuleTypeCustom:
169+
module = new RPCCustomModule<SERVER_TASK, CLIENT_TASK>();
170+
break;
168171
default:
169172
break;
170173
}

0 commit comments

Comments
 (0)