2005 年 12 月 25 日 18 時 35 分

外堀実装の続き


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


前回もそうだけど、デストラクタなどメンバは一部省略。

// イベント
class Event : public WaitableHandle {
public:
    Event(bool manualReset, bool initiallyActive) throw(WindowsException);
    virtual void Activate(void) throw(WindowsException);
    virtual void Inactivate(void) throw(WindowsException);
    virtual void Pulse(void) throw(WindowsException);
};


// 排他制御インタフェース
class IExclusiveProvider {
public:
    virtual void Lock(void) = 0;
    virtual bool AttemptToLock(void) = 0;
    virtual void Unlock(void) = 0;
};

// ロック保持用
class ExclusiveLock {
public:
    ExclusiveLock(IExclusiveProvider &provider);
};

// クリティカルセクション
class CriticalSection : public IExclusiveProvider;

// ミューテックス
class Mutex : public WaitableHandle, public IExclusiveProvider;

// セマフォ
class Semaphore : public WaitableHandle, public IExclusiveProvider;



Copyright (c) 1994-2007 Project Loafer. All rights reserved.