GCC Code Coverage Report


Directory: ./
File: lib/geogram/image/image_serializer.cpp
Date: 2026-09-07 02:25:23
Exec Total Coverage
Lines: 2 28 7.1%
Functions: 1 8 12.5%
Branches: 0 28 0.0%

Line Branch Exec Source
1 /*
2 * Copyright (c) 2000-2022 Inria
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation
12 * and/or other materials provided with the distribution.
13 * * Neither the name of the ALICE Project-Team nor the names of its
14 * contributors may be used to endorse or promote products derived from this
15 * software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE.
28 *
29 * Contact: Bruno Levy
30 *
31 * https://www.inria.fr/fr/bruno-levy
32 *
33 * Inria,
34 * Domaine de Voluceau,
35 * 78150 Le Chesnay - Rocquencourt
36 * FRANCE
37 *
38 */
39
40
41 #include <geogram/image/image_serializer.h>
42 #include <geogram/basic/logger.h>
43
44 #include <fstream>
45
46 namespace GEO {
47
48 //_________________________________________________________
49
50
51 Image* ImageSerializer::serialize_read(const std::string& file_name) {
52
53 std::fstream::openmode mode = binary() ?
54 (std::fstream::in | std::fstream::binary) :
55 std::fstream::in ;
56
57 std::ifstream input(file_name.c_str(),mode) ;
58 if(!input) {
59 Logger::err("ImageSerializer")
60 << "could not open file\'"
61 << file_name << "\'" << std::endl ;
62 return nullptr ;
63 }
64 return serialize_read_from_stream(input) ;
65 }
66
67 bool ImageSerializer::serialize_write(
68 const std::string& file_name, const Image* image
69 ) {
70 std::fstream::openmode mode = binary() ?
71 (std::fstream::out | std::fstream::trunc | std::fstream::binary) :
72 (std::fstream::out | std::fstream::trunc) ;
73
74 std::ofstream output(file_name.c_str(), mode) ;
75
76 if(!output) {
77 Logger::err("ImageSerializer")
78 << "could not open file\'"
79 << file_name << "\'" << std::endl ;
80 return false ;
81 }
82
83 return serialize_write_to_stream(output, image) ;
84 }
85
86 Image* ImageSerializer::serialize_read_from_stream(std::istream& stream) {
87 geo_argused(stream);
88 bool implemented = false ;
89 geo_assert(implemented) ;
90 return nullptr ;
91 }
92
93 bool ImageSerializer::serialize_write_to_stream(
94 std::ostream& stream, const Image* image
95 ) {
96 geo_argused(stream);
97 geo_argused(image);
98 bool implemented = false ;
99 geo_assert(implemented) ;
100 return false ;
101 }
102
103
104 bool ImageSerializer::binary() const {
105 return true ;
106 }
107
108 bool ImageSerializer::streams_supported() const {
109 return true ;
110 }
111
112 bool ImageSerializer::read_supported() const {
113 return false ;
114 }
115
116 747 bool ImageSerializer::write_supported() const {
117 747 return false ;
118 }
119
120 //_________________________________________________________
121
122 }
123