name.cc (1664B)
1 // Copyright 2016 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "mojo/core/ports/name.h" 6 #include "chrome/common/ipc_message_utils.h" 7 8 namespace mojo { 9 namespace core { 10 namespace ports { 11 12 std::ostream& operator<<(std::ostream& stream, const Name& name) { 13 std::ios::fmtflags flags(stream.flags()); 14 stream << std::hex << std::uppercase << name.v1; 15 if (name.v2 != 0) { 16 stream << '.' << name.v2; 17 } 18 stream.flags(flags); 19 return stream; 20 } 21 22 mozilla::Logger& operator<<(mozilla::Logger& log, const Name& name) { 23 log.printf("%" PRIX64, name.v1); 24 if (name.v2 != 0) { 25 log.printf(".%" PRIX64, name.v2); 26 } 27 return log; 28 } 29 30 } // namespace ports 31 } // namespace core 32 } // namespace mojo 33 34 void IPC::ParamTraits<mojo::core::ports::PortName>::Write( 35 MessageWriter* aWriter, const paramType& aParam) { 36 WriteParam(aWriter, aParam.v1); 37 WriteParam(aWriter, aParam.v2); 38 } 39 40 bool IPC::ParamTraits<mojo::core::ports::PortName>::Read(MessageReader* aReader, 41 paramType* aResult) { 42 return ReadParam(aReader, &aResult->v1) && ReadParam(aReader, &aResult->v2); 43 } 44 45 void IPC::ParamTraits<mojo::core::ports::NodeName>::Write( 46 MessageWriter* aWriter, const paramType& aParam) { 47 WriteParam(aWriter, aParam.v1); 48 WriteParam(aWriter, aParam.v2); 49 } 50 51 bool IPC::ParamTraits<mojo::core::ports::NodeName>::Read(MessageReader* aReader, 52 paramType* aResult) { 53 return ReadParam(aReader, &aResult->v1) && ReadParam(aReader, &aResult->v2); 54 }