1 /* 2 mkvmerge -- utility for splicing together matroska files 3 from component media subtypes 4 5 Distributed under the GPL v2 6 see the file COPYING for details 7 or visit https://www.gnu.org/licenses/old-licenses/gpl-2.0.html 8 9 Written by Moritz Bunkus <moritz@bunkus.org>. 10 */ 11 12 #pragma once 13 14 #include "common/common_pch.h" 15 16 #if defined(SYS_WINDOWS) 17 # include <windows.h> 18 #endif 19 20 #include "common/mm_io_p.h" 21 22 class mm_file_io_c; 23 24 class mm_file_io_private_c : public mm_io_private_c { 25 public: 26 std::string file_name; 27 open_mode mode{MODE_READ}; 28 29 #if defined(SYS_WINDOWS) 30 bool eof{}; 31 HANDLE file{}; 32 #else 33 FILE *file{}; 34 #endif 35 36 explicit mm_file_io_private_c(std::string const &p_file_name, open_mode const p_mode); 37 38 public: 39 static bool ms_flush_on_close; 40 }; 41