JX Application Framework
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Friends | List of all members
JPrefsManager Class Referenceabstract

#include <JPrefsManager.h>

Inheritance diagram for JPrefsManager:
[legend]

Classes

class  DataChanged
 
class  DataMessage
 
class  DataRemoved
 
class  WrongVersion
 

Public Member Functions

 JPrefsManager (const JString &fileName, const JFileVersion currentVersion, const bool eraseFileIfOpen)
 
 ~JPrefsManager () override
 
JError SaveToDisk () const
 
JFileVersion GetPrevPrefsVersion () const
 
- Public Member Functions inherited from JContainer
 JContainer ()
 
 JContainer (const JContainer &source)
 
JContaineroperator= (const JContainer &source)
 
- Public Member Functions inherited from JCollection
 JCollection ()
 
 JCollection (const JCollection &source)
 
 ~JCollection () override
 
JCollectionoperator= (const JCollection &source)
 
JSize GetItemCount () const
 
bool IsEmpty () const
 
bool IndexValid (const JIndex index) const
 
JIndex GetIndexFromEnd (const JIndex index) const
 
JString ToString () const override
 
- Public Member Functions inherited from JBroadcaster
 JBroadcaster ()
 
virtual ~JBroadcaster ()
 
JBroadcasteroperator= (const JBroadcaster &source)
 
bool HasSenders () const
 
JSize GetSenderCount () const
 
bool HasRecipients () const
 
JSize GetRecipientCount () const
 
template<class T >
void ListenTo (const JBroadcaster *sender, const std::function< void(const T &)> &f)
 

Static Public Attributes

static const JUtf8BytekDataChanged = "DataChanged::JPrefsManager"
 
static const JUtf8BytekDataRemoved = "DataRemoved::JPrefsManager"
 
static const JUtf8BytekWrongVersion = "WrongVersion::JPrefsManager"
 

Protected Member Functions

bool IDValid (const JPrefID &id) const
 
bool GetData (const JPrefID &id, std::string *data) const
 
void SetData (const JPrefID &id, std::ostringstream &data)
 
void SetData (const JPrefID &id, std::string &data)
 
void SetData (const JPrefID &id, const JString &data)
 
void SetData (const JPrefID &id, const JUtf8Byte *data)
 
void RemoveData (const JPrefID &id)
 
bool UpgradeData (const bool reportError=true)
 
virtual void UpgradeData (const bool isNew, const JFileVersion currentVersion)=0
 
virtual void DataLoaded ()=0
 
- Protected Member Functions inherited from JContainer
void InstallCollection (JCollection *list)
 
const JCollectionGetList () const
 
void Receive (JBroadcaster *sender, const Message &message) override
 
- Protected Member Functions inherited from JCollection
void ItemAdded ()
 
void ItemRemoved ()
 
void SetItemCount (const JSize newItemCount)
 
- Protected Member Functions inherited from JBroadcaster
 JBroadcaster (const JBroadcaster &source)
 
void ListenTo (const JBroadcaster *sender)
 
void StopListening (const JBroadcaster *sender)
 
void ClearWhenGoingAway (const JBroadcaster *sender, void *pointerToMember)
 
void StopListening (const JBroadcaster *sender, const std::type_info &messageType)
 
template<class T >
void Send (JBroadcaster *recipient, const T &message)
 
template<class T >
void Broadcast (const T &message)
 
void SendWithFeedback (JBroadcaster *recipient, Message *message)
 
void BroadcastWithFeedback (Message *message)
 
virtual void ReceiveWithFeedback (JBroadcaster *sender, Message *message)
 
virtual void ReceiveGoingAway (JBroadcaster *sender)
 

Friends

class JPrefObject
 

Detailed Description

Buffers the data in a JPrefsFile and provides a base class for
application-specific preferences management.  The functions to access
the data are protected because they should be hidden behind a clean
interface in the derived class.

UpgradeData() is called after the file has been read.  Since UpgradeData()
must work on an empty file, this ensures that the program has a valid set
of preferences even if the file could not be read.

Some programs enforce that only a single copy is running for each user,
so an open prefs file means that the program crashed while editing the
preferences.  If this is the case, pass true for eraseFileIfOpen to
the constructor.

Derived classes must implement the following function:

    UpgradeData
        Upgrade the preferences data from the specified version.

Constructor & Destructor Documentation

◆ JPrefsManager()

JPrefsManager::JPrefsManager ( const JString fileName,
const JFileVersion  currentVersion,
const bool  eraseFileIfOpen 
)

Derived class must call UpgradeData().

◆ ~JPrefsManager()

JPrefsManager::~JPrefsManager ( )
override

Derived classes must call SaveToDisk().

Member Function Documentation

◆ DataLoaded()

virtual void JPrefsManager::DataLoaded ( )
protectedpure virtual

Implemented in JXPrefsManager.

◆ GetData()

bool JPrefsManager::GetData ( const JPrefID id,
std::string *  data 
) const
protected

◆ GetPrevPrefsVersion()

JFileVersion JPrefsManager::GetPrevPrefsVersion ( ) const
inline

◆ IDValid()

bool JPrefsManager::IDValid ( const JPrefID id) const
inlineprotected

◆ RemoveData()

void JPrefsManager::RemoveData ( const JPrefID id)
protected

◆ SaveToDisk()

JError JPrefsManager::SaveToDisk ( ) const

◆ SetData() [1/4]

void JPrefsManager::SetData ( const JPrefID id,
const JString data 
)
protected

This creates the item if it doesn't already exist.

◆ SetData() [2/4]

void JPrefsManager::SetData ( const JPrefID id,
const JUtf8Byte data 
)
protected

◆ SetData() [3/4]

void JPrefsManager::SetData ( const JPrefID id,
std::ostringstream &  data 
)
inlineprotected

This creates the item if it doesn't already exist.

◆ SetData() [4/4]

void JPrefsManager::SetData ( const JPrefID id,
std::string &  data 
)
inlineprotected

◆ UpgradeData() [1/2]

virtual void JPrefsManager::UpgradeData ( const bool  isNew,
const JFileVersion  currentVersion 
)
protectedpure virtual

◆ UpgradeData() [2/2]

bool JPrefsManager::UpgradeData ( const bool  reportError = true)
protected

Returns true if the file had to be created.

Friends And Related Symbol Documentation

◆ JPrefObject

friend class JPrefObject
friend

Member Data Documentation

◆ kDataChanged

const JUtf8Byte * JPrefsManager::kDataChanged = "DataChanged::JPrefsManager"
static

◆ kDataRemoved

const JUtf8Byte * JPrefsManager::kDataRemoved = "DataRemoved::JPrefsManager"
static

◆ kWrongVersion

const JUtf8Byte * JPrefsManager::kWrongVersion = "WrongVersion::JPrefsManager"
static

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