UCommon
Public Member Functions | Protected Member Functions | Protected Attributes
ucommon::DirPager Class Reference

Directory pager is a paged string list for directory file names. More...

#include <memory.h>

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

Public Member Functions

void assign (DirPager &source)
 Assign foreign pager to us. More...
 
const char * at (unsigned item) const
 
unsigned count (void) const
 
 DirPager (const char *path)
 
const char * get (unsigned item) const
 
const char * operator * () const
 
 operator bool () const
 
bool operator! () const
 
void operator= (const char *path)
 
const char * operator[] (unsigned item) const
 Return specified filename from directory list. More...
 
unsigned pages (void) const
 
size_t size (void) const
 

Protected Member Functions

virtual bool filter (char *filename, size_t size)
 Filter filenames in a derived class. More...
 
bool load (const char *path)
 Load a directory path. More...
 
- Protected Member Functions inherited from ucommon::StringPager
void add (const char *text)
 Add text to list. More...
 
void add (char **list)
 Add list to list. More...
 
void assign (StringPager &source)
 Assign foreign pager to us. More...
 
const char * at (unsigned item) const
 
StringPager::memberbegin (void) const
 Get root of pager list. More...
 
void clear (void)
 Purge all members and release pager member. More...
 
unsigned count (void) const
 Get the number of items in the pager string list. More...
 
const char * get (unsigned item) const
 Get string item from list. More...
 
String join (const char *prefix=NULL, const char *middle=NULL, const char *suffix=NULL)
 
char ** list (void)
 Gather index list. More...
 
const char * operator * ()
 
 operator bool () const
 
 operator char ** ()
 
bool operator! () const
 
void operator+= (const char *text)
 Convenience operator to add to pager and auto-sort. More...
 
StringPageroperator<< (const char *text)
 Convenience operator to add to pager. More...
 
StringPageroperator= (char **list)
 
StringPageroperator>> (const char *text)
 
const char * operator[] (unsigned item) const
 Return specified member from pager list. More...
 
unsigned pages (void) const
 
const char * pop (void)
 Remove element from back of list. More...
 
const char * pull (void)
 Remove element from front of list. More...
 
void push (const char *text)
 Add text to front of list. More...
 
void push (char **text)
 Add text list to front of list. More...
 
void set (unsigned item, const char *string)
 Replace string item in list. More...
 
void set (char **list)
 Set list to list. More...
 
size_t size (void) const
 
void sort (void)
 Sort members.
 
unsigned split (const char *text, const char *string, unsigned flags=0)
 
unsigned split (stringex_t &expr, const char *string, unsigned flags=0)
 
 StringPager (size_t pagesize=256)
 Create a pager with a maximum page size. More...
 
 StringPager (char **list, size_t pagesize=256)
 
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. More...
 
- Protected Member Functions inherited from ucommon::memalloc
virtual void * _alloc (size_t size)
 Allocate memory from the pager heap. More...
 
page_t * pager (void)
 Acquire a new page from the heap. More...
 
void assign (memalloc &source)
 Assign foreign pager to us. More...
 
unsigned max (void) const
 Get the maximum number of pages that are permitted. More...
 
 memalloc (size_t page=0)
 Construct a memory pager. More...
 
 memalloc (const memalloc &copy)
 
unsigned pages (void) const
 Get the number of pages that have been allocated from the real heap. More...
 
void purge (void)
 Purge all allocated memory and heap pages immediately.
 
size_t size (void) const
 Get the size of a memory page. More...
 
unsigned utilization (void) const
 Determine fragmentation level of acquired heap pages. More...
 
virtual ~memalloc ()
 Destroy a memory pager. More...
 

Protected Attributes

const char * dir
 
- Protected Attributes inherited from ucommon::memalloc
unsigned limit
 

Additional Inherited Members

- Protected Types inherited from ucommon::StringPager
typedef linked_pointer< StringPager::memberiterator
 Convenience typedef for iterative pointer.
 

Detailed Description

Directory pager is a paged string list for directory file names.

This protocol is used to convert a directory into a list of filenames. As a protocol it offers a filtering method to select which files to include in the list.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 653 of file memory.h.

Member Function Documentation

◆ assign()

void ucommon::DirPager::assign ( DirPager source)

Assign foreign pager to us.

This relocates the heap references to our object, clears the other object.

◆ filter()

virtual bool ucommon::DirPager::filter ( char *  filename,
size_t  size 
)
protectedvirtual

Filter filenames in a derived class.

The default filter drops "." special files.

Parameters
filenameto filter.
sizeof filename buffer.
Returns
true if include in final list.

Reimplemented from ucommon::StringPager.

◆ load()

bool ucommon::DirPager::load ( const char *  path)
protected

Load a directory path.

Parameters
pathto load.
Returns
true if valid.

◆ operator[]()

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

Return specified filename from directory list.

This is a convenience operator.

Parameters
itemto access.
Returns
text of item or NULL if invalid.

Definition at line 706 of file memory.h.

Here is the call graph for this function:

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