Sha256: b4ce1f8f681888ae896d28bc7358720982291483e22c997a4b53010cc22b9960

Contents?: true

Size: 1.53 KB

Versions: 8

Compression:

Stored size: 1.53 KB

Contents

#include "SlimList.h"
#include "SlimListSerializer.h"
#include "SlimUtil.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

enum {LIST_OVERHEAD=9, ELEMENT_OVERHEAD=8};

char* nodeStringAt(SlimList* self, int i)
{
        char * nodeString = SlimList_GetStringAt(self, i);
        if (nodeString == NULL)
                nodeString = "null";
        return nodeString;
}

long FieldLength(unsigned char * nodeString)
{
        unsigned char *p;
        long fieldlength=0;
        for (p=nodeString;*p;p++)
          if (CSlim_IsCharacter(p) == 1)
           fieldlength++;
        return fieldlength;
}


int SlimList_SerializedLength(SlimList* self)
{
        int length = LIST_OVERHEAD;
        int i;
        for(i = 0; i < SlimList_GetLength(self); i++)
        {
                length += strlen(nodeStringAt(self, i)) + ELEMENT_OVERHEAD;
        }
        return length;
}

char* SlimList_Serialize(SlimList* self)
{
        char* buf = (char*)malloc(SlimList_SerializedLength(self)+1);
        char* write_ptr = buf;
        int listLength = SlimList_GetLength(self);
        int i;

        write_ptr += sprintf(write_ptr, "[%06d:", listLength);

        for(i = 0; i < listLength; i++)
        {
                unsigned char * nodeString = (unsigned char *) nodeStringAt(self, i);
                write_ptr += sprintf(write_ptr, "%06ld:%s:", FieldLength(nodeString), nodeString);
        }
        strcpy(write_ptr, "]");
        return buf;
}

void SlimList_Release(char *serializedResults)
{
  if(serializedResults)
    free(serializedResults);
}

Version data entries

8 entries across 8 versions & 1 rubygems

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