Sha256: 0982357f16c21e0bd9c20db207ecc9d7775f488ad374f3ca90e27102e426155e

Contents?: true

Size: 1.49 KB

Versions: 8

Compression:

Stored size: 1.49 KB

Contents

#include <stdlib.h>
#include <string.h>

#include "Slim.h"
#include "SlimList.h"
#include "SlimListDeserializer.h"
#include "StatementExecutor.h"
#include "ListExecutor.h"
#include "SlimListSerializer.h"

void AddFixtures(StatementExecutor*);

struct Slim
{
  StatementExecutor * statementExecutor;
  ListExecutor * listExecutor;
};

Slim * Slim_Create()
{
  Slim * self = (Slim*)malloc(sizeof(Slim));
  memset(self, 0, sizeof(Slim));
  self->statementExecutor = StatementExecutor_Create();
  AddFixtures(self->statementExecutor);
  self->listExecutor = ListExecutor_Create(self->statementExecutor);
  return self;
}

void Slim_Destroy(Slim * self)
{
  ListExecutor_Destroy(self->listExecutor);
  StatementExecutor_Destroy(self->statementExecutor);
  free(self);
}

char * Slim_HandleMessage(void* voidSelf, char * message)
{
  Slim* self = (Slim*)voidSelf;
  SlimList* instructions = SlimList_Deserialize(message);
  SlimList* results = ListExecutor_Execute(self->listExecutor, instructions);
  char * response = SlimList_Serialize(results);
  SlimList_Destroy(results);
  SlimList_Destroy(instructions);
  return response;
}

int Slim_HandleConnection(Slim* self, void* comLink, com_func_t send, com_func_t recv)
{
  int result = 0;
  SlimConnectionHandler* connection = SlimConnectionHandler_Create(send, recv, comLink);
  SlimConnectionHandler_RegisterSlimMessageHandler(connection, self, &Slim_HandleMessage);
  result = SlimConnectionHandler_Run(connection);
  SlimConnectionHandler_Destroy(connection);
  return result;
}

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
xcfit-0.9.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.8.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.7.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.6.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.5.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.4.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.3.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c
xcfit-0.2.0 XCFitDemo/Pods/cslim/src/CSlim/Slim.c