summaryrefslogtreecommitdiffstats
path: root/configd/src/apps/sentinel/line-splitter.h
diff options
context:
space:
mode:
Diffstat (limited to 'configd/src/apps/sentinel/line-splitter.h')
-rw-r--r--configd/src/apps/sentinel/line-splitter.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/configd/src/apps/sentinel/line-splitter.h b/configd/src/apps/sentinel/line-splitter.h
new file mode 100644
index 00000000000..28d183f3e15
--- /dev/null
+++ b/configd/src/apps/sentinel/line-splitter.h
@@ -0,0 +1,33 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#pragma once
+
+namespace config {
+namespace sentinel {
+
+class LineSplitter {
+private:
+ int _fd;
+ int _size;
+ char *_buffer;
+ int _readPos;
+ int _writePos;
+ bool _eof;
+
+ LineSplitter();
+ LineSplitter& operator =(const LineSplitter&);
+ LineSplitter(const LineSplitter&);
+
+ bool resize();
+ bool fill();
+
+public:
+ explicit LineSplitter(int fd);
+ char *getLine();
+ bool eof() const { return _eof; }
+
+ ~LineSplitter();
+};
+
+} // end namespace config::sentinel
+} // end namespace config
+