#ifndef _NNTP_OPTIONSREG_HPP_ #define _NNTP_OPTIONSREG_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_REGKEY_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_SYSTEMTIME_HPP_ #include #endif #ifndef _COMMON_DISKINFO_HPP_ #include #endif #ifndef _NNTP_RESOURCE_HPP_ #include #endif class OptionsReg { public: OptionsReg(void); OptionsReg(const OptionsReg &someOptionsReg); virtual ~OptionsReg(); OptionsReg &operator=(const OptionsReg &someOptionsReg); DWORD priorDays(void)const; void priorDays(DWORD priorDays); const String &serverName(void)const; void serverName(const String &hostName); const String &userName(void)const; void userName(const String &userName); const String &password(void)const; void password(const String &password); const String &newsDir(void)const; void newsDir(const String &newsDirectory); private: RegKey mRegKey; DWORD mPriorDays; String mServerName; String mUserName; String mPassword; String mNewsDir; String mServerKeyServerName; String mUserNameKeyUserName; String mPasswordKeyPassword; String mOptionsKeyNewsDir; String mOptionsKeyPriorDays; String mOptionsKeyName; }; inline OptionsReg::OptionsReg(void) : mPriorDays(0), mRegKey(RegKey::CurrentUser), mOptionsKeyName(STRING_OPTIONSKEYNAME), mOptionsKeyPriorDays(STRING_OPTIONSKEYPRIORDAYS), mServerKeyServerName(STRING_SERVERKEYNAME), mOptionsKeyNewsDir(STRING_OPTIONSKEYNEWSDIR), mUserNameKeyUserName(STRING_USERNAMEKEY), mPasswordKeyPassword(STRING_PASSWORDKEY) { if(!mRegKey.openKey(mOptionsKeyName)) { SystemTime systemTime; mRegKey.createKey(mOptionsKeyName,""); mRegKey.openKey(mOptionsKeyName); mRegKey.setValue(mOptionsKeyPriorDays,0L); } mRegKey.queryValue(mOptionsKeyNewsDir,mNewsDir); if(mNewsDir.isNull()) { DiskInfo diskInfo; diskInfo.getCurrentDirectory(mNewsDir); mRegKey.setValue(mOptionsKeyNewsDir,mNewsDir); } mRegKey.queryValue(mOptionsKeyPriorDays,mPriorDays); mRegKey.queryValue(mServerKeyServerName,mServerName); mRegKey.queryValue(mUserNameKeyUserName,mUserName); mRegKey.queryValue(mPasswordKeyPassword,mPassword); } inline OptionsReg::OptionsReg(const OptionsReg &someOptionsReg) : mPriorDays(0), mRegKey(RegKey::CurrentUser), mOptionsKeyName(STRING_OPTIONSKEYNAME), mOptionsKeyPriorDays(STRING_OPTIONSKEYPRIORDAYS), mServerKeyServerName(STRING_SERVERKEYNAME), mOptionsKeyNewsDir(STRING_OPTIONSKEYNEWSDIR) { *this=someOptionsReg; } inline OptionsReg::~OptionsReg() { } inline OptionsReg &OptionsReg::operator=(const OptionsReg &someOptionsReg) { priorDays(someOptionsReg.priorDays()); return *this; } inline DWORD OptionsReg::priorDays(void)const { return mPriorDays; } inline void OptionsReg::priorDays(DWORD priorDays) { mPriorDays=priorDays; mRegKey.setValue(mOptionsKeyPriorDays,mPriorDays); } inline const String &OptionsReg::serverName(void)const { return mServerName; } inline void OptionsReg::serverName(const String &serverName) { mServerName=serverName; mRegKey.setValue(mServerKeyServerName,mServerName); } inline const String &OptionsReg::userName(void)const { return mUserName; } inline void OptionsReg::userName(const String &userName) { mUserName=userName; mRegKey.setValue(mUserNameKeyUserName,mUserName); } inline const String &OptionsReg::password(void)const { return mPassword; } inline void OptionsReg::password(const String &password) { mPassword=password; mRegKey.setValue(mPasswordKeyPassword,password); } inline const String &OptionsReg::newsDir(void)const { return mNewsDir; } inline void OptionsReg::newsDir(const String &newsDir) { mNewsDir=newsDir; mRegKey.setValue(mOptionsKeyNewsDir,mNewsDir); } #endif