PNode *PNode_new(void) { PNode *self = calloc(1, sizeof(PNode)); self->pid = Datum_new(); // pid self->pidPath = Datum_new(); // pid/m/ self->keyPath = Datum_new(); // pid/m/key self->sizePath = Datum_new(); self->parentPid = Datum_new(); return self; }
HttpRequest *HttpRequest_new(void) { HttpRequest *self = calloc(1, sizeof(HttpRequest)); self->post = Datum_new(); self->uri = Datum_new(); self->uriPath = Datum_new(); self->query = CHash_new(); CHash_setEqualFunc_(self->query, (CHashEqualFunc *)Datum_equals_); CHash_setHash1Func_(self->query, (CHashHashFunc *)Datum_hash1); CHash_setHash2Func_(self->query, (CHashHashFunc *)Datum_hash2); self->emptyDatum = Datum_new(); return self; }
int VertexServer_api_transaction(VertexServer *self) { Datum *uri = Datum_new(); Datum *post = Datum_new(); int error = 0; int r, result; PDB_commit(self->pdb); Datum_copy_(post, HttpRequest_postData(self->httpRequest)); do { Datum_copy_(uri, post); r = Datum_sepOnChars_with_(uri, "\n", post); if (Datum_size(uri) == 0) { VertexServer_setErrorCString_(self, "empty line in transaction"); error = 1; break; } HttpRequest_parseUri_(self->httpRequest, Datum_data(uri)); error = VertexServer_process(self); Pool_globalPoolFreeRefs(); } while ((r != -1) && (!error)); if (error) { PDB_abort(self->pdb); result = -1; } else { PDB_commit(self->pdb); result = 0; } Datum_free(uri); return result; }
File *File_new(void) { File *self = calloc(1, sizeof(File)); self->path = Datum_new(); return self; }