KrProfile
Description
#include "krprof.hpp"
Using this class, you can read and write data from/to os2.ini, os2sys.ini, or any other OS/2 style ini file that you choose, using the common << and >> operators.
Derivation
KrProfile inherits from iostream. It also inherits from the non-public class _KrProfileBase, but this is only for technical reasons.
Constructors
You can construct and destruct objects of this class.
Overload 1
public: KrProfile (const IString & aApp, profile aProfile = user, Boolean iBuffered = false);
Use this constructor to open the system ini file aProfile for reading and writing data of the application which is identified by the name aApp in the ini file.
By default, the object acts like a unit-buffered iostream, i.e. you can simply do your input output using the operators << and >>. If you want to avoid the slight overhead created by unit-buffering, and you want full buffering instead, set iBuffered=true If you do so, however, don't forget that you are now responsible for flushing the stream yourself using the manipulator flush.
Overload 2
public: KrProfile (const IString & aApp, const IString & aProfile, Boolean iBuffered = false);
This is identical to overload 1, except that aProfile is now not neccessarily a system ini file, but the file name of any ini file. If it doesn't already exist, this constructor creates this ini file.
Public Functions
Application control
exists
Returns true if any data of the application already exists in the ini file, and false otherwise.
public: Boolean exists ();
removeApp
Removes all data of the application from the ini file.
public: void removeApp ();
Constructors
KrProfile
You can construct and destruct objects of this class.
Overload 1
public: KrProfile (const IString & aApp, profile aProfile = user, Boolean iBuffered = false);
Use this constructor to open the system ini file aProfile for reading and writing data of the application which is identified by the name aApp in the ini file.
By default, the object acts like a unit-buffered iostream, i.e. you can simply do your input output using the operators << and >>. If you want to avoid the slight overhead created by unit-buffering, and you want full buffering instead, set iBuffered=true If you do so, however, don't forget that you are now responsible for flushing the stream yourself using the manipulator flush.
Overload 2
public: KrProfile (const IString & aApp, const IString & aProfile, Boolean iBuffered = false);
This is identical to overload 1, except that aProfile is now not neccessarily a system ini file, but the file name of any ini file. If it doesn't already exist, this constructor creates this ini file.
~KrProfile
public: ~KrProfile ();
I/O functions
clearBuffer
Do not use this function, since it might become private in a later version. Use the manipulator clear instead.
public: void clearBuffer ();
readData
This function appends the contents of the ini file associated to the current key to the stream. Its direct use may be confusing; it is recommended to use the >> operator instead, which will call this function only when neccessary. This function may become private in a later version.
public: virtual void readData ();
writeData
Do not use this function, since it might become private in a later version. Use the manipulator flush instead.
public: virtual void writeData (Boolean callFromBuff);
Key control
existsKey
Returns true if any data associated to the current key already exists in the ini file, and false otherwise.
public: Boolean existsKey ();
key
Returns the currently set key.
public: IString & key ();
removeKey
Removes all data associated to the currently set key from the ini file.
public: void removeKey ();
setKey
Clears the stream and sets a new key. Before setKey is called for the first time, the key "Default" is set.
public: void setKey (const IString & aKey = "Default");
Retrieving information
good
Returns true if the ini file was successfully opened, and false otherwise.
public: Boolean good ();
size
Returns the number of bytes currently stored in the ini file under the current key.
public: long size ();
Enumerations
Profile
public: enum profile { system, user, both };
If a system ini file is to be opened, a member of this enumeration should be passed to the constructor. These are their meanings:
system Read and write to the OS/2 system ini file (usually called os2sys.ini)
user Read and write to the OS/2 user ini file (usually called os2.ini)
both Read from both above ini files, write to the OS/2 user ini file.