Can't think of a good name for this customized event class
First, I wrote a class which wraps a Windows API Event (using Wait to wrap WaitForSingleObject, Set() to wrap SetEvent(), etc). I called it CEvent and was satisfied.

Now I created a class which extends CEvent, adding the functionality to count how many times the event was set, and expose that value with a getCount() property. With this, clients can perform as many Wait()'s as Set()'s.

Two questions, actually:

1) This sounds like some special synchronization construct I recall studying in my Concurrent Programming class, but that was ages ago and I'm not sure. Anybody knows if this is so, and if it is, how is this construct called?

2) I named my class CCountedEvent. Is this a good name?
Can't think of a good name for this customized event class
===

First, I wrote a class which wraps a Windows API Event (using Wait to wrap WaitForSingleObject, Set() to wrap SetEvent(), etc). I called it CEvent and was satisfied.

Now I created a class which extends CEvent, adding the functionality to count how many times the event was set, and expose that value with a getCount() property. With this, clients can perform as many Wait()'s as Set()'s.

Two questions, actually:

1) This sounds like some special synchronization construct I recall studying in my Concurrent Programming class, but that was ages ago and I'm not sure. Anybody knows if this is so, and if it is, how is this construct called?

2) I named my class CCountedEvent. Is this a good name?