当前位置: 首页>>代码示例>>C++>>正文


C++ WStatus::GetMinutesActiveToday方法代码示例

本文整理汇总了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";
  }

//.........这里部分代码省略.........
开发者ID:bhaggerty,项目名称:wwiv,代码行数:101,代码来源:sysopf.cpp

示例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));
//.........这里部分代码省略.........
开发者ID:TRI0N,项目名称:wwiv,代码行数:101,代码来源:lilo.cpp


注:本文中的WStatus::GetMinutesActiveToday方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。