Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: net/base/bigendian.cc

Issue 8762001: Isolates generic DnsClient from AsyncHostResolver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 "net/base/bigendian.h"
6
7 namespace net {
8
9 BigEndianReader::BigEndianReader(const void* buf, size_t len)
10 : ptr_(reinterpret_cast<const char*>(buf)), end_(ptr_ + len) {}
11
12 bool BigEndianReader::Skip(size_t len) {
13 if (ptr_ + len > end_)
14 return false;
15 ptr_+= len;
mmenke 2011/12/02 00:53:55 nit: There should be a space between _ and + in a
szym 2011/12/05 23:06:28 Done.
16 return true;
17 }
18
19 bool BigEndianReader::Copy(void* out, size_t len) {
20 if (ptr_ + len > end_)
21 return false;
22 memcpy(out, ptr_, len);
23 ptr_+= len;
24 return true;
25 }
26
27 bool BigEndianReader::Piece(base::StringPiece* out, size_t len) {
28 if (ptr_ + len > end_)
29 return false;
30 *out = base::StringPiece(ptr_, len);
31 ptr_+= len;
32 return true;
33 }
34
35 template<typename T>
36 bool BigEndianReader::Read(T* v) {
37 if (ptr_ + sizeof(T) > end_)
38 return false;
39 ReadBigEndian<T>(ptr_, v);
40 ptr_+= sizeof(T);
41 return true;
42 }
43
44 bool BigEndianReader::U8(uint8* v) {
45 return Read(v);
46 }
47
48 bool BigEndianReader::U16(uint16* v) {
49 return Read(v);
50 }
51
52 bool BigEndianReader::U32(uint32* v) {
53 return Read(v);
54 }
55
56 BigEndianWriter::BigEndianWriter(void* buf, size_t len)
57 : ptr_(reinterpret_cast<char*>(buf)), end_(ptr_ + len) {}
58
59 bool BigEndianWriter::Skip(size_t len) {
60 if (ptr_ + len > end_)
61 return false;
62 ptr_+= len;
63 return true;
64 }
65
66 bool BigEndianWriter::Copy(const void* buf, size_t len) {
67 if (ptr_ + len > end_)
68 return false;
69 memcpy(ptr_, buf, len);
70 ptr_+= len;
71 return true;
72 }
73
74 template<typename T>
75 bool BigEndianWriter::Write(T v) {
76 if (ptr_ + sizeof(T) > end_)
77 return false;
78 WriteBigEndian<T>(ptr_, v);
79 ptr_+= sizeof(T);
80 return true;
81 }
82
83 bool BigEndianWriter::U8(uint8 v) {
84 return Write(v);
85 }
86
87 bool BigEndianWriter::U16(uint16 v) {
88 return Write(v);
89 }
90
91 bool BigEndianWriter::U32(uint32 v) {
92 return Write(v);
93 }
94
95 } // namespace net
96
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698