本文整理汇总了C++中WStatus::GetMinutesActiveToday方法的典型用法代码示例。如果您正苦于以下问题:C++ WStatus::GetMinutesActiveToday方法的具体用法?C++ WStatus::GetMinutesActiveToday怎么用?C++ WStatus::GetMinutesActiveToday使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WStatus
的用法示例。
在下文中一共展示了WStatus::GetMinutesActiveToday方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: beginday
void beginday(bool displayStatus) {
if ((GetSession()->GetBeginDayNodeNumber() > 0)
&& (GetApplication()->GetInstanceNumber() != GetSession()->GetBeginDayNodeNumber())) {
// If BEGINDAYNODENUMBER is > 0 or defined in WWIV.INI only handle beginday events on that node number
GetApplication()->GetStatusManager()->RefreshStatusCache();
return;
}
WStatus *pStatus = GetApplication()->GetStatusManager()->BeginTransaction();
pStatus->ValidateAndFixDates();
if (wwiv::strings::IsEquals(date(), pStatus->GetLastDate())) {
GetApplication()->GetStatusManager()->CommitTransaction(pStatus);
return;
}
GetSession()->bout << "|#7* |#1Running Daily Maintenance...\r\n";
if (displayStatus) {
GetSession()->bout << " |#7* |#1Updating system activity...\r\n";
}
zlogrec z;
strcpy(z.date, pStatus->GetLastDate());
z.active = pStatus->GetMinutesActiveToday();
z.calls = pStatus->GetNumCallsToday();
z.posts = pStatus->GetNumLocalPosts();
z.email = pStatus->GetNumEmailSentToday();
z.fback = pStatus->GetNumFeedbackSentToday();
z.up = pStatus->GetNumUploadsToday();
pStatus->NewDay();
if (displayStatus) {
GetSession()->bout << " |#7* |#1Cleaning up log files...\r\n";
}
WFile::Remove(syscfg.gfilesdir, pStatus->GetLogFileName(1));
WFile::Remove(syscfg.gfilesdir, USER_LOG);
if (displayStatus) {
GetSession()->bout << " |#7* |#1Updating ZLOG information...\r\n";
}
WFile fileZLog(syscfg.datadir, ZLOG_DAT);
zlogrec z1;
if (!fileZLog.Open(WFile::modeReadWrite | WFile::modeBinary)) {
fileZLog.Open(WFile::modeReadWrite | WFile::modeBinary | WFile::modeCreateFile, WFile::shareDenyNone,
WFile::permReadWrite);
z1.date[0] = '\0';
z1.active = 0;
z1.calls = 0;
z1.posts = 0;
z1.email = 0;
z1.fback = 0;
z1.up = 0;
for (int i = 0; i < 97; i++) {
fileZLog.Write(&z1, sizeof(zlogrec));
}
} else {
for (int i = 96; i >= 1; i--) {
fileZLog.Seek((i - 1) * sizeof(zlogrec), WFile::seekBegin);
fileZLog.Read(&z1, sizeof(zlogrec));
fileZLog.Seek(i * sizeof(zlogrec), WFile::seekBegin);
fileZLog.Write(&z1, sizeof(zlogrec));
}
}
fileZLog.Seek(0L, WFile::seekBegin);
fileZLog.Write(&z, sizeof(zlogrec));
fileZLog.Close();
if (displayStatus) {
GetSession()->bout << " |#7* |#1Updating STATUS.DAT...\r\n";
}
int nus = syscfg.maxusers - pStatus->GetNumUsers();
GetApplication()->GetStatusManager()->CommitTransaction(pStatus);
if (displayStatus) {
GetSession()->bout << " |#7* |#1Checking system directories and user space...\r\n";
}
double fk = freek1(syscfg.datadir);
if (fk < 512.0) {
ssm(1, 0, "Only %dk free in data directory.", static_cast<int>(fk));
}
if (!syscfg.closedsystem && nus < 15) {
ssm(1, 0, "Only %d new user slots left.", nus);
}
if (syscfg.beginday_c && *syscfg.beginday_c) {
const std::string commandLine = stuff_in(syscfg.beginday_c, create_chain_file(), "", "", "", "");
ExecuteExternalProgram(commandLine, GetApplication()->GetSpawnOptions(SPWANOPT_BEGINDAY));
}
if (displayStatus) {
GetSession()->bout << " |#7* |#1Purging inactive users (if enabled)...\r\n";
}
auto_purge();
if (displayStatus) {
GetSession()->bout << " |#7* |#1Updating user ages...\r\n";
}
set_user_age();
if (displayStatus) {
GetSession()->bout << "|#7* |#1Done!\r\n";
}
//.........这里部分代码省略.........
示例2: logoff
void logoff() {
mailrec m;
if (incom) {
play_sdf(LOGOFF_NOEXT, false);
}
if (session()->usernum > 0) {
if ((incom || sysop1()) && session()->user()->GetSl() < 255) {
broadcast(StringPrintf("%s Just logged off!", session()->user()->GetName()));
}
}
setiia(90);
session()->remoteIO()->disconnect();
hangup = true;
if (session()->usernum < 1) {
return;
}
string text = " Logged Off At ";
text += times();
if (session()->GetEffectiveSl() != 255 || incom) {
sysoplog(false) << "";
sysoplog(false) << stripcolors(text);
}
session()->user()->SetLastBaudRate(modem_speed);
// put this back here where it belongs... (not sure why it te
session()->user()->SetLastOn(g_szLastLoginDate);
session()->user()->SetNumIllegalLogons(0);
if ((timer() - timeon) < -30) {
timeon -= SECONDS_PER_DAY;
}
auto dTimeOnNow = timer() - timeon;
session()->user()->SetTimeOn(session()->user()->GetTimeOn() + static_cast<float>(dTimeOnNow));
session()->user()->SetTimeOnToday(session()->user()->GetTimeOnToday() +
static_cast<float>(dTimeOnNow - extratimecall));
{
WStatus* pStatus = session()->status_manager()->BeginTransaction();
int nActiveToday = pStatus->GetMinutesActiveToday();
pStatus->SetMinutesActiveToday(nActiveToday + static_cast<uint16_t>(dTimeOnNow / MINUTES_PER_HOUR));
session()->status_manager()->CommitTransaction(pStatus);
}
if (g_flags & g_flag_scanned_files) {
session()->user()->SetNewScanDateNumber(session()->user()->GetLastOnDateNumber());
}
time_t lTime = time(nullptr);
session()->user()->SetLastOnDateNumber(lTime);
sysoplog(false) << "Read: " << session()->GetNumMessagesReadThisLogon()
<< " Time on: " << (timer() - timeon) / MINUTES_PER_HOUR;
{
unique_ptr<File> pFileEmail(OpenEmailFile(true));
if (pFileEmail->IsOpen()) {
session()->user()->SetNumMailWaiting(0);
int t = static_cast<int>(pFileEmail->GetLength() / sizeof(mailrec));
int r = 0;
int w = 0;
while (r < t) {
pFileEmail->Seek(static_cast<long>(sizeof(mailrec)) * static_cast<long>(r), File::seekBegin);
pFileEmail->Read(&m, sizeof(mailrec));
if (m.tosys != 0 || m.touser != 0) {
if (m.tosys == 0 && m.touser == session()->usernum) {
if (session()->user()->GetNumMailWaiting() != 255) {
session()->user()->SetNumMailWaiting(session()->user()->GetNumMailWaiting() + 1);
}
}
if (r != w) {
pFileEmail->Seek(static_cast<long>(sizeof(mailrec)) * static_cast<long>(w), File::seekBegin);
pFileEmail->Write(&m, sizeof(mailrec));
}
++w;
}
++r;
}
if (r != w) {
m.tosys = 0;
m.touser = 0;
for (int w1 = w; w1 < r; w1++) {
pFileEmail->Seek(static_cast<long>(sizeof(mailrec)) * static_cast<long>(w1), File::seekBegin);
pFileEmail->Write(&m, sizeof(mailrec));
}
}
pFileEmail->SetLength(static_cast<long>(sizeof(mailrec)) * static_cast<long>(w));
WStatus *pStatus = session()->status_manager()->BeginTransaction();
pStatus->IncrementFileChangedFlag(WStatus::fileChangeEmail);
session()->status_manager()->CommitTransaction(pStatus);
pFileEmail->Close();
}
}
if (smwcheck) {
File smwFile(session()->config()->datadir(), SMW_DAT);
if (smwFile.Open(File::modeReadWrite | File::modeBinary | File::modeCreateFile)) {
int t = static_cast<int>(smwFile.GetLength() / sizeof(shortmsgrec));
int r = 0;
int w = 0;
while (r < t) {
shortmsgrec sm;
smwFile.Seek(r * sizeof(shortmsgrec), File::seekBegin);
smwFile.Read(&sm, sizeof(shortmsgrec));
//.........这里部分代码省略.........