📄 simpleclock.cpp__.htm
字号:
<html><head><title>Exercise_GUIClock.rar SimpleClock.cpp</title>
<LINK href="/inc/read_style.css" type=text/css rel=stylesheet></head>
<body>
<p><a href=http://www.pudn.com>www.pudn.com</a> > <a href="http://www.pudn.com/downloads91/sourcecode/comm/symbian/detail348522.html">Exercise_GUIClock.rar</a> > SimpleClock.cpp</p><!-- saved from http://www.pudn.com -->
<script src="/inc/gg_read1.js"></script><BR>
<pre name="code" class="cpp">
// SimpleClock.cpp
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
// Asynchronous keyboard processing with messenger program.
// A single CWriteKeyProcessor active object (derived from
// class CActiveConsole) which accepts and prints keyboard
// input to a console.
#include "SimpleClock.h"
#include "e32base.h"
//////////////////////////////////////////////////////////////////////////////
//
// -----> CSimpleClock (implementation)
//
//////////////////////////////////////////////////////////////////////////////
CSimpleClock::CSimpleClock()
: CTimer(CActive::EPriorityStandard)
// Construct standard-priority active object
{
iStop = FALSE;
};
CSimpleClock* CSimpleClock::NewL()
{
TTime tm;
tm.UniversalTime();
return CSimpleClock::NewL(tm);
}
CSimpleClock* CSimpleClock::NewLC(const TTime & aTime)
{
CSimpleClock* self=new (ELeave) CSimpleClock();
CleanupStack::PushL(self);
self->ConstructL(aTime);
return self;
}
CSimpleClock* CSimpleClock::NewL(const TTime & aTime)
{
CSimpleClock* self = NewLC(aTime);
CleanupStack::Pop();
return self;
}
void CSimpleClock::ConstructL(const TTime & aTime)
{
iTime = aTime;
iObservers = new (ELeave) CArrayFixFlat<MClockObserver*>(5);
// Base class second-phase construction.
CTimer::ConstructL();
CActiveScheduler::Add(this);
}
CSimpleClock::~CSimpleClock()
{
// Make sure we're cancelled
Cancel();
delete iObservers;
}
void CSimpleClock::DoCancel()
{
// Base class
CTimer::DoCancel();
}
void CSimpleClock::IssueRequest()
{
if(IsActive())
return;
CTimer::After(900000);
}
void CSimpleClock::RunL()
{
if (iStop == FALSE)
{
iTime += TTimeIntervalSeconds(1);
TDateTime dt = iTime.DateTime();
for(TInt i=0; i<iObservers->Count(); i++)
{
iObservers->At(i)->UpdateClock(iTime);
}
IssueRequest();
}
}
void CSimpleClock::Start()
{
iTime.UniversalTime();
iTime += TTimeIntervalHours(8);
IssueRequest();
}
void CSimpleClock::AddObserver(MClockObserver * aObserver)
{
for(TInt i=0; i<iObservers->Count(); i++)
{
if( iObservers->At(i) == aObserver)
return;
}
iObservers->AppendL(aObserver);
}
void CSimpleClock::RemoveObserver(MClockObserver *aObserver)
{
TBool found = FALSE;
for(TInt i=0; i<iObservers->Count(); i++)
{
if( iObservers->At(i) == aObserver)
{
found = TRUE;
break;
}
}
if(found)
iObservers->Delete(i);
}</pre>
<script src="/inc/gg_read2.js"></script><BR>
<script src="http://s117.cnzz.com/stat.php?id=1236358&web_id=1236358&show=pic" language="JavaScript" charset="gb2312"></script>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -