- cerr << "BgzfStream::Open() - unable to open IO device:" << endl;
- cerr << m_device->ErrorString();
- return false;
- }
-
- // otherwise, set flag & return true
- m_isOpen = true;
- m_isWriteOnly = ( mode == IBamIODevice::WriteOnly );
- return true;
-
-}
-
-// opens the BGZF file for reading (mode is either "rb" for reading, or "wb" for writing)
-bool BgzfStream::Open(const string& filename, const char* mode) {
-
- // close current stream, if necessary, before opening next
- if ( m_isOpen ) Close();
-
- // determine open mode
- if ( strcmp(mode, "rb") == 0 )
- m_isWriteOnly = false;
- else if ( strcmp(mode, "wb") == 0)
- m_isWriteOnly = true;
- else {
- fprintf(stderr, "BgzfStream ERROR: unknown file mode: %s\n", mode);
- return false;
- }
-
- // open BGZF stream on a file
- if ( (filename != "stdin") && (filename != "stdout") && (filename != "-"))
- m_stream = fopen(filename.c_str(), mode);
-
- // open BGZF stream on stdin
- else if ( (filename == "stdin" || filename == "-") && (strcmp(mode, "rb") == 0 ) )
- m_stream = freopen(NULL, mode, stdin);
-
- // open BGZF stream on stdout
- else if ( (filename == "stdout" || filename == "-") && (strcmp(mode, "wb") == 0) )
- m_stream = freopen(NULL, mode, stdout);
-
- if ( !m_stream ) {
- fprintf(stderr, "BgzfStream ERROR: unable to open file %s\n", filename.c_str() );
- return false;