class axl::sys::ReadWriteLock

#include <axl_sys_ReadWriteLock.h>

class ReadWriteLock
{
public:
    // structs

    struct Data;

    // construction

    ReadWriteLock();
    ~ReadWriteLock();

    // methods

    void
    close();

    bool
    create();

    bool
    create(
        const sl::StringRef& mappingName,
        const sl::StringRef& readEventName,
        const sl::StringRef& writeEventName
        );

    bool
    open(
        const sl::StringRef& mappingName,
        const sl::StringRef& readEventName,
        const sl::StringRef& writeEventName
        );

    bool
    readLock(uint_t timeout = -1);

    void
    readUnlock();

    bool
    writeLock(uint_t timeout = -1);

    void
    writeUnlock();
};