diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-18 12:56:04 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-18 12:56:04 +0000 |
commit | 9cedd561d1cdc80c8c2212e8c36e4dd6cb78c149 (patch) | |
tree | 5a47934e1498a5823c8c55a34d386c77a5697c29 /webkit/glue/devtools | |
parent | 59d9535e13048aacde05e4c50f1c97d5d3ecfcdf (diff) | |
download | chromium_src-9cedd561d1cdc80c8c2212e8c36e4dd6cb78c149.zip chromium_src-9cedd561d1cdc80c8c2212e8c36e4dd6cb78c149.tar.gz chromium_src-9cedd561d1cdc80c8c2212e8c36e4dd6cb78c149.tar.bz2 |
Make Rpc dispatch in DevTools static, remove redundant JSON parsing.
Review URL: http://codereview.chromium.org/44007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11957 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/devtools')
-rw-r--r-- | webkit/glue/devtools/devtools_rpc.h | 26 | ||||
-rw-r--r-- | webkit/glue/devtools/devtools_rpc_unittest.cc | 9 |
2 files changed, 19 insertions, 16 deletions
diff --git a/webkit/glue/devtools/devtools_rpc.h b/webkit/glue/devtools/devtools_rpc.h index 97a23c5..c85b32a 100644 --- a/webkit/glue/devtools/devtools_rpc.h +++ b/webkit/glue/devtools/devtools_rpc.h @@ -44,8 +44,7 @@ // calls to the underlying MyApi methods: // // MyApi* real_object; -// MyApiDispatch dispatch; -// dispatch.Dispatch(real_object, raw_string_call_generated_by_stub); +// MyApiDispatch::Dispatch(real_object, raw_string_call_generated_by_stub); // // will make corresponding calls to the real object. @@ -158,7 +157,7 @@ case CLASS::METHOD_##Method: { \ #define TOOLS_RPC_DISPATCH1(Method, T1) \ case CLASS::METHOD_##Method: { \ RpcTypeTrait<T1>::DispatchType t1; \ - DevToolsRpc::GetListValue(*message.get(), 2, &t1); \ + DevToolsRpc::GetListValue(message, 2, &t1); \ delegate->Method( \ RpcTypeTrait<T1>::Pass(t1)); \ return true; \ @@ -168,8 +167,8 @@ case CLASS::METHOD_##Method: { \ case CLASS::METHOD_##Method: { \ RpcTypeTrait<T1>::DispatchType t1; \ RpcTypeTrait<T2>::DispatchType t2; \ - DevToolsRpc::GetListValue(*message.get(), 2, &t1); \ - DevToolsRpc::GetListValue(*message.get(), 3, &t2); \ + DevToolsRpc::GetListValue(message, 2, &t1); \ + DevToolsRpc::GetListValue(message, 3, &t2); \ delegate->Method( \ RpcTypeTrait<T1>::Pass(t1), \ RpcTypeTrait<T2>::Pass(t2) \ @@ -182,9 +181,9 @@ case CLASS::METHOD_##Method: { \ RpcTypeTrait<T1>::DispatchType t1; \ RpcTypeTrait<T2>::DispatchType t2; \ RpcTypeTrait<T3>::DispatchType t3; \ - DevToolsRpc::GetListValue(*message.get(), 2, &t1); \ - DevToolsRpc::GetListValue(*message.get(), 3, &t2); \ - DevToolsRpc::GetListValue(*message.get(), 4, &t3); \ + DevToolsRpc::GetListValue(message, 2, &t1); \ + DevToolsRpc::GetListValue(message, 3, &t2); \ + DevToolsRpc::GetListValue(message, 4, &t3); \ delegate->Method( \ RpcTypeTrait<T1>::Pass(t1), \ RpcTypeTrait<T2>::Pass(t2), \ @@ -237,16 +236,21 @@ class Class##Dispatch { \ public: \ Class##Dispatch() {} \ virtual ~Class##Dispatch() {} \ - bool Dispatch(Class* delegate, const std::string& raw_msg) { \ + \ + static bool Dispatch(Class* delegate, const std::string& raw_msg) { \ OwnPtr<ListValue> message( \ static_cast<ListValue*>(DevToolsRpc::ParseMessage(raw_msg))); \ + return Dispatch(delegate, *message.get()); \ + } \ + \ + static bool Dispatch(Class* delegate, const ListValue& message) { \ int class_id; \ - message->GetInteger(0, &class_id); \ + message.GetInteger(0, &class_id); \ if (class_id != RpcTypeToNumber<Class>::number) { \ return false; \ } \ int method; \ - message->GetInteger(1, &method); \ + message.GetInteger(1, &method); \ typedef Class CLASS; \ switch (method) { \ STRUCT( \ diff --git a/webkit/glue/devtools/devtools_rpc_unittest.cc b/webkit/glue/devtools/devtools_rpc_unittest.cc index 282d511..30e9b00 100644 --- a/webkit/glue/devtools/devtools_rpc_unittest.cc +++ b/webkit/glue/devtools/devtools_rpc_unittest.cc @@ -74,7 +74,6 @@ TEST_F(DevToolsRpcTests, TestSerialize) { TEST_F(DevToolsRpcTests, TestDispatch) { MockTestRpcClass local; MockTestRpcClass remote; - TestRpcClassDispatch dispatch; // Call 1. local.Reset(); @@ -83,7 +82,7 @@ TEST_F(DevToolsRpcTests, TestDispatch) { remote.Method0(); remote.Replay(); - dispatch.Dispatch(&remote, local.get_log()); + TestRpcClassDispatch::Dispatch(&remote, local.get_log()); remote.Verify(); // Call 2. @@ -92,7 +91,7 @@ TEST_F(DevToolsRpcTests, TestDispatch) { remote.Reset(); remote.Method1(10); remote.Replay(); - dispatch.Dispatch(&remote, local.get_log()); + TestRpcClassDispatch::Dispatch(&remote, local.get_log()); remote.Verify(); // Call 3. @@ -102,7 +101,7 @@ TEST_F(DevToolsRpcTests, TestDispatch) { remote.Method2(20, "foo"); remote.Replay(); - dispatch.Dispatch(&remote, local.get_log()); + TestRpcClassDispatch::Dispatch(&remote, local.get_log()); remote.Verify(); // Call 4. @@ -113,7 +112,7 @@ TEST_F(DevToolsRpcTests, TestDispatch) { remote.Method3(30, "foo", value); remote.Replay(); - dispatch.Dispatch(&remote, local.get_log()); + TestRpcClassDispatch::Dispatch(&remote, local.get_log()); remote.Verify(); } |