ucommon::StringPager Class Reference

String pager for storing lists of NULL terminated strings. More...

#include <memory.h>

Inheritance diagram for ucommon::StringPager:
Inheritance graph
[legend]
Collaboration diagram for ucommon::StringPager:
Collaboration graph
[legend]

Data Structures

class  member
 Member of string list. More...

Public Types

typedef linked_pointer
< StringPager::member
iterator
 Convenience typedef for iterative pointer.

Public Member Functions

void add (char **list)
 Add list to list.
void add (const char *text)
 Add text to list.
const char * at (unsigned item) const
StringPager::memberbegin (void) const
 Get root of pager list.
void clear (void)
 Purge all members and release pager member.
unsigned count (void) const
 Get the number of items in the pager string list.
virtual bool filter (char *text, size_t size)
 Filter text in a derived class.
const char * get (unsigned item) const
 Get string item from list.
String join (const char *prefix=NULL, const char *middle=NULL, const char *suffix=NULL)
char ** list (void)
 Gather index list.
 operator bool ()
 operator char ** ()
bool operator! ()
const char * operator* ()
void operator+= (const char *text)
 Convenience operator to add to pager and auto-sort.
StringPageroperator<< (const char *text)
 Convenience operator to add to pager.
StringPageroperator= (char **list)
StringPageroperator>> (const char *text)
const char * operator[] (unsigned item) const
 Return specified member from pager list.
unsigned pages (void)
const char * pop (void)
 Remove element from back of list.
const char * pull (void)
 Remove element from front of list.
void push (char **text)
 Add text list to front of list.
void push (const char *text)
 Add text to front of list.
void set (char **list)
 Set list to list.
void set (unsigned item, const char *string)
 Replace string item in list.
size_t size (void)
void sort (void)
 Sort members.
unsigned split (stringex_t &expr, const char *string, unsigned flags=0)
unsigned split (const char *text, const char *string, unsigned flags=0)
 StringPager (char **list, size_t pagesize=256)
 StringPager (size_t pagesize=256)
 Create a pager with a maximum page size.
unsigned token (const char *text, const char *list, const char *quote=NULL, const char *end=NULL)
 Tokenize a string and add each token to the StringPager.

Protected Member Functions

virtual const char * invalid (void) const

Detailed Description

String pager for storing lists of NULL terminated strings.

This is used for accumulating lists which can be destroyed all at once.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 364 of file memory.h.


Constructor & Destructor Documentation

ucommon::StringPager::StringPager ( size_t  pagesize = 256  ) 

Create a pager with a maximum page size.

Parameters:
size of pager allocation pages.

Member Function Documentation

void ucommon::StringPager::add ( char **  list  ) 

Add list to list.

This is a list of string pointers terminated with NULL.

Parameters:
list of text to add.
void ucommon::StringPager::add ( const char *  text  ) 

Add text to list.

Parameters:
text to add.
StringPager::member* ucommon::StringPager::begin ( void   )  const [inline]

Get root of pager list.

This is useful for externally enumerating the list of strings.

Returns:
first member of list or NULL if empty.

Definition at line 508 of file memory.h.

void ucommon::StringPager::clear ( void   ) 

Purge all members and release pager member.

The list can then be added to again.

unsigned ucommon::StringPager::count ( void   )  const [inline]

Get the number of items in the pager string list.

Returns:
number of items stored.

Reimplemented in ucommon::DirPager.

Definition at line 423 of file memory.h.

virtual bool ucommon::StringPager::filter ( char *  text,
size_t  size 
) [virtual]

Filter text in a derived class.

The base class filter removes newlines at end of text and filters out empty strings.

Parameters:
text to filter.
size of text buffer for transforms.
Returns:
false if end of data.

Reimplemented in ucommon::DirPager.

const char* ucommon::StringPager::get ( unsigned  item  )  const

Get string item from list.

This is useful when StringPager is passed as a pointer and hence inconvenient for the [] operator.

Parameters:
item to access.
Returns:
pointer to text for item, or NULL if out of range.

Reimplemented in ucommon::DirPager.

char** ucommon::StringPager::list ( void   ) 

Gather index list.

Returns:
index.
void ucommon::StringPager::operator+= ( const char *  text  )  [inline]

Convenience operator to add to pager and auto-sort.

Parameters:
text to add to list.

Definition at line 515 of file memory.h.

StringPager& ucommon::StringPager::operator<< ( const char *  text  )  [inline]

Convenience operator to add to pager.

Parameters:
text to add to list.

Definition at line 522 of file memory.h.

const char* ucommon::StringPager::operator[] ( unsigned  item  )  const [inline]

Return specified member from pager list.

This is a convenience operator.

Parameters:
item to access.
Returns:
text of item or NULL if invalid.

Reimplemented in ucommon::DirPager.

Definition at line 497 of file memory.h.

const char* ucommon::StringPager::pop ( void   ) 

Remove element from back of list.

Does not release memory.

Returns:
text removed.
const char* ucommon::StringPager::pull ( void   ) 

Remove element from front of list.

Does not release memory.

Returns:
text removed.
void ucommon::StringPager::push ( char **  text  ) 

Add text list to front of list.

Parameters:
text to add.
void ucommon::StringPager::push ( const char *  text  ) 

Add text to front of list.

Parameters:
text to add.
void ucommon::StringPager::set ( char **  list  ) 

Set list to list.

This is a list of string pointers terminated with NULL.

Parameters:
list of text to set.
void ucommon::StringPager::set ( unsigned  item,
const char *  string 
)

Replace string item in list.

Parameters:
item to replace.
string to replace with.
unsigned ucommon::StringPager::token ( const char *  text,
const char *  list,
const char *  quote = NULL,
const char *  end = NULL 
)

Tokenize a string and add each token to the StringPager.

Parameters:
text to tokenize.
list of characters to use as token separators.
quote pairs of characters for quoted text or NULL if not used.
end of line marker characters or NULL if not used.
Returns:
number of tokens parsed.

The documentation for this class was generated from the following file:

Generated on 30 Jul 2013 for UCommon by  doxygen 1.6.1