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

Side by Side Diff: third_party/crazy_linker/crazy_linker/src/crazy_linker_line_reader.h

Issue 23717023: Android: Add chrome-specific dynamic linker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile error (previous patch was a mistake). Created 7 years, 3 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
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 #ifndef CRAZY_LINKER_LINE_READER_H
6 #define CRAZY_LINKER_LINE_READER_H
7
8 #include <string.h>
9
10 #include "crazy_linker_system.h"
11
12 namespace crazy {
13
14 // A class used to read text files line-by-line.
15 // Usage:
16 // LineReader reader("/path/to/file");
17 // while (reader.GetNextLine()) {
18 // const char* line = reader.line();
19 // size_t line_len = reader.length();
20 // ... line is not necessarily zero-terminated.
21 // }
22
23 class LineReader {
24 public:
25 LineReader();
26 explicit LineReader(const char* path);
27 ~LineReader();
28
29 // Open a new file for testing. Doesn't fail. If there was an error
30 // opening the file, GetNextLine() will simply return false.
31 void Open(const char* file_path);
32
33 // Grab next line. Returns true on success, or false otherwise.
34 bool GetNextLine();
35
36 // Return the start of the current line, this is _not_ zero-terminated
37 // and always contains a final newline (\n).
38 // Only call this after a successful GetNextLine().
39 const char* line() const;
40
41 // Return the line length, this includes the final \n.
42 // Only call this after a successful GetNextLine().
43 size_t length() const;
44
45 private:
46 void Reset();
47
48 FileDescriptor fd_;
49 bool eof_;
50 size_t line_start_;
51 size_t line_len_;
52 size_t buff_size_;
53 size_t buff_capacity_;
54 char* buff_;
55 char buff0_[128];
56 };
57
58 } // namespace crazy
59
60 #endif // CRAZY_LINKER_LINE_READER_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698