#include <BALL/FORMAT/INIFile.h>
List of all members.
Detailed Description
INIFile. This class provides support to read and evaluate the contents of Windows-style INI files.
Definition at line 28 of file INIFile.h.
Member Typedef Documentation
An iterator for the lines in an INIFile. With a LineIterator it is easy to iterate over all lines in an instance of INIFile.
Definition at line 91 of file INIFile.h.
Member Enumeration Documentation
Enum for constants
- Enumerator:
MAX_LINE_LENGTH |
Maximum line length for each entry (1048576)
|
Definition at line 34 of file INIFile.h.
Constructor & Destructor Documentation
BALL::INIFile::INIFile |
( |
|
) |
|
Default constructor. The state of valid_ is set to false. An instance is valid if it is read or written successfully.
BALL::INIFile::INIFile |
( |
const String & |
filename |
) |
|
Constructor with filename The file is not opend.
virtual BALL::INIFile::~INIFile |
( |
|
) |
[virtual] |
Member Function Documentation
bool BALL::INIFile::appendLine |
( |
const String & |
line |
) |
|
Append a line to the last section.
bool BALL::INIFile::appendLine |
( |
const String & |
section_name, |
|
|
const String & |
line | |
|
) |
| | |
Append a line to a section. To add a line to the HEADER use INIFile::HEADER as section_name. If the given section does not exists, false is returned. Lines starting with "[" cannot be added (to prevent problems with section headers). If checking for duplicate keys is enabled and line contains a key, the section already contains, the method aborts and returns false, use setValue() instead. If an empty string is given as value for section_name, the last section is used.
- Parameters:
-
| section_name | the section to add the line |
| line | the line to be added |
- See also:
- setDuplicateKeyCheck
- Returns:
- true, if line could be added
bool BALL::INIFile::appendSection |
( |
const String & |
section |
) |
|
Append a section. If the given section does already exists, false is returned.
Apply a processor to all lines of the file.
void BALL::INIFile::clear |
( |
|
) |
|
Clear the internal datastructures. Clear
frees all allocated memory but retains the filename set for the INIFile
object.
Delete a line. If the line does not exists, false is returned. Section headers can not be removed with this method. If the line contains a key, it will be removed.
- Parameters:
-
| line_number | the line to delete |
bool BALL::INIFile::deleteSection |
( |
const String & |
section |
) |
|
Delete a section. If the given section does not exist, false is returned. If you remove the header, all lines of the header are removed, but the header itself still remains as section in the instance.
bool BALL::INIFile::duplicateKeyCheckEnabled |
( |
|
) |
const |
Get checking mode for duplicate keys
std::list<String> BALL::INIFile::getContent |
( |
|
) |
const |
const String& BALL::INIFile::getFilename |
( |
|
) |
const |
Returns the current filename.
Return the contents of the specified line. If the line_number given is not valid (less than 0 or greater/equal to the number returned by getNumberOfLines ) a non-valid iterator is returned. Use of this method is not recommended, because in the worst case, it could be O(n).
- Parameters:
-
| line_number,first | line starts with 0 |
- Returns:
- LineIterator to the specified line
Size BALL::INIFile::getNumberOfLines |
( |
|
) |
const |
Size BALL::INIFile::getNumberOfSections |
( |
|
) |
const |
Count all sections. The HEADER is not counted!
Return an iterator to a section at a given position.
- Returns:
- SectionIterator
Return an iterator to a section with a given name.
- Returns:
- SectionIterator
Returns an iterator to the first line of a section. The first line of a section is the line with the section name (in square brackets).
- Returns:
- LineIterator
- iterator to the first line of the section
- unvalid iterator, if section does not exist
- Parameters:
-
| section_name | the name of the section to be found |
Returns an iterator to the last line of a section.
- Returns:
- LineIterator
- iterator to the last line of the section
- unvalid iterator, if section does not exist
- Parameters:
-
| section_name | the name of the section to be found |
Size BALL::INIFile::getSectionLength |
( |
const String & |
section_name |
) |
const |
Returns the number of lines in a section.
- Returns:
- Size
- the number of lines, or
- INVALID_SIZE if the section could not be found
- Parameters:
-
| section_name | the name of the section to be found |
Query the value corresponding to a given key. If no value exists for the given key, or either the section or the key are not defined, UNDEFINED is returned.
- Parameters:
-
| section | the section name to look in for the key |
| key | a key in the section |
- Returns:
- String
- the value corresponding to the key in section
- or UNDEFINED
bool BALL::INIFile::hasEntry |
( |
const String & |
section, |
|
|
const String & |
key | |
|
) |
| | const |
Check whether the given section contains a certain key.
- Returns:
- bool
- true if the key could be found in the section,
- false if either key or section didn't exist
- Parameters:
-
| section | the section to look in for the key |
| key | the key to look for |
bool BALL::INIFile::hasSection |
( |
const String & |
section_name |
) |
const |
Queries for a certain section.
- Parameters:
-
| section_name | the name of the section (without square brackets) |
- Returns:
- bool
- true if the section exists (is hashed!)
- false if the section could not be found
Add a line after a given iterator. Lines starting with "[" cannot be added (to prevent problems with section headers). If the line contains a key and the section already contains this key the method aborts and returns false, use setValue() instead.
- Parameters:
-
| line_it | the iterator to insert after |
| line | the line to be added |
- Returns:
- true, if line could be added
Insert a new value in a given section If the key exists already or the sections doesnt exist, nothing happens.
- Parameters:
-
| section | the section to insert the key |
| key | the key to insert |
| value | the new value |
- Returns:
- bool
- true if the value was inserted
- false if key or section do not exist
Test if the given SectionIterator is valid for this instance.
Test if the given LineIterator is valid for this instance.
bool BALL::INIFile::isValid |
( |
|
) |
const |
Returns the current state of the instance of INIFile. An instance is valid if it is read or writen succesfully.
bool BALL::INIFile::operator== |
( |
const INIFile & |
inifile |
) |
const |
Equality operator. Two instances are equal if they have the same sections with the same lines.
bool BALL::INIFile::read |
( |
|
) |
|
Open a file and read its contents. This method destroys all existing data in memory and then tries to open the file specified by setFilename. If the file could not be opened, the method returns false, leaving the INIFile instance in invalid state (as returned by isValid ).
- If the file could be opened, the whole file is read into an internal buffer and the different sections are interpreted. Then, internal datastructures for fast access to the stored data are build (Hashtable containing the sections).
- Lines starting with '!', ';', or '#' are treated as comment lines and stored, but not interpreted. Key-names and values are trimmed. If a line starts with "[", but no closing bracket occurs, false is returned.
- Returns:
- bool
- true if the file could be opened and read
- false otherwise
bool BALL::INIFile::setContent |
( |
const std::list< String > & |
lines |
) |
|
void BALL::INIFile::setDuplicateKeyCheck |
( |
bool |
mode |
) |
|
Set checking for duplicate keys mode
void BALL::INIFile::setFilename |
( |
const String & |
filename |
) |
|
Sets a new filename. The state of valid_ is set to false.
Change the contents of a line. Replaces the line given by line_it by the text in line. Section lines cannot be changed with this method. If the line contains a key, the old key is deleted and the new (if any) is set. If the line starts with "[" the method aborts.
- Parameters:
-
| line_it | iterator to the line to change |
| line | new content of the line |
Change the value corresponding to a given key. Replaces the value of an existing key in an existing section. If the key or the new value is a empty string nothing is changed.
- Parameters:
-
| section | the section to look in for the key |
| key | the key to look for |
| value | the new value |
- Returns:
- bool
- true if the value was changed
- false if key or section do not exist
bool BALL::INIFile::write |
( |
|
) |
|
Writes the buffer contents to a file. If the file could not be written, valid_ is set to false, ow true.
- Returns:
- bool
- true if the file could be succesfully written
- false otherwise
Member Data Documentation
Name of the HEADER section: $ "\#HEADER!" $
Definition at line 101 of file INIFile.h.
Return type for undefined keys "[UNDEFINED!]"
Definition at line 96 of file INIFile.h.