KDint xmBadaStat ( const KDchar* path, struct stat* buf ) { struct tm t; FileAttributes attr; DateTime dt; result r; r = File::GetAttributes ( path, attr ); if ( IsFailed ( r ) ) { goto failed; } dt = attr.GetLastModifiedTime ( ); t.tm_year = dt.GetYear ( ); t.tm_mon = dt.GetMonth ( ) - 1; t.tm_mday = dt.GetDay ( ); t.tm_hour = dt.GetHour ( ); t.tm_min = dt.GetMinute ( ); t.tm_sec = dt.GetSecond ( ); buf->st_mtime = mktime ( &t ); buf->st_mode = attr.IsDirectory ( ) ? 0x4000 : 0x8000; buf->st_size = attr.GetFileSize ( ); return 0; failed : xmBadaSetError ( r ); return -1; }
VOID CLogFile::CacheLog(enum_LOG_LEVEL logLevel, const CHAR* pLogString , ... ) { //等级太低,不需打印控制台和文件 if (logLevel < m_eConsoleLogLevel && logLevel < m_eFileLogLevel) { return ; } CHAR szLine[MAX_LOG_LINE] = {0}; va_list va; va_start(va,pLogString); #ifdef __LINUX vsprintf(szLine,pLogString,va); #else vsprintf_s(szLine,MAX_LOG_LINE,pLogString,va); #endif va_end(va); DateTime now; CHAR szLogStr[MAX_LOG_LINE] = {'\0'}; _snprintf(szLogStr, MAX_LOG_LINE-1, "%2d/%02d/%02d %02d:%02d:%02d.%03d tId:%ld %s\n", now.GetYear(), now.GetMonth(), now.GetDay(), now.GetHour(), now.GetMinute(), now.GetSecond(), now.GetMilliSecond(), GetThreadID(), szLine); //高等与控制台等级,则打印到控制台 if (logLevel >= m_eConsoleLogLevel) { printf("%s", szLogStr); } //高等与文件等级,则打印到文件 if (logLevel >= m_eFileLogLevel) { CSmartLock sLock(m_lock); int strLength = strlen(szLogStr); if (m_pWriteBuf + strLength - m_pFrontBuf >= LOG_BUF_LEN) { //front 缓冲满了 if (m_bBackBufAvailable) { //两块全满了,这条要丢。 printf("LOG LOST!!, %s", szLogStr); return; } //back空着,将front交换到back SwitchBuf(); } //写入front strcpy( m_pWriteBuf, szLogStr ); m_pWriteBuf += strLength; } }
VOID CLogFile::MakeLogfilenameWithPostfix() { DateTime now; _snprintf(m_szLogFileName,MAX_FILE_NAME, "%s/%s_%.4d%.2d%.2d_%.2d%.2d%.2d_%.2d.log", m_szFilePath, m_szFileName, now.GetYear(), now.GetMonth(), now.GetDay(), now.GetHour(), now.GetMinute(), now.GetSecond(), now.GetMilliSecond()); }
void BadaSystem::getTimeAndDate(TimeDate &td) const { DateTime currentTime; if (E_SUCCESS == Osp::System::SystemTime::GetCurrentTime(currentTime)) { td.tm_sec = currentTime.GetSecond(); td.tm_min = currentTime.GetMinute(); td.tm_hour = currentTime.GetHour(); td.tm_mday = currentTime.GetDay(); td.tm_mon = currentTime.GetMonth(); td.tm_year = currentTime.GetYear(); } }
TEST(DateTimeTest, TestDefault) { DateTime defaultDate; ASSERT_TRUE(defaultDate.WasParseSuccessful()); ASSERT_EQ(DayOfWeek::Thursday, defaultDate.GetDayOfWeek()); ASSERT_EQ(01, defaultDate.GetDay()); ASSERT_EQ(Month::January, defaultDate.GetMonth()); ASSERT_EQ(1970, defaultDate.GetYear()); ASSERT_EQ(0, defaultDate.GetHour()); ASSERT_EQ(0, defaultDate.GetMinute()); ASSERT_EQ(0, defaultDate.GetSecond()); ASSERT_EQ("Thu, 01 Jan 1970 00:00:00 GMT", defaultDate.ToGmtString(DateFormat::RFC822)); }
bool ModelValidator::isValid(const DateTime& dateTime, bool allowDefaults/* = false*/) { if (dateTime == DateTime() && !allowDefaults) RETURN_WITH_ERROR("DateTime is empty"); // Check Date RETURN_IF_NOT_VALID1(dateTime.GetDate(), allowDefaults, ""); // Check Time RETURN_IF_RANGE_NOT_VALID(dateTime.GetHour(), 0, 23, "Hour"); RETURN_IF_RANGE_NOT_VALID(dateTime.GetMinute(), 0, 59, "Minute"); RETURN_IF_RANGE_NOT_VALID(dateTime.GetSecond(), 0.0, 59.999999, "Seconds"); return true; }
void TizenSystem::getTimeAndDate(TimeDate &td) const { DateTime currentTime; if (E_SUCCESS == SystemTime::GetCurrentTime(WALL_TIME, currentTime)) { td.tm_sec = currentTime.GetSecond(); td.tm_min = currentTime.GetMinute(); td.tm_hour = currentTime.GetHour(); td.tm_mday = currentTime.GetDay(); td.tm_mon = currentTime.GetMonth(); td.tm_year = currentTime.GetYear(); Calendar *calendar = Calendar::CreateInstanceN(CALENDAR_GREGORIAN); calendar->SetTime(currentTime); td.tm_wday = calendar->GetTimeField(TIME_FIELD_DAY_OF_WEEK) - 1; delete calendar; } }
/** * @brief Executes the death process. * * @param pKiller The killer. */ void CNpc::OnDeathProcess(Unit *pKiller) { CUser * pUser = TO_USER(pKiller); if (TO_NPC(this) != nullptr && pUser != nullptr) { if (pUser->isPlayer()) { if (!m_bMonster) { switch (m_tNpcType) { case NPC_BIFROST_MONUMENT: pUser->BifrostProcess(pUser); break; case NPC_PVP_MONUMENT: PVPMonumentProcess(pUser); break; case NPC_BATTLE_MONUMENT: BattleMonumentProcess(pUser); break; case NPC_HUMAN_MONUMENT: NationMonumentProcess(pUser); break; case NPC_KARUS_MONUMENT: NationMonumentProcess(pUser); break; } } else if (m_bMonster) { if (m_sSid == 700 || m_sSid == 750) { if (pUser->CheckExistEvent(STARTER_SEED_QUEST, 1)) pUser->SaveEvent(STARTER_SEED_QUEST, 2); } else if (g_pMain->m_MonsterRespawnListArray.GetData(m_sSid) != nullptr) { if (pUser->isInPKZone() || GetZoneID() == ZONE_JURAD_MOUNTAIN) g_pMain->SpawnEventNpc(g_pMain->m_MonsterRespawnListArray.GetData(m_sSid)->sSid, true, GetZoneID(), GetX(), GetY(), GetZ(), g_pMain->m_MonsterRespawnListArray.GetData(m_sSid)->sCount); } else if (m_tNpcType == NPC_CHAOS_STONE && pUser->isInPKZone()) { ChaosStoneProcess(pUser,5); } } DateTime time; g_pMain->WriteDeathUserLogFile(string_format("[ %s - %d:%d:%d ] Killer=%s,SID=%d,Target=%s,Zone=%d,X=%d,Z=%d\n",m_bMonster ? "MONSTER" : "NPC",time.GetHour(),time.GetMinute(),time.GetSecond(),pKiller->GetName().c_str(),m_sSid,GetName().c_str(),GetZoneID(),uint16(GetX()),uint16(GetZ()))); } } }
void UtilitiesTester::TestReceivedHeaderParse_() { String sHeader = "from host.edu (host.edu [1.2.3.4]) by mail.host.edu (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)"; String sRecipient = Utilities::GetRecipientFromReceivedHeader(sHeader); if (sRecipient != _T("")) throw; String hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("host.edu")) throw; sHeader = "from host.edu (host.edu [1.2.3.4]) by mailhost.host.edu (8.8.5/8.7.2) with ESMTP id LAA20869 for <*****@*****.**>; Tue, 18 Mar 1997 14:39:24 -0800 (PST)"; sRecipient = Utilities::GetRecipientFromReceivedHeader(sHeader); if (sRecipient != _T("*****@*****.**")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("host.edu")) throw; sHeader = "Received: from unknown (HELO mail-***.icp-***-irony4.*****.***.au) ([123.123.123.123])\r\n " "(envelope-sender <*****@*****.**>)\r\n" "by mail.*****.***.au (qmail-ldap-1.03) with SMTP\r\n" "for <*****@*****.**>; 20 Oct 2006 04:42:47 -0000\r\n"; sRecipient = Utilities::GetRecipientFromReceivedHeader(sHeader); if (sRecipient != _T("*****@*****.**")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("unknown")) throw; sHeader = "Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) " "by j218.ryd.student.liu.se (Postfix) with ESMTP id D84F433035 " "for <*****@*****.**>; Thu, 14 Mar 2002 21:39:17 +0100 (CET) "; sRecipient = Utilities::GetRecipientFromReceivedHeader(sHeader); if (sRecipient != _T("*****@*****.**")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("mail.lysator.liu.se")) throw; sHeader = "Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) " "by j218.ryd.student.liu.se (Postfix) with ESMTP id D84F433035 " "for <*****@*****.**>; Thu, 14 Mar 2002 21:39:17 +0100 (CET) "; DateTime dtTime = Utilities::GetDateTimeFromReceivedHeader(sHeader); if (dtTime.GetYear() != 2002 || dtTime.GetMonth() != 3 || dtTime.GetDay() != 14 || dtTime.GetHour() != 20 || dtTime.GetMinute() != 39 || dtTime.GetSecond() != 17) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("mail.lysator.liu.se")) throw; // Test IP Address parsing sHeader = "Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) " "by j218.ryd.student.liu.se (Postfix) with ESMTP id D84F433035 " "for <*****@*****.**>; Thu, 14 Mar 2002 21:39:17 +0100 (CET) "; String sIPAddress = Utilities::GetIPAddressFromReceivedHeader(sHeader).ToString(); if (sIPAddress != _T("130.236.254.3")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("mail.lysator.liu.se")) throw; sHeader = "from host.edu (host.edu [1.2.3.4]) by mail.host.edu (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)"; sIPAddress = Utilities::GetIPAddressFromReceivedHeader(sHeader).ToString(); if (sIPAddress != _T("1.2.3.4")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("host.edu")) throw; sHeader = "Received: from unknown (HELO mail-***.icp-***-irony4.*****.***.au) ([123.123.123.125])\r\n " "(envelope-sender <*****@*****.**>)\r\n" "by mail.*****.***.au (qmail-ldap-1.03) with SMTP\r\n" "for <*****@*****.**>; 20 Oct 2006 04:42:47 -0000\r\n"; sIPAddress = Utilities::GetIPAddressFromReceivedHeader(sHeader).ToString(); if (sIPAddress != _T("123.123.123.125")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("unknown")) throw; sHeader = "Received: from outbound1.den.paypal.com ([216.113.188.96])\r\n" " by mail.hmailserver.com\r\n" " ; Sun, 13 Dec 2009 09:22:54 +0100\r\n"; sIPAddress = Utilities::GetIPAddressFromReceivedHeader(sHeader).ToString(); if (sIPAddress != _T("216.113.188.96")) throw; hostName = Utilities::GetHostNameFromReceivedHeader(sHeader); if (hostName != _T("outbound1.den.paypal.com")) throw; }
void CMagicProcess::MagicPacket(Packet & pkt, Unit * pCaster /*= nullptr*/) { if (g_pMain->m_IsMagicTableInUpdateProcess) return; MagicInstance instance; pkt >> instance.bOpcode >> instance.nSkillID; instance.pSkill = g_pMain->m_MagictableArray.GetData(instance.nSkillID); if (instance.pSkill == nullptr) { if (pCaster != nullptr) TRACE("[%s] Used skill %d but it does not exist.\n", pCaster->GetName().c_str(), instance.nSkillID); if (pCaster->isPlayer() && instance.nSkillID < 0) { DateTime time; g_pMain->SendFormattedNotice("%s is currently disconnect for skill hack.",Nation::ALL, pCaster->GetName().c_str()); g_pMain->WriteCheatLogFile(string_format("[ SkillHack - %d:%d:%d ] %s Disconnected for SkillHack.\n", time.GetHour(),time.GetMinute(),time.GetSecond(), pCaster->GetName().c_str())); TO_USER(pCaster)->Disconnect(); } return; } pkt >> instance.sCasterID >> instance.sTargetID >> instance.sData[0] >> instance.sData[1] >> instance.sData[2] >> instance.sData[3] >> instance.sData[4] >> instance.sData[5] >> instance.sData[6]; // Prevent users from faking other players or NPCs. if (pCaster != nullptr // if it's nullptr, it's from AI. && (instance.sCasterID >= NPC_BAND || instance.sCasterID != pCaster->GetID())) return; instance.bIsRecastingSavedMagic = false; instance.Run(); }
VOID CLogFile::DiskLog(enum_LOG_LEVEL logLevel, const CHAR* pLogString , ...) { //等级太低,不需打印控制台和文件 if (logLevel < m_eConsoleLogLevel && logLevel < m_eFileLogLevel) { return ; } CHAR szLine[MAX_LOG_LINE] = {0}; va_list va; va_start(va,pLogString); #ifdef __LINUX vsprintf(szLine,pLogString,va); #else vsprintf_s(szLine,MAX_LOG_LINE,pLogString,va); #endif va_end(va); DateTime now; CHAR szLogStr[MAX_LOG_LINE] = {'\0'}; _snprintf(szLogStr, MAX_LOG_LINE, "%2d/%02d/%02d %02d:%02d:%02d.%03d tId:%ld %s\n", now.GetYear(), now.GetMonth(), now.GetDay(), now.GetHour(), now.GetMinute(), now.GetSecond(), now.GetMilliSecond(), GetThreadID(), szLine); //高等与控制台等级,则打印到控制台 if (logLevel >= m_eConsoleLogLevel) { printf("%s", szLogStr); } //高等与文件等级,则打印到文件 if (logLevel >= m_eFileLogLevel) { CSmartLock sLock(m_lock); INT nLogStrLen = strlen(szLogStr); if ((m_bBackBufAvailable) && (m_pWriteBuf + nLogStrLen - m_pFrontBuf >= LOG_BUF_LEN)) { //如果back有东西, front还写不下,就要写2次文件了,不过这种情况应该很少 WriteBackBufToFile(); } if (m_pWriteBuf + nLogStrLen - m_pFrontBuf >= LOG_BUF_LEN) { //front写不下,那么back肯定空着 SwitchBuf(); } //写入front strcpy( m_pWriteBuf, szLogStr ); m_pWriteBuf += nLogStrLen; //全写入文件中 WriteAllBufToFile(); } }
void Chatting::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) { SceneManager* pSceneManager = SceneManager::GetInstance(); AppAssert(pSceneManager); AppResource* pAppResource = Application::GetInstance()->GetAppResource(); switch (actionId) { case IDC_BUTTON_SEND: AppLog("Send Button is clicked! \n"); RequestHttpPost(); OnButtonSend(); break; case ID_BUTTON_EDITFIELD_DONE: //__pPanel-> __pEditField->Draw(); __pEditField->Show(); break; case ID_BUTTON_EDITFIELD_CANCEL: __pEditField->SetText(*__pEditFieldText); //__pPanel->CloseOverlayWindow(); __pEditField->Draw(); __pEditField->Show(); break; case IDC_BUTTON_PLUS: if (ischeck_plus == false) { __pChattControl->SetPosition(0, -444); //__pChattControl->SetPosition(0, -813); __pChattControl->Draw(); __pPanel->SetPosition(where.x, where.y - 444); __pButtonPlus->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"chatting_x.png")); __pButtonPlus->Draw(); __pPanel->Draw(); ischeck_plus = true; } else { if(ischeck_key == false) { __pChattControl->SetPosition(where2.x, where2.y); __pChattControl->Draw(); __pPanel->SetPosition(where.x, where.y); __pButtonPlus->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"chatting_plus.png")); __pButtonPlus->Draw(); __pPanel->Draw(); ischeck_plus = false; } else { __pEditField->SetKeypadEnabled(false); __pChattControl->SetPosition(where2.x, where2.y); __pChattControl->Draw(); __pPanel->SetPosition(where.x, where.y); __pButtonPlus->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"chatting_plus.png")); __pButtonPlus->Draw(); __pPanel->Draw(); ischeck_key = false; ischeck_plus = false; __pEditField->SetKeypadEnabled(true); } } break; case IDC_BUTTON_FEEDBACKB: case IDC_BUTTON_RECORDGO: popup->SetShowState(true); popup->Show(); break; case IDC_BUTTON_FEEDBACKX: popup->SetShowState(false); Record_Status=0; break; case IDC_BUTTON_RECORDER: if (Record_Status == 0) { AppLog("녹음중"); __Record->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"Record_Start.png")); __Record->SetHighlightedBackgroundBitmap( *pAppResource->GetBitmapN(L"Record_Start.png")); __Record->SetPressedBackgroundBitmap( *pAppResource->GetBitmapN(L"Record_Start.png")); __Record->Draw(); popup->RequestRedraw(true); Record_Status = 1; DateTime currentTime; SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime); __filename.Format(32, L"%04d%02d%02d_%02d%02d%02d.mp3", currentTime.GetYear(), currentTime.GetMonth(), currentTime.GetDay(), currentTime.GetHour(), currentTime.GetMinute(), currentTime.GetSecond()); __filepath = App::GetInstance()->GetAppDataPath() + __filename; __audioRecorder.CreateAudioFile(__filepath, true); __audioRecorder.SetMaxRecordingTime(60000); //60 sec __audioRecorder.SetQuality(RECORDING_QUALITY_HIGH); __audioRecorder.SetFormat(CODEC_MP3, MEDIA_CONTAINER_MP3); __audioRecorder.Record(); __audioDestPath = Tizen::System::Environment::GetMediaPath() + __filepath; } else if (Record_Status == 1) { AppLog("녹음완료"); __Record->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"Record_Complete.png")); __Record->SetHighlightedBackgroundBitmap( *pAppResource->GetBitmapN(L"Record_Complete.png")); __Record->SetPressedBackgroundBitmap( *pAppResource->GetBitmapN(L"Record_Complete.png")); __Record->Draw(); Record_Status = 2; __audioRecorder.Stop(); __audioRecorder.Close(); trans_voice->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"voice_trans2.png")); trans_voice->SetHighlightedBackgroundBitmap( *pAppResource->GetBitmapN(L"voice_trans2.png")); trans_voice->SetPressedBackgroundBitmap( *pAppResource->GetBitmapN(L"voice_trans2.png")); trans_voice->Draw(); istransport = true; } else if (Record_Status == 2) { AppLog("재생"); __filepath = App::GetInstance()->GetAppDataPath() + __filename; __player.OpenFile(__filepath); __player.SetVolume(100); __player.Play(); } break; case IDC_BUTTON_TRANSPORT: if(istransport == true) { trans_voice->SetNormalBackgroundBitmap( *pAppResource->GetBitmapN(L"voice_trans1.png")); trans_voice->SetHighlightedBackgroundBitmap( *pAppResource->GetBitmapN(L"voice_trans1.png")); trans_voice->SetPressedBackgroundBitmap( *pAppResource->GetBitmapN(L"voice_trans1.png")); trans_voice->Draw(); istransport = false; Toast* to = new Toast(); to->Construct(Rectangle(30,1100 ,660,70), L"음성피드백을 전송하였습니다", 2000); } break; default: break; } }