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