Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

UniConfKey Class Reference

#include <uniconfkey.h>

List of all members.


Detailed Description

Represents a UniConf key which is a path in a hierarchy structured much like the traditional Unix filesystem.

The following paths are equivalent when canonicalized:

Keys that may contain slashes or nulls should be escaped in some fashion prior to constructing a UniConfKey object. Simply prefixing slashes with backslashes is inadequate because UniConfKey does not give any special meaning to backslash.


Public Member Functions

 UniConfKey ()
 Constructs an empty UniConfKey (the 'root').
 UniConfKey (WvStringParm key)
 Constructs a UniConfKey from a string.
 UniConfKey (const char *key)
 Constructs a UniConfKey from a string.
 UniConfKey (int key)
 Constructs a UniConfKey from an int.
 UniConfKey (const UniConfKey &other)
 Copies a UniConfKey.
 UniConfKey (const UniConfKey &path, const UniConfKey &key)
 Constructs a UniConfKey by concatenating two keys.
void append (const UniConfKey &other)
 Appends a path to this path.
void prepend (const UniConfKey &other)
 Prepends a path to this path.
bool isempty () const
 Returns true if this path has zero segments (also known as root).
bool iswild () const
 Returns true if the key contains a wildcard.
int numsegments () const
 Returns the number of segments in this path.
UniConfKey segment (int i) const
 Returns the specified segment of the path.
UniConfKey pop (int n=1)
 Returns the path formed by the first n segments of this path and removes them from the key.
UniConfKey first (int n=1) const
 Returns the path formed by the n first segments of this path.
UniConfKey last (int n=1) const
 Returns the path formed by the n last segments of this path.
UniConfKey removefirst (int n=1) const
 Returns the path formed by removing the first n segments of this path.
UniConfKey removelast (int n=1) const
 Returns the path formed by removing the last n segments of this path.
UniConfKey range (int i, int j) const
 Returns a range of segments.
WvString printable () const
 Returns the canonical string representation of the path.
 operator WvString () const
const char * cstr () const
 Returns a (const char *) of printable() directly.
UniConfKeyoperator= (const UniConfKey &other)
 Assigns this path to equal another.
int compareto (const UniConfKey &other) const
 Compares two paths lexicographically.
bool matches (const UniConfKey &pattern) const
 Determines if the key matches a pattern.
bool suborsame (const UniConfKey &key) const
 Returns true if this key is either the same key as the key specified or a subkey of that key.
bool operator== (const UniConfKey &other) const
 Determines if two paths are equal.
bool operator!= (const UniConfKey &other) const
 Determines if two paths are unequal.
bool operator< (const UniConfKey &other) const
 Determines if this path precedes the other lexicographically.

Static Public Attributes

static UniConfKey EMPTY
static UniConfKey ANY
static UniConfKey RECURSIVE_ANY

Protected Member Functions

void init (WvStringParm key)

Classes

class  Iter
 An iterator over the segments of a key. More...


Constructor & Destructor Documentation

UniConfKey::UniConfKey WvStringParm  key  )  [inline]
 

Constructs a UniConfKey from a string.

See the rules above for information about how the key string is canonicalized.

"key" is the key as a string

UniConfKey::UniConfKey const char *  key  )  [inline]
 

Constructs a UniConfKey from a string.

See the rules above for information about how the key string is canonicalized. This constructor only exists to help out the C++ compiler with its automatic type conversions.

"key" is the key as a string

UniConfKey::UniConfKey const UniConfKey other  ) 
 

Copies a UniConfKey.

"other" is the key to copy

UniConfKey::UniConfKey const UniConfKey path,
const UniConfKey key
 

Constructs a UniConfKey by concatenating two keys.

"path" is the initial part of the new path "key" is the tail of the new path


Member Function Documentation

void UniConfKey::append const UniConfKey other  ) 
 

Appends a path to this path.

"other" is the path

void UniConfKey::prepend const UniConfKey other  ) 
 

Prepends a path to this path.

"other" is the path

bool UniConfKey::isempty  )  const
 

Returns true if this path has zero segments (also known as root).

Returns: numsegments() == 0

int UniConfKey::numsegments  )  const
 

Returns the number of segments in this path.

The number of segments is equal to the number of slashes in the path unless the path is "/" (the root), which has zero segments.

Returns: the number of segments

UniConfKey UniConfKey::segment int  i  )  const
 

Returns the specified segment of the path.

"i" is the segment index Returns: the segment

UniConfKey UniConfKey::pop int  n = 1  ) 
 

Returns the path formed by the first n segments of this path and removes them from the key.

Returns: the path

UniConfKey UniConfKey::first int  n = 1  )  const
 

Returns the path formed by the n first segments of this path.

"n" is the number of segments Returns: the path

UniConfKey UniConfKey::last int  n = 1  )  const
 

Returns the path formed by the n last segments of this path.

"n" is the number of segments Returns: the path

UniConfKey UniConfKey::removefirst int  n = 1  )  const
 

Returns the path formed by removing the first n segments of this path.

"n" is the number of segments Returns: the path

UniConfKey UniConfKey::removelast int  n = 1  )  const
 

Returns the path formed by removing the last n segments of this path.

"n" is the number of segments Returns: the path

UniConfKey UniConfKey::range int  i,
int  j
const
 

Returns a range of segments.

"i" is the first segment index, beginning if <= 0 "j" is the last segment index, end if >= numsegments() Returns: the path, empty if j <= i

WvString UniConfKey::printable  )  const
 

Returns the canonical string representation of the path.

If the UniConfKey was constructed in part or whole from strings, then the string returned here will have the same case information as those strings but the arrangement of slashes may differ. That is, the identity UniConfKey(string).printable() == string does not hold.

Returns: the path as a string

UniConfKey & UniConfKey::operator= const UniConfKey other  ) 
 

Assigns this path to equal another.

"other" is the other path

int UniConfKey::compareto const UniConfKey other  )  const
 

Compares two paths lexicographically.

Uses case-insensitive matching on the path string to produce a total ordering of all paths. "other" is the other path Returns: 0 if *this == other, < 0 if *this < other, else > 0

bool UniConfKey::matches const UniConfKey pattern  )  const
 

Determines if the key matches a pattern.

Patterns are simply keys that may have path segments consiting entirely of "*". Optional path segments are indicated by the segment "..." which matches zero or more segments.

Using wildcards to represent part of a segment is not supported yet. "pattern" is the pattern Returns: true if the key matches, false otherwise

bool UniConfKey::operator== const UniConfKey other  )  const [inline]
 

Determines if two paths are equal.

"other" is the other path Returns: true in that case

bool UniConfKey::operator!= const UniConfKey other  )  const [inline]
 

Determines if two paths are unequal.

"other" is the other path Returns: true in that case

bool UniConfKey::operator< const UniConfKey other  )  const [inline]
 

Determines if this path precedes the other lexicographically.

"other" is the other path Returns: true in that case


Member Data Documentation

UniConfKey UniConfKey::EMPTY [static]
 

represents "" (root)

UniConfKey UniConfKey::ANY [static]
 

represents "*"

UniConfKey UniConfKey::RECURSIVE_ANY [static]
 

represents "..."


The documentation for this class was generated from the following files:
Generated on Sun Jul 10 15:31:31 2005 for WvStreams by  doxygen 1.4.0