void teardown() { SlimList_Destroy(slimList); if (deserializedList) SlimList_Destroy(deserializedList); if (serializedList != 0) SlimList_Release(serializedList); }
int SlimConnectionHandler_Run(SlimConnectionHandler* self) { if (self->sendFunc(self->comLink, "Slim -- V0.0\n", 13) == -1) { return -1; } char* message = NULL; while(1) { int size_i = read_size(self); if (size_i > 0) { free(message); message = (char*)malloc(size_i + (size_t)1); memset(message, 0, (size_t)size_i + (size_t)1); int numbytes = self->recvFunc(self->comLink, message, size_i); if (numbytes != size_i) { printf("did not receive right number of bytes. %d expected but received %d\n", size_i, numbytes); break; } if (strcmp("bye", message) == 0) { break; } //execute and get response char* response_message = self->slimHandlerFunc(self->slimHandler, message); int response_length = (int)strlen(response_message); char * length_buffer = (char *)malloc((size_t)8); sprintf(length_buffer, "%06d:", response_length); int send_result = self->sendFunc(self->comLink, length_buffer, 7); free(length_buffer); send_result = self->sendFunc(self->comLink, response_message, response_length); SlimList_Release(response_message); } else if (size_i == -1) { break; } } free(message); fflush(stdout); return 0; }
void teardown() { SlimList_Destroy(slimList); SlimList_Release(serializedList); }