From 88ac8da9c4ab776b924b33f3b137ebc2f8e7a6d1 Mon Sep 17 00:00:00 2001
From: nkindlon <nek3d@virginia.edu>
Date: Mon, 14 Oct 2013 21:41:27 -0400
Subject: [PATCH] added fifo handling

---
 src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp | 5 +++++
 src/utils/FileRecordTools/FileReaders/InputStreamMgr.h   | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp b/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp
index 31390265..9711a292 100644
--- a/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp
+++ b/src/utils/FileRecordTools/FileReaders/InputStreamMgr.cpp
@@ -10,6 +10,8 @@
 #include "gzstream.h"
 #include "CompressionTools.h"
 
+const char *InputStreamMgr::FIFO_STRING_LITERAL = "/dev/fd";
+
 InputStreamMgr::InputStreamMgr(const QuickString &filename, bool buildScanBuffer)
 :
  _filename(filename),
@@ -55,6 +57,9 @@ bool InputStreamMgr::init()
 		}
 		_pushBackStreamBuf = new PushBackStreamBuf(cin.rdbuf());
 	} else {
+		if (strncmp(_filename.c_str(), FIFO_STRING_LITERAL, strlen(FIFO_STRING_LITERAL)) == 0) {
+			_isStdin = true;
+		}
 		_inputFileStream = new ifstream(_filename.c_str());
 		if (_inputFileStream->fail()) {
 			cerr << "Error: Unable to open file " << _filename << ". Exiting." << endl;
diff --git a/src/utils/FileRecordTools/FileReaders/InputStreamMgr.h b/src/utils/FileRecordTools/FileReaders/InputStreamMgr.h
index 4e22c31e..df21ce34 100644
--- a/src/utils/FileRecordTools/FileReaders/InputStreamMgr.h
+++ b/src/utils/FileRecordTools/FileReaders/InputStreamMgr.h
@@ -52,6 +52,8 @@ private:
 	static const int SCAN_BUFFER_SIZE = 4096; // 4 K buffer
 	static const int MIN_SCAN_BUFFER_SIZE = 2048;
 	int _numBytesInBuffer; //this will hold the length of the buffer after the scan.
+
+	static const char *FIFO_STRING_LITERAL;
 	bool bamDetected(int numChars, int currChar);
 	void decompressBuffer();
 
-- 
GitLab