The UpnpString Class

Implements string operations in the UPnP library. More...

## Files

file | UpnpString.h
| UpnpString object declaration.
file | UpnpString.c
| UpnpString object implementation.

## Data Structures

struct | SUpnpString
| Internal implementation of the class UpnpString. More...

## Typedefs

typedef struct s_UpnpString | UpnpString
| Type of the string objects inside libupnp. More...

## Functions

UpnpString * | UpnpString_new (void)
| Constructor. More...
void | UpnpString_delete (UpnpString *p)
| Destructor. More...
UpnpString * | UpnpString_dup (const UpnpString *p)
| Copy Constructor. More...
void | UpnpString_assign (UpnpString *p, const UpnpString *q)
| Assignment operator. More...
size_t | UpnpString_get_Length (const UpnpString *p)
| Returns the length of the string. More...
void | UpnpString_set_Length (UpnpString *p, size_t n)
| Truncates the string to the specified lenght, or does nothing if the current lenght is less than or equal to the requested length. More...
const char * | UpnpString_get_String (const UpnpString *p)
| Returns the pointer to char. More...
int | UpnpString_set_String (UpnpString *p, const char *s)
| Sets the string from a pointer to char. More...
int | UpnpString_set_StringN (UpnpString *p, const char *s, size_t n)
| Sets the string from a pointer to char using a maximum of N chars. More...
void | UpnpString_clear (UpnpString *p)
| Clears the string, sets its size to zero. More...
int | UpnpString_cmp (UpnpString *p, UpnpString *q)
| Compares two strings for equality. Case matters. More...
int | UpnpString_casecmp (UpnpString *p, UpnpString *q)
| Compares two strings for equality. Case does not matter. More...
static size_t | strnlen (const char *s, size_t n)
static char * | strndup (const char *__string, size_t __n)

## Detailed Description

Implements string operations in the UPnP library.

Author
  Marcelo Roberto Jimenez

Version
  1.0

Due to its heavy use, this class is coded for efficiency, not for beauty. Do not use this as example to other classes. Please take a look at any other one.

Todo:
  Always alloc a minimum size like 64 bytes or so and when shrinking do not perform a new memory allocation.

## Typedef Documentation

## UpnpString

typedef struct s_UpnpString UpnpString

Type of the string objects inside libupnp.

## Function Documentation

## UpnpString_assign()

void UpnpString_assign | ( | UpnpString * | p,
|  | const UpnpString * | q
| ) |  |

Assignment operator.

Parameters

  [in] | p | The this pointer.
  [in] | q | The that pointer.

References UpnpString_get_String(), and UpnpString_set_String().

## UpnpString_casecmp()

int UpnpString_casecmp | ( | UpnpString * | p,
|  | UpnpString * | q
| ) |  |

Compares two strings for equality. Case does not matter.

Returns
  The result of strcasecmp().

Parameters

  [in] | p | The the first string.
  [in] | q | The the second string.

References UpnpString_get_String().

## UpnpString_clear()

void UpnpString_clear | ( | UpnpString * | p | ) |

Clears the string, sets its size to zero.

Parameters

  [in] | p | The this pointer.

## UpnpString_cmp()

int UpnpString_cmp | ( | UpnpString * | p,
|  | UpnpString * | q
| ) |  |

Compares two strings for equality. Case matters.

Returns
  The result of strcmp().

Parameters

  [in] | p | The the first string.
  [in] | q | The the second string.

References UpnpString_get_String().

## UpnpString_delete()

void UpnpString_delete | ( | UpnpString * | p | ) |

Destructor.

Parameters

  [in] | p | The this pointer.

References SUpnpString::m_length, and SUpnpString::m_string.

## UpnpString_dup()

UpnpString * UpnpString_dup | ( | const UpnpString * | p | ) |

Copy Constructor.

Returns
  A pointer to a new allocated copy of the original object.

Parameters

  [in] | p | The this pointer.

References SUpnpString::m_length, and SUpnpString::m_string.

## UpnpString_get_Length()

size_t UpnpString_get_Length | ( | const UpnpString * | p | ) |

Returns the length of the string.

Returns
  The length of the string.

Parameters

  [in] | p | The this pointer.

## UpnpString_get_String()

const char * UpnpString_get_String | ( | const UpnpString * | p | ) |

Returns the pointer to char.

Returns
  The pointer to char.

Parameters

  [in] | p | The this pointer.

Referenced by GetClientSubClientSID(), RemoveClientSubClientSID(), TvDeviceHandleActionRequest(), UpnpString_assign(), UpnpString_casecmp(), and UpnpString_cmp().

## UpnpString_new()

UpnpString * UpnpString_new | ( | void |  | ) |

Constructor.

Returns
  A pointer to a new allocated object.

References SUpnpString::m_length, and SUpnpString::m_string.

Referenced by UpnpRenewSubscription(), UpnpSubscribe(), and UpnpUnSubscribe().

## UpnpString_set_Length()

void UpnpString_set_Length | ( | UpnpString * | p,
|  | size_t | n
| ) |  |

Truncates the string to the specified lenght, or does nothing if the current lenght is less than or equal to the requested length.

Parameters

  [in] | p | The this pointer.
  [in] | n | The requested length.

References SUpnpString::m_length.

## UpnpString_set_String()

int UpnpString_set_String | ( | UpnpString * | p,
|  | const char * | s
| ) |  |

Sets the string from a pointer to char.

Parameters

  [in] | p | The this pointer.
  [in] | s | (char *) to copy from.

References SUpnpString::m_string.

Referenced by UpnpString_assign().

## UpnpString_set_StringN()

int UpnpString_set_StringN | ( | UpnpString * | p,
|  | const char * | s,
|  | size_t | n
| ) |  |

Sets the string from a pointer to char using a maximum of N chars.

Parameters

  [in] | p | The this pointer.
  [in] | s | (char *) to copy from.
  | n | Maximum number of chars to copy.