Program Listing for File event.h

Return to documentation for file (src/misc/pv/event.h)

/* event.h */
/*
 * Copyright information and license terms for this software can be
 * found in the file LICENSE that is included with the distribution
 */
#ifndef EVENT_H
#define EVENT_H

#include <memory>
#include <vector>

#include <epicsEvent.h>
#include <shareLib.h>

#include <pv/pvType.h>
#include <pv/sharedPtr.h>


namespace epics { namespace pvData {

class Event;
typedef std::tr1::shared_ptr<Event> EventPtr;

class epicsShareClass Event {
public:
    POINTER_DEFINITIONS(Event);
    explicit Event(bool = false);
    ~Event();
    void signal();
    bool wait (); /* blocks until full */
    bool wait ( double timeOut ); /* false if empty at time out */
    bool tryWait (); /* false if empty */
private:
    epicsEventId id;
};

}}
#endif  /* EVENT_H */