MCPcopy Create free account
hub / github.com/OpenMC2/OpenMC2 / write

Method write

src/FileHandler.cpp:55–77  ·  view source on GitHub ↗

mc2: 0x00617E40

Source from the content-addressed store, hash-verified

53
54// mc2: 0x00617E40
55std::int32_t FileHandler::write(const void *data, std::int32_t size) {
56 if (buffer_read > 0 && this->flush() < 0) return -1;
57 if (size < buffer_size) {
58 const std::int32_t buffer_available = buffer_size - buffer_offset;
59 if (size >= buffer_available) {
60 std::memcpy(buffer + buffer_offset, data, buffer_available);
61 data = reinterpret_cast<const std::uint8_t *>(data) + buffer_available;
62 size -= buffer_available;
63 buffer_offset = buffer_size;
64 if (this->flush() < 0) return -1;
65 }
66
67 std::memcpy(buffer + buffer_offset, data, size);
68 buffer_offset += size;
69 return size;
70 } else {
71 if (this->flush() < 0) return -1;
72 std::int32_t written = file_funcs->write(handle, data, size);
73 if (written < 0) return -1;
74 buffer_offset += written;
75 return written;
76 }
77}
78
79// mc2: 0x00617D20
80std::int32_t FileHandler::read(void *data, std::int32_t size) {

Callers 3

flushMethod · 0.80
sub_618050Function · 0.80
impl_94Method · 0.80

Calls 1

flushMethod · 0.95

Tested by

no test coverage detected