LCOV - code coverage report
Current view: directory - redis/src - sds.h (source / functions) Found Hit Coverage
Test: redis.info Lines: 4 4 100.0 %
Date: 2012-04-04 Functions: 0 0 -
Colors: not hit hit

       1                 : /* SDSLib, A C dynamic strings library
       2                 :  *
       3                 :  * Copyright (c) 2006-2010, Salvatore Sanfilippo <antirez at gmail dot com>
       4                 :  * All rights reserved.
       5                 :  *
       6                 :  * Redistribution and use in source and binary forms, with or without
       7                 :  * modification, are permitted provided that the following conditions are met:
       8                 :  *
       9                 :  *   * Redistributions of source code must retain the above copyright notice,
      10                 :  *     this list of conditions and the following disclaimer.
      11                 :  *   * Redistributions in binary form must reproduce the above copyright
      12                 :  *     notice, this list of conditions and the following disclaimer in the
      13                 :  *     documentation and/or other materials provided with the distribution.
      14                 :  *   * Neither the name of Redis nor the names of its contributors may be used
      15                 :  *     to endorse or promote products derived from this software without
      16                 :  *     specific prior written permission.
      17                 :  *
      18                 :  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
      19                 :  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      20                 :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      21                 :  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
      22                 :  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
      23                 :  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
      24                 :  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
      25                 :  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
      26                 :  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
      27                 :  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
      28                 :  * POSSIBILITY OF SUCH DAMAGE.
      29                 :  */
      30                 : 
      31                 : #ifndef __SDS_H
      32                 : #define __SDS_H
      33                 : 
      34                 : #define SDS_MAX_PREALLOC (1024*1024)
      35                 : 
      36                 : #include <sys/types.h>
      37                 : #include <stdarg.h>
      38                 : 
      39                 : typedef char *sds;
      40                 : 
      41                 : struct sdshdr {
      42                 :     int len;
      43                 :     int free;
      44                 :     char buf[];
      45                 : };
      46                 : 
      47                 : static inline size_t sdslen(const sds s) {
      48        82647187 :     struct sdshdr *sh = (void*)(s-(sizeof(struct sdshdr)));
      49        82647187 :     return sh->len;
      50                 : }
      51                 : 
      52                 : static inline size_t sdsavail(const sds s) {
      53         5211977 :     struct sdshdr *sh = (void*)(s-(sizeof(struct sdshdr)));
      54         5211977 :     return sh->free;
      55                 : }
      56                 : 
      57                 : sds sdsnewlen(const void *init, size_t initlen);
      58                 : sds sdsnew(const char *init);
      59                 : sds sdsempty();
      60                 : size_t sdslen(const sds s);
      61                 : sds sdsdup(const sds s);
      62                 : void sdsfree(sds s);
      63                 : size_t sdsavail(sds s);
      64                 : sds sdsgrowzero(sds s, size_t len);
      65                 : sds sdscatlen(sds s, void *t, size_t len);
      66                 : sds sdscat(sds s, char *t);
      67                 : sds sdscatsds(sds s, sds t);
      68                 : sds sdscpylen(sds s, char *t, size_t len);
      69                 : sds sdscpy(sds s, char *t);
      70                 : 
      71                 : sds sdscatvprintf(sds s, const char *fmt, va_list ap);
      72                 : #ifdef __GNUC__
      73                 : sds sdscatprintf(sds s, const char *fmt, ...)
      74                 :     __attribute__((format(printf, 2, 3)));
      75                 : #else
      76                 : sds sdscatprintf(sds s, const char *fmt, ...);
      77                 : #endif
      78                 : 
      79                 : sds sdstrim(sds s, const char *cset);
      80                 : sds sdsrange(sds s, int start, int end);
      81                 : void sdsupdatelen(sds s);
      82                 : void sdsclear(sds s);
      83                 : int sdscmp(sds s1, sds s2);
      84                 : sds *sdssplitlen(char *s, int len, char *sep, int seplen, int *count);
      85                 : void sdsfreesplitres(sds *tokens, int count);
      86                 : void sdstolower(sds s);
      87                 : void sdstoupper(sds s);
      88                 : sds sdsfromlonglong(long long value);
      89                 : sds sdscatrepr(sds s, char *p, size_t len);
      90                 : sds *sdssplitargs(char *line, int *argc);
      91                 : void sdssplitargs_free(sds *argv, int argc);
      92                 : sds sdsmapchars(sds s, char *from, char *to, size_t setlen);
      93                 : 
      94                 : /* Low level functions exposed to the user API */
      95                 : sds sdsMakeRoomFor(sds s, size_t addlen);
      96                 : void sdsIncrLen(sds s, int incr);
      97                 : sds sdsRemoveFreeSpace(sds s);
      98                 : size_t sdsAllocSize(sds s);
      99                 : 
     100                 : #endif

Generated by: LCOV version 1.7