CTR NEX API Reference
nn::nex::SystemClock クラス

時間を決定したり、設定したり、リセットしたりします。 [詳解]

#include <OnlineCore/src/Platform/Core/SystemClock.h>

+ nn::nex::SystemClock の継承関係図

公開メンバ関数

 SystemClock ()
 アプリケーション側からこのコンストラクタを呼び出さないでください。 [詳解]
 
virtual ~SystemClock ()
 アプリケーション側からこのデストラクタを呼び出さないでください。 [詳解]
 

静的公開メンバ関数

static Time GetTime ()
 システム時間をミリ秒単位で取得します。 [詳解]
 
static void RegisterTimeProvider (TimeProvider *pTimeProvider, qBool needCorrection=false)
 このクラスに対してタイムプロバイダを設定します。 [詳解]
 
static void Reset ()
 リセット処理を行います。 [詳解]
 

詳解

時間を決定したり、設定したり、リセットしたりします。

SystemClockクラスによって提供される時間は、セッションにいるすべてのステーションによって同期されたりはしません。 セッション中で同期される時刻管理については、SessionClock クラスを利用してください。

SystemClockが提供する時間はプロセス起動時からのミリ秒単位における時間経過を表します。 時間経過は64bitで計算されていますので、実運用上でオーバーフローすることはほぼありません。

時刻値の精度はプラットフォームのタイムプロバイダの性能によって決定されます。 デフォルトでタイムプロバイダが設定されていますが、アプリケーションごとに 別のタイムプロバイダを作成して設定しなおすことも出来ます(RegisterTimeProvider 関数を参照)。

デフォルトのタイムプロバイダ使用時の時間取得の処理負荷は小さくありませんので、頻繁に呼ぶ際はパフォーマンスに注意が必要です。

構築子と解体子

nn::nex::SystemClock::SystemClock ( )

アプリケーション側からこのコンストラクタを呼び出さないでください。

インスタンスは、セッションに参加するかセッションを作成したときに、 0ミリ秒で初期化されながら自動的に作成されます。

virtual nn::nex::SystemClock::~SystemClock ( )
virtual

アプリケーション側からこのデストラクタを呼び出さないでください。

インスタンスはセッションを抜けるか、セッションが終了したときに システムによって自動的に解放されます。

関数詳解

static void nn::nex::SystemClock::RegisterTimeProvider ( TimeProvider pTimeProvider,
qBool  needCorrection = false 
)
static

このクラスに対してタイムプロバイダを設定します。

タイムプロバイダ(TimeProvider クラス)とは、時間値を提供するクラスオブジェクトです。 SystemClockクラスの時間精度は、タイムプロバイダの性能に左右されます。 この関数によって、カスタマイズされた(たとえば高精度モードの)タイムプロバイダを設定することが出来ます。

このクラスは、NetZオブジェクトが生成される前に設定しておく必要があります。 この関数が呼び出されない場合、デフォルトでシステムが用意しているタイムプロバイダが利用されます。

引数
pTimeProvider[in] タイムプロバイダオブジェクトのポインタを指定します。 NULLの場合は、デフォルトのタイムプロバイダが使われます。
needCorrection[in] タイムプロバイダが返す値が、稼働中に一周回ってしまい0になることがあるため補正が必要かを設定します。 たとえば、TimeProviderとして、msecオーダーで32ビットの値を返す時刻をもとにしている場合に設定が必要です。
static Time nn::nex::SystemClock::GetTime ( )
static

システム時間をミリ秒単位で取得します。

取得する時間の精度や処理負荷は、タイムプロバイダの性能に左右されます。

デフォルトのタイムプロバイダ使用時の処理負荷は小さくありませんので、頻繁に呼ぶ際はパフォーマンスに注意が必要です。

戻り値
システム時間がミリ秒単位で返ります。
static void nn::nex::SystemClock::Reset ( )
static

リセット処理を行います。

SystemClockクラスの状態を未定義状態に設定します。 この関数はいつでも呼び出すことが出来ます。 新しいタイムプロバイダを設定する前に呼び出すと便利です。

参照
RegisterTimeProvider