Files
Work/nntp/OPTNSREG.HPP
2024-08-07 09:16:27 -04:00

166 lines
3.7 KiB
C++

#ifndef _NNTP_OPTIONSREG_HPP_
#define _NNTP_OPTIONSREG_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_REGKEY_HPP_
#include <common/regkey.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _COMMON_SYSTEMTIME_HPP_
#include <common/systime.hpp>
#endif
#ifndef _COMMON_DISKINFO_HPP_
#include <common/diskinfo.hpp>
#endif
#ifndef _NNTP_RESOURCE_HPP_
#include <nntp/resource.hpp>
#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