Main Page | Data Structures | Directories | File List | Data Fields | Globals

ks_string.c File Reference

libkarmaclient's basic string type. More...

#include "ks_config.h"
#include "ks_string.h"
#include <string.h>
#include <stdio.h>

Go to the source code of this file.

Functions

ks_type_tks_string_type (void)
ks_string_tks_string_new (const char *data, int len)
void ks_string_free (ks_string_t *r)
int ks_string_length (ks_string_t *r)
void ks_string_append (ks_string_t *r, const char *data, int len)
void ks_string_set (ks_string_t *r, const char *data, int len)
const char * ks_string_get (ks_string_t *r)
int ks_string_equals (ks_string_t *r, ks_string_t *s)


Detailed Description

libkarmaclient's basic string type.

Definition in file ks_string.c.


Function Documentation

void ks_string_append ks_string_t r,
const char *  data,
int  len
 

Append len bytes of data to ks_string_t (r).

Parameters:
r A pointer to the ks_string_t to be appended to.
data A pointer to some character data.
len The length of data to append.
Returns:
Nothing.

Definition at line 132 of file ks_string.c.

References _ks_string_t::data, ks_realloc(), _ks_string_t::length, and _ks_string_t::size.

Referenced by ks_string_new(), and ks_string_set().

int ks_string_equals ks_string_t r,
ks_string_t s
 

Compare ks_string_t (r) and ks_string_t (s) and return 1 if they are equal, return 0 otherwise.

Parameters:
r A ks_string_t to compare against s.
s A ks_string_t to compare against r.
Returns:
1 if r and s are equal, 0 otherwise.

Definition at line 183 of file ks_string.c.

References ks_string_get(), and ks_string_length().

Referenced by ks_socket_recv().

void ks_string_free ks_string_t r  ) 
 

Destroy a given ks_string_t and free all memory that has been allocated for it.

Parameters:
r A pointer to the ks_string_t to be destroyed.
Returns:
Nothing.

Definition at line 105 of file ks_string.c.

References _ks_string_t::data, and ks_free().

Referenced by ks_bquery_free(), ks_bquery_set_auth(), ks_response_free(), and ks_socket_send().

const char* ks_string_get ks_string_t r  ) 
 

Get the contents of a ks_string_t (r) as a terminated string.

Parameters:
r The ks_string_t to get the contents of.
Returns:
A pointer to a terimated string.

Definition at line 169 of file ks_string.c.

References _ks_string_t::data.

Referenced by ks_combination_data(), ks_fact_data(), ks_fact_feed(), ks_fact_identity(), ks_socket_send(), and ks_string_equals().

int ks_string_length ks_string_t r  ) 
 

Get the length of a ks_string_t (r).

Parameters:
r The ks_string_t to return the length of.
Returns:
The length of r.

Definition at line 118 of file ks_string.c.

References _ks_string_t::length.

Referenced by ks_socket_send(), and ks_string_equals().

ks_string_t* ks_string_new const char *  data,
int  len
 

Create a new ks_string_t

Returns:
A pointer to the newly created ks_string_t on success or NULL on failure.

Definition at line 86 of file ks_string.c.

References _ks_string_t::base, _ks_string_t::data, ks_malloc(), ks_string_append(), _ks_string_t::length, _ks_string_t::size, and _ks_base_t::type.

Referenced by ks_assoc_keys(), ks_bquery_combiner_add(), ks_bquery_composite_add(), ks_bquery_feed_add(), ks_bquery_id_get(), ks_bquery_id_set(), ks_bquery_identity_add_tagged(), ks_bquery_packet(), ks_bquery_set_auth(), ks_fact_feed(), and ks_response_error().

void ks_string_set ks_string_t r,
const char *  data,
int  len
 

Set the string pointed to by ks_string_t (r) to the first len bytes of data.

Parameters:
r The ks_string_t to update.
data The data to set r to.
len The length of the string to set r to.
Returns:
Nothing.

Definition at line 156 of file ks_string.c.

References ks_string_append(), and _ks_string_t::length.

Referenced by ks_bquery_id_set(), and ks_bquery_set_auth().

ks_type_t* ks_string_type void   ) 
 

Get the metaclass for ks_string_t objects.

Returns:
A pointer to ks_string's metaclass.

Definition at line 74 of file ks_string.c.

Referenced by ks_response_bparse().


Generated on Tue Aug 7 21:11:31 2007 for libkarmaclient by  doxygen 1.4.4