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

Side by Side Diff: chrome/profiling/memlog_stream_parser.h

Issue 2948283002: Profiling process topology (Closed)
Patch Set: Review comments Created 3 years, 5 months 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
« no previous file with comments | « chrome/common/profiling/memlog_sender.cc ('k') | chrome/profiling/memlog_stream_receiver.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 CHROME_PROFILING_MEMLOG_STREAM_PARSER_H_ 5 #ifndef CHROME_PROFILING_MEMLOG_STREAM_PARSER_H_
6 #define CHROME_PROFILING_MEMLOG_STREAM_PARSER_H_ 6 #define CHROME_PROFILING_MEMLOG_STREAM_PARSER_H_
7 7
8 #include <deque> 8 #include <deque>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 20 matching lines...) Expand all
31 std::unique_ptr<char[]> data; 31 std::unique_ptr<char[]> data;
32 size_t size; 32 size_t size;
33 }; 33 };
34 34
35 enum ReadStatus { 35 enum ReadStatus {
36 READ_OK, // Read OK. 36 READ_OK, // Read OK.
37 READ_ERROR, // Fatal error, don't send more data. 37 READ_ERROR, // Fatal error, don't send more data.
38 READ_NO_DATA // Not enough data, try again when we get more 38 READ_NO_DATA // Not enough data, try again when we get more
39 }; 39 };
40 40
41 ~MemlogStreamParser() override; 41 ~MemlogStreamParser();
42 42
43 // Returns true if the given number of bytes are available now. 43 // Returns true if the given number of bytes are available now.
44 bool AreBytesAvailable(size_t count) const; 44 bool AreBytesAvailable(size_t count) const;
45 45
46 // Returns false if not enough bytes are available. On failure, the dest 46 // Returns false if not enough bytes are available. On failure, the dest
47 // buffer will be in an undefined state (it may be written partially). 47 // buffer will be in an undefined state (it may be written partially).
48 bool PeekBytes(size_t count, void* dest) const; 48 bool PeekBytes(size_t count, void* dest) const;
49 bool ReadBytes(size_t count, void* dest); 49 bool ReadBytes(size_t count, void* dest);
50 void ConsumeBytes(size_t count); // Bytes must be available. 50 void ConsumeBytes(size_t count); // Bytes must be available.
51 51
52 ReadStatus ParseHeader(); 52 ReadStatus ParseHeader();
53 ReadStatus ParseAlloc(); 53 ReadStatus ParseAlloc();
54 ReadStatus ParseFree(); 54 ReadStatus ParseFree();
55 55
56 MemlogReceiver* receiver_; // Not owned by this class. 56 MemlogReceiver* receiver_; // Not owned by this class.
57 57
58 std::deque<Block> blocks_; 58 std::deque<Block> blocks_;
59 59
60 bool received_header_ = false; 60 bool received_header_ = false;
61 61
62 // Current offset into blocks_[0] of the next packet to process. 62 // Current offset into blocks_[0] of the next packet to process.
63 size_t block_zero_offset_ = 0; 63 size_t block_zero_offset_ = 0;
64 64
65 DISALLOW_COPY_AND_ASSIGN(MemlogStreamParser); 65 DISALLOW_COPY_AND_ASSIGN(MemlogStreamParser);
66 }; 66 };
67 67
68 } // namespace profiling 68 } // namespace profiling
69 69
70 #endif // CHROME_PROFILING_MEMLOG_STREAM_PARSER_H_ 70 #endif // CHROME_PROFILING_MEMLOG_STREAM_PARSER_H_
OLDNEW
« no previous file with comments | « chrome/common/profiling/memlog_sender.cc ('k') | chrome/profiling/memlog_stream_receiver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698