new PIFile::readAll test
This commit is contained in:
@@ -22,6 +22,7 @@
|
|||||||
#include "pidir.h"
|
#include "pidir.h"
|
||||||
#include "piincludes_p.h"
|
#include "piincludes_p.h"
|
||||||
#include "piiostream.h"
|
#include "piiostream.h"
|
||||||
|
#include "piliterals_bytes.h"
|
||||||
#include "pitime_win.h"
|
#include "pitime_win.h"
|
||||||
#include "pitranslator.h"
|
#include "pitranslator.h"
|
||||||
#ifdef WINDOWS
|
#ifdef WINDOWS
|
||||||
@@ -276,6 +277,21 @@ PIByteArray PIFile::readAll(bool forceRead) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PIByteArray PIFile::_readAll() {
|
||||||
|
if (!isOpened()) return {};
|
||||||
|
llong prev_pos = pos();
|
||||||
|
PIByteArray ret, buffer(4_KiB);
|
||||||
|
seekToBegin();
|
||||||
|
for (;;) {
|
||||||
|
size_t readed = fread(buffer.data(), 1, buffer.size(), PRIVATE->fd);
|
||||||
|
if (readed == 0) break;
|
||||||
|
ret.append(buffer.data(), readed);
|
||||||
|
}
|
||||||
|
seek(prev_pos);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
llong PIFile::size() const {
|
llong PIFile::size() const {
|
||||||
if (isClosed()) return -1;
|
if (isClosed()) return -1;
|
||||||
llong s, cp = pos();
|
llong s, cp = pos();
|
||||||
|
|||||||
@@ -227,6 +227,8 @@ public:
|
|||||||
//! \~russian Читает всё содержимое файла и возвращает его как массив байтов. Позиция остаётся неизменной
|
//! \~russian Читает всё содержимое файла и возвращает его как массив байтов. Позиция остаётся неизменной
|
||||||
PIByteArray readAll(bool forceRead = false);
|
PIByteArray readAll(bool forceRead = false);
|
||||||
|
|
||||||
|
PIByteArray _readAll();
|
||||||
|
|
||||||
|
|
||||||
//! \~english Set file path to "path" and reopen file if need
|
//! \~english Set file path to "path" and reopen file if need
|
||||||
//! \~russian Устанавливает путь файла на "path" и переоткрывает его при необходимости
|
//! \~russian Устанавливает путь файла на "path" и переоткрывает его при необходимости
|
||||||
|
|||||||
16
main.cpp
16
main.cpp
@@ -83,6 +83,14 @@ void piDeserializeJSON(S & v, const PIJSON & js) {
|
|||||||
PIKbdListener kbd;
|
PIKbdListener kbd;
|
||||||
|
|
||||||
int main(int argc, char * argv[]) {
|
int main(int argc, char * argv[]) {
|
||||||
|
if (argc < 2) return 0;
|
||||||
|
PIFile f(argv[1], PIIODevice::ReadOnly);
|
||||||
|
piCout << "read" << f.path();
|
||||||
|
auto fc = f._readAll();
|
||||||
|
piCout << fc.size() << PIString::fromUTF8(fc.resized(32));
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
PIHTTPServer server;
|
PIHTTPServer server;
|
||||||
server.listen({"127.0.0.1:7777"});
|
server.listen({"127.0.0.1:7777"});
|
||||||
// server.setBasicAuthRealm("pip");
|
// server.setBasicAuthRealm("pip");
|
||||||
@@ -102,11 +110,13 @@ int main(int argc, char * argv[]) {
|
|||||||
};
|
};
|
||||||
// });
|
// });
|
||||||
|
|
||||||
reg("/*/3/get");
|
reg(" /*/a/get ");
|
||||||
reg("/*/{ID}/get");
|
reg(" /*/{ID}/get ");
|
||||||
|
reg(" /*/*/get ");
|
||||||
|
reg(" /*/*_b/get ");
|
||||||
|
|
||||||
reg("/api/{ID}/get");
|
reg("/api/{ID}/get");
|
||||||
reg("/api/1/get");
|
reg("/api/1/get");
|
||||||
server.unregisterPath("*/{ID}/get");
|
|
||||||
// reg("/api/1/bort{bortID}/get");
|
// reg("/api/1/bort{bortID}/get");
|
||||||
// reg("/api/**");
|
// reg("/api/**");
|
||||||
// reg("/api/1/bort2/get");
|
// reg("/api/1/bort2/get");
|
||||||
|
|||||||
Reference in New Issue
Block a user