Index: ipc/ipc_message_utils.h |
diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h |
index 69ea7cb6d8a08e68815c393fa099d60ce0e3bc62..64f554b6811a365c24a2bbc657d43ee81a720041 100644 |
--- a/ipc/ipc_message_utils.h |
+++ b/ipc/ipc_message_utils.h |
@@ -31,29 +31,6 @@ |
#include "ipc/ipc_param_traits.h" |
#include "ipc/ipc_sync_message.h" |
-#if defined(COMPILER_GCC) |
-// GCC "helpfully" tries to inline template methods in release mode. Except we |
-// want the majority of the template junk being expanded once in the |
-// implementation file (and only provide the definitions in |
-// ipc_message_utils_impl.h in those files) and exported, instead of expanded |
-// at every call site. Special note: GCC happily accepts the attribute before |
-// the method declaration, but only acts on it if it is after. |
-#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40500 |
-// Starting in gcc 4.5, the noinline no longer implies the concept covered by |
-// the introduced noclone attribute, which will create specialized versions of |
-// functions/methods when certain types are constant. |
-// www.gnu.org/software/gcc/gcc-4.5/changes.html |
-#define IPC_MSG_NOINLINE __attribute__((noinline, noclone)); |
-#else |
-#define IPC_MSG_NOINLINE __attribute__((noinline)); |
-#endif |
-#elif defined(COMPILER_MSVC) |
-// MSVC++ doesn't do this. |
-#define IPC_MSG_NOINLINE |
-#else |
-#error "Please add the noinline property for your new compiler here." |
-#endif |
- |
namespace base { |
class DictionaryValue; |
class FilePath; |
@@ -932,17 +909,6 @@ struct IPC_EXPORT ParamTraits<MSG> { |
//----------------------------------------------------------------------------- |
// Generic message subclasses |
-// Used for asynchronous messages. |
-template <class ParamType> |
-class MessageSchema { |
- public: |
- typedef ParamType Param; |
- typedef typename base::TupleTypes<ParamType>::ParamTuple RefParam; |
- |
- static void Write(Message* msg, const RefParam& p) IPC_MSG_NOINLINE; |
- static bool Read(const Message* msg, Param* p) IPC_MSG_NOINLINE; |
-}; |
- |
// defined in ipc_logging.cc |
IPC_EXPORT void GenerateLogData(const std::string& channel, |
const Message& message, |
@@ -989,79 +955,6 @@ inline void LogReplyParamsToMessage(const ReplyParamType& reply_params, |
inline void ConnectMessageAndReply(const Message* msg, Message* reply) {} |
#endif |
-// This class assumes that its template argument is a RefTuple (a Tuple with |
-// reference elements). This would go into ipc_message_utils_impl.h, but it is |
-// also used by chrome_frame. |
-template <class RefTuple> |
-class ParamDeserializer : public MessageReplyDeserializer { |
- public: |
- explicit ParamDeserializer(const RefTuple& out) : out_(out) { } |
- |
- bool SerializeOutputParameters(const IPC::Message& msg, |
- base::PickleIterator iter) override { |
- return ReadParam(&msg, &iter, &out_); |
- } |
- |
- RefTuple out_; |
-}; |
- |
-// Used for synchronous messages. |
-template <class SendParamType, class ReplyParamType> |
-class SyncMessageSchema { |
- public: |
- typedef SendParamType SendParam; |
- typedef typename base::TupleTypes<SendParam>::ParamTuple RefSendParam; |
- typedef ReplyParamType ReplyParam; |
- |
- static void Write(Message* msg, const RefSendParam& send) IPC_MSG_NOINLINE; |
- static bool ReadSendParam(const Message* msg, SendParam* p) IPC_MSG_NOINLINE; |
- static bool ReadReplyParam( |
- const Message* msg, |
- typename base::TupleTypes<ReplyParam>::ValueTuple* p) IPC_MSG_NOINLINE; |
- |
- template<class T, class S, class Method> |
- static bool DispatchWithSendParams(bool ok, const SendParam& send_params, |
- const Message* msg, T* obj, S* sender, |
- Method func) { |
- Message* reply = SyncMessage::GenerateReply(msg); |
- if (ok) { |
- typename base::TupleTypes<ReplyParam>::ValueTuple reply_params; |
- base::DispatchToMethod(obj, func, send_params, &reply_params); |
- WriteParam(reply, reply_params); |
- LogReplyParamsToMessage(reply_params, msg); |
- } else { |
- NOTREACHED() << "Error deserializing message " << msg->type(); |
- reply->set_reply_error(); |
- } |
- sender->Send(reply); |
- return ok; |
- } |
- |
- template<class T, class Method> |
- static bool DispatchDelayReplyWithSendParams(bool ok, |
- const SendParam& send_params, |
- const Message* msg, T* obj, |
- Method func) { |
- Message* reply = SyncMessage::GenerateReply(msg); |
- if (ok) { |
- base::Tuple<Message&> t = base::MakeRefTuple(*reply); |
- ConnectMessageAndReply(msg, reply); |
- base::DispatchToMethod(obj, func, send_params, &t); |
- } else { |
- NOTREACHED() << "Error deserializing message " << msg->type(); |
- reply->set_reply_error(); |
- obj->Send(reply); |
- } |
- return ok; |
- } |
- |
- template <typename... Ts> |
- static void WriteReplyParams(Message* reply, Ts... args) { |
- ReplyParam p(args...); |
- WriteParam(reply, p); |
- } |
-}; |
- |
} // namespace IPC |
#endif // IPC_IPC_MESSAGE_UTILS_H_ |