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    IO callback class definitions
10 
11    Written by Moritz Bunkus <moritz@bunkus.org>.
12 */
13 
14 #pragma once
15 
16 enum class byte_order_mark_e {utf8, utf16_le, utf16_be, utf32_le, utf32_be, none};
17 
18 class mm_io_c;
19 using mm_io_cptr = std::shared_ptr<mm_io_c>;
20 
21 class mm_file_io_c;
22 using mm_file_io_cptr = std::shared_ptr<mm_file_io_c>;
23 
24 class mm_mem_io_c;
25 using mm_mem_io_cptr = std::shared_ptr<mm_mem_io_c>;
26 
27 class mm_mpls_multi_file_io_c;
28 using mm_mpls_multi_file_io_cptr = std::shared_ptr<mm_mpls_multi_file_io_c>;
29 
30 class mm_multi_file_io_c;
31 using mm_multi_file_io_cptr = std::shared_ptr<mm_multi_file_io_c>;
32 
33 class mm_null_io_c;
34 using mm_null_io_cptr = std::shared_ptr<mm_null_io_c>;
35 
36 class mm_proxy_io_c;
37 using mm_proxy_io_cptr = std::shared_ptr<mm_proxy_io_c>;
38 
39 class mm_read_buffer_io_c;
40 using mm_read_buffer_io_cptr = std::shared_ptr<mm_read_buffer_io_c>;
41 
42 class mm_stdio_c;
43 using mm_stdio_cptr = std::shared_ptr<mm_stdio_c>;
44 
45 class mm_text_io_c;
46 using mm_text_io_cptr = std::shared_ptr<mm_text_io_c>;
47 
48 class mm_write_buffer_io_c;
49 using mm_write_buffer_io_cptr = std::shared_ptr<mm_write_buffer_io_c>;
50