| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef IPC_IPC_MESSAGE_UTILS_H_ | 5 #ifndef IPC_IPC_MESSAGE_UTILS_H_ |
| 6 #define IPC_IPC_MESSAGE_UTILS_H_ | 6 #define IPC_IPC_MESSAGE_UTILS_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 StringPrintf(" and %u more bytes", | 406 StringPrintf(" and %u more bytes", |
| 407 static_cast<unsigned>(data.size() - kMaxBytesToLog))); | 407 static_cast<unsigned>(data.size() - kMaxBytesToLog))); |
| 408 } | 408 } |
| 409 #endif | 409 #endif |
| 410 } | 410 } |
| 411 | 411 |
| 412 template <> | 412 template <> |
| 413 struct ParamTraits<std::vector<unsigned char> > { | 413 struct ParamTraits<std::vector<unsigned char> > { |
| 414 typedef std::vector<unsigned char> param_type; | 414 typedef std::vector<unsigned char> param_type; |
| 415 static void Write(Message* m, const param_type& p) { | 415 static void Write(Message* m, const param_type& p) { |
| 416 if (p.size() == 0) { | 416 if (p.empty()) { |
| 417 m->WriteData(NULL, 0); | 417 m->WriteData(NULL, 0); |
| 418 } else { | 418 } else { |
| 419 m->WriteData(reinterpret_cast<const char*>(&p.front()), | 419 m->WriteData(reinterpret_cast<const char*>(&p.front()), |
| 420 static_cast<int>(p.size())); | 420 static_cast<int>(p.size())); |
| 421 } | 421 } |
| 422 } | 422 } |
| 423 static bool Read(const Message* m, void** iter, param_type* r) { | 423 static bool Read(const Message* m, void** iter, param_type* r) { |
| 424 const char *data; | 424 const char *data; |
| 425 int data_size = 0; | 425 int data_size = 0; |
| 426 if (!m->ReadData(iter, &data, &data_size) || data_size < 0) | 426 if (!m->ReadData(iter, &data, &data_size) || data_size < 0) |
| 427 return false; | 427 return false; |
| 428 r->resize(data_size); | 428 r->resize(data_size); |
| 429 if (data_size) | 429 if (data_size) |
| 430 memcpy(&r->front(), data, data_size); | 430 memcpy(&r->front(), data, data_size); |
| 431 return true; | 431 return true; |
| 432 } | 432 } |
| 433 static void Log(const param_type& p, std::string* l) { | 433 static void Log(const param_type& p, std::string* l) { |
| 434 LogBytes(p, l); | 434 LogBytes(p, l); |
| 435 } | 435 } |
| 436 }; | 436 }; |
| 437 | 437 |
| 438 template <> | 438 template <> |
| 439 struct ParamTraits<std::vector<char> > { | 439 struct ParamTraits<std::vector<char> > { |
| 440 typedef std::vector<char> param_type; | 440 typedef std::vector<char> param_type; |
| 441 static void Write(Message* m, const param_type& p) { | 441 static void Write(Message* m, const param_type& p) { |
| 442 if (p.size() == 0) { | 442 if (p.empty()) { |
| 443 m->WriteData(NULL, 0); | 443 m->WriteData(NULL, 0); |
| 444 } else { | 444 } else { |
| 445 m->WriteData(&p.front(), static_cast<int>(p.size())); | 445 m->WriteData(&p.front(), static_cast<int>(p.size())); |
| 446 } | 446 } |
| 447 } | 447 } |
| 448 static bool Read(const Message* m, void** iter, param_type* r) { | 448 static bool Read(const Message* m, void** iter, param_type* r) { |
| 449 const char *data; | 449 const char *data; |
| 450 int data_size = 0; | 450 int data_size = 0; |
| 451 if (!m->ReadData(iter, &data, &data_size) || data_size < 0) | 451 if (!m->ReadData(iter, &data, &data_size) || data_size < 0) |
| 452 return false; | 452 return false; |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1195 ReplyParam p(a, b, c, d, e); | 1195 ReplyParam p(a, b, c, d, e); |
| 1196 WriteParam(reply, p); | 1196 WriteParam(reply, p); |
| 1197 } | 1197 } |
| 1198 }; | 1198 }; |
| 1199 | 1199 |
| 1200 //----------------------------------------------------------------------------- | 1200 //----------------------------------------------------------------------------- |
| 1201 | 1201 |
| 1202 } // namespace IPC | 1202 } // namespace IPC |
| 1203 | 1203 |
| 1204 #endif // IPC_IPC_MESSAGE_UTILS_H_ | 1204 #endif // IPC_IPC_MESSAGE_UTILS_H_ |
| OLD | NEW |