MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / HTTPTask

Class HTTPTask

plugins/HTTPServer/HTTPServer.cpp:129–243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127 void fillRequest(HTTPRequest& req);
128
129 class HTTPTask {
130 public:
131 HTTPTask(HTTPReply& r, bool noBody);
132 HTTPTask(const HTTPTask& t);
133
134 virtual ~HTTPTask(void) {};
135
136 void generateBody(HTTPReply& r, bool noBody);
137
138 bool update(int connectionID);
139
140 // std::string page;
141 size_t pos;
142
143 // a binary data management class
144 class PageBuffer {
145 public:
146 virtual ~PageBuffer() {if (data) { free(data); }}
147 PageBuffer() : bufferSize(0), data(NULL) {};
148
149 PageBuffer(const char* str) {
150 bufferSize = strlen(str);
151 data = (char*)malloc(bufferSize);
152 memcpy(data, str, bufferSize);
153 }
154
155 PageBuffer(const std::string& r) {
156 bufferSize = r.size();
157 data = (char*)malloc(bufferSize);
158 memcpy(data, r.c_str(), bufferSize);
159 }
160
161 PageBuffer(const PageBuffer& r) {
162 bufferSize = r.size();
163 data = (char*)malloc(bufferSize);
164 memcpy(data, r.data, bufferSize);
165 }
166
167 size_t append(const char* newData, size_t newSize) {
168 if (!data) {
169 data = (char*)malloc(newSize);
170 memcpy(data, newData, newSize);
171 bufferSize = newSize;
172 }
173 else {
174 char* p = (char*)malloc(bufferSize + newSize);
175 memcpy(p, data, bufferSize);
176 memcpy(p + bufferSize, newData, newSize);
177 bufferSize += newSize;
178 free(data);
179 data = p;
180 }
181 return bufferSize;
182 }
183
184 PageBuffer& operator += (const char* p) {
185 if (p) {
186 append(p, strlen(p));

Callers 3

generateIndexMethod · 0.85
generatePageMethod · 0.85
updateMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected