MCPcopy Create free account
hub / github.com/acl-dev/acl / saveFile

Method saveFile

lib_acl_cpp/samples/http/webSocketServlet/WebsocketServlet_impl.cpp:166–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

164}
165
166bool WebsocketServlet_impl::saveFile(unsigned long long len)
167{
168 char buf[8192];
169 while (nread_ < filesize_) {
170 size_t left = (size_t) (filesize_ - nread_);
171 size_t n = left > sizeof(buf) ? sizeof(buf) : left;
172 int ret = readPayload(buf, n);
173 if (ret == -1) {
174 printf("readPayload error\r\n");
175 return false;
176 }
177 if (ret == 0) {
178 break;
179 }
180
181 nread_ += ret;
182 if (fp_.write(buf, ret) == -1) {
183 printf("write data to %s error %s\r\n",
184 filename_.c_str(), acl::last_serror());
185 return false;
186 }
187 }
188
189 printf("file=%s, payload_len=%llu, filesize_=%lld, nread_=%lld\r\n",
190 filename_.c_str(), len, filesize_, nread_);
191
192 if (nread_ == filesize_) {
193 printf("READ OVER FOR FILE %s\r\n", filename_.c_str());
194
195 step_ = 0;
196 filesize_ = 0;
197 nread_ = 0;
198 filename_.clear();
199 fp_.close();
200 return sendText("+ok");
201 } else {
202 return true;
203 }
204}

Callers

nothing calls this directly

Calls 5

last_serrorFunction · 0.50
writeMethod · 0.45
c_strMethod · 0.45
clearMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected