MCPcopy Create free account
hub / github.com/FreeCAD/FreeCAD / insertBinFile

Method insertBinFile

src/Base/Writer.cpp:189–207  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

187}
188
189void Writer::insertBinFile(const char* FileName)
190{
191 Base::FileInfo fi(FileName);
192 Base::ifstream from(fi, std::ios::in | std::ios::binary | std::ios::ate);
193 if (!from) {
194 throw Base::FileException("Writer::insertAsciiFile() Could not open file!");
195 }
196
197 Stream() << "<![CDATA[";
198 std::ifstream::pos_type fileSize = from.tellg();
199 from.seekg(0, std::ios::beg);
200 std::vector<unsigned char> bytes(static_cast<size_t>(fileSize));
201 // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
202 from.read(reinterpret_cast<char*>(bytes.data()), fileSize);
203 Stream() << Base::base64_encode(bytes.data(), static_cast<unsigned int>(fileSize));
204 Stream() << "]]>" << std::endl;
205
206 checkErrNo();
207}
208
209void Writer::setForceXML(bool on)
210{

Callers 1

SaveMethod · 0.80

Calls 4

StreamFunction · 0.85
base64_encodeFunction · 0.85
readMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected