void teardown()
    {
		SlimList_Destroy(slimList);

		if (deserializedList)
			SlimList_Destroy(deserializedList);

		if (serializedList != 0)
			SlimList_Release(serializedList);
    }
Пример #2
0
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;

}
Пример #3
0
  void teardown()
  {
    SlimList_Destroy(slimList);

    SlimList_Release(serializedList);
  }