Sync.
This commit is contained in:
1 parent
c3c9530b4b
commit
7e06591de6
12 files changed
+93
-25
No files matched your search
@@ -2,6 +2,7 @@
|
||||
#define __File_h__
|
||||
|
||||
#include "includes"
|
||||
#include "PString.h"
|
||||
|
||||
///
|
||||
/// File
|
||||
|
||||
@@ -3,7 +3,19 @@
|
||||
|
||||
namespace coreutils {
|
||||
|
||||
class IMFBody {};
|
||||
class IMFBody {
|
||||
|
||||
public:
|
||||
IMFBody(PString *body) : body(body) {}
|
||||
|
||||
PString *getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
private:
|
||||
PString *body;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
namespace coreutils {
|
||||
|
||||
IMFFormData::IMFFormData(PString &in, std::string boundary) : IMFMultipart(in, boundary) {
|
||||
IMFFormData::IMFFormData(PString *in, std::string boundary) : IMFMultipart(in, boundary) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -9,7 +9,7 @@ namespace coreutils {
|
||||
|
||||
public:
|
||||
IMFFormData();
|
||||
IMFFormData(PString &in, std::string boundary);
|
||||
IMFFormData(PString *in, std::string boundary);
|
||||
|
||||
std::string getByName(std::string name);
|
||||
|
||||
@@ -18,3 +18,5 @@ namespace coreutils {
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+7
-3
@@ -16,7 +16,7 @@ namespace coreutils {
|
||||
|
||||
bool IMFMessage::parse(PString &in) {
|
||||
|
||||
coreutils::Log(coreutils::LOG_DEBUG_1) << "Parsing-------\n" << in.str();
|
||||
Log(LOG_DEBUG_1) << "Parsing-------\n" << in.str();
|
||||
|
||||
while (!in.ifNext("\r\n")) {
|
||||
headers.emplace_back(in);
|
||||
@@ -31,9 +31,9 @@ namespace coreutils {
|
||||
if(type == "multipart/form-data")
|
||||
body = new IMFMultipart(block, getHeaderKeyPairValue("Content-Type", "boundary"));
|
||||
else if(type == "text/plain")
|
||||
body = new IMFPlainText(in);
|
||||
body = new IMFPlainText(block);
|
||||
else
|
||||
body = new IMFBody();
|
||||
body = new IMFBody(&block);
|
||||
|
||||
}
|
||||
return false;
|
||||
@@ -102,4 +102,8 @@ namespace coreutils {
|
||||
return body;
|
||||
}
|
||||
|
||||
void IMFMessage::setBody(PString *body) {
|
||||
this->body = new IMFBody(body);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,6 +8,14 @@
|
||||
|
||||
namespace coreutils {
|
||||
|
||||
///
|
||||
/// IMFMessage provides an object representation of a standard Internet
|
||||
/// Message Format message.
|
||||
///
|
||||
/// Contstructing the object with a reference to a PString will generate
|
||||
/// an object representation of the data therein.
|
||||
///
|
||||
|
||||
class IMFMessage {
|
||||
|
||||
public:
|
||||
@@ -24,6 +32,7 @@ namespace coreutils {
|
||||
std::string getHeaderKeyPairValue(std::string headerKey, std::string key);
|
||||
|
||||
IMFBody *getBody();
|
||||
void setBody(PString *in);
|
||||
|
||||
protected:
|
||||
std::vector<IMFHeader> headers;
|
||||
|
||||
+5
-9
@@ -3,14 +3,10 @@
|
||||
|
||||
namespace coreutils {
|
||||
|
||||
IMFMultipart::IMFMultipart() {
|
||||
buffer = "";
|
||||
}
|
||||
|
||||
IMFMultipart::IMFMultipart(PString &in, std::string boundary) {
|
||||
buffer = in.str();
|
||||
in.cursor -= 2;
|
||||
sections = in.split("\r\n--" + boundary);
|
||||
IMFMultipart::IMFMultipart(PString *in, std::string boundary) : IMFBody(in) {
|
||||
buffer = in->str();
|
||||
in->cursor -= 2;
|
||||
sections = in->split("\r\n--" + boundary);
|
||||
for(int ix = 0; ix < sections.size(); ++ix) {
|
||||
if(sections[ix].str() == "--\r\n")
|
||||
sections[ix] = PString("");
|
||||
@@ -20,7 +16,7 @@ namespace coreutils {
|
||||
}
|
||||
|
||||
std::string IMFMultipart::toString() {
|
||||
return buffer;
|
||||
return buffer.str();
|
||||
}
|
||||
|
||||
int IMFMultipart::getCount() {
|
||||
|
||||
+2
-3
@@ -9,8 +9,7 @@ namespace coreutils {
|
||||
class IMFMultipart: public IMFBody {
|
||||
|
||||
public:
|
||||
IMFMultipart();
|
||||
IMFMultipart(PString &in, std::string boundary);
|
||||
IMFMultipart(PString *in, std::string boundary);
|
||||
|
||||
std::string toString();
|
||||
int getCount();
|
||||
@@ -22,7 +21,7 @@ namespace coreutils {
|
||||
private:
|
||||
std::string boundary;
|
||||
|
||||
std::string buffer;
|
||||
coreutils::PString buffer;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
+1
-5
@@ -2,11 +2,7 @@
|
||||
|
||||
namespace coreutils {
|
||||
|
||||
IMFPlainText::IMFPlainText() {
|
||||
text = "";
|
||||
}
|
||||
|
||||
IMFPlainText::IMFPlainText(PString &in) : IMFBody() {
|
||||
IMFPlainText::IMFPlainText(PString &in) : IMFBody(in) {
|
||||
text = in.str();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ namespace coreutils {
|
||||
|
||||
output(response);
|
||||
response << content;
|
||||
// core::Log(core::LOG_DEBUG_4) << response.str();
|
||||
coreutils::Log(coreutils::LOG_DEBUG_4) << response.str();
|
||||
return response.str();
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -98,7 +98,11 @@ namespace coreutils {
|
||||
}
|
||||
|
||||
std::string PString::readBlock(size_t size) {
|
||||
printf(">>>>>: %i:%i", size, pstring.size() - cursor);
|
||||
int cursorSave = cursor;
|
||||
cursor += size;
|
||||
if(cursor > pstring.size())
|
||||
cursor = pstring.size();
|
||||
return pstring.substr(cursorSave, size);
|
||||
}
|
||||
|
||||
int PString::size() {
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
#ifndef __ZString_h__
|
||||
#define __ZString_h__
|
||||
|
||||
#include "includes"`
|
||||
|
||||
namespace coreutils {
|
||||
|
||||
///
|
||||
/// ZString provides a data pointer and a length to basically point to a string
|
||||
/// from a common backstore.
|
||||
///
|
||||
|
||||
class ZString {
|
||||
|
||||
public:
|
||||
ZString() {}
|
||||
ZString(char *data) {
|
||||
this->data = data;
|
||||
length = strlen(data);
|
||||
}
|
||||
|
||||
ZString(char *data, size_t length) {
|
||||
this->data = data;
|
||||
this->length = length;
|
||||
}
|
||||
|
||||
std::string asString() {
|
||||
return std::string(data, length);
|
||||
}
|
||||
|
||||
void setString(char *data, size_t length) {
|
||||
this->data = data;
|
||||
this->length = length;
|
||||
}
|
||||
|
||||
private:
|
||||
char *data;
|
||||
size_t length;
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user