class axl::sys::win::Sid

#include <axl_sys_win_Sid.h>

class Sid: public axl::rc::Buf
{
public:
    // construction

    Sid();
    Sid(const SID* sid);

    Sid(
        SID_IDENTIFIER_AUTHORITY* identifierAuthority,
        size_t subAuthorityCount,
        ...
        );

    // methods

    Sid&
    operator=(const Sid& src);

    Sid&
    operator=(const SID* sid);

    bool
    create(
        SID_IDENTIFIER_AUTHORITY* identifierAuthority,
        size_t subAuthorityCount,
        ...
        );

    bool
    create_va(
        SID_IDENTIFIER_AUTHORITY* identifierAuthority,
        size_t subAuthorityCount,
        axl_va_list va
        );

    bool
    parse(const sl::StringRef& string);

    bool
    parse(const sl::StringRef_w& string);

    bool
    getString(sl::String* string) const;

    sl::String
    getString() const;

    bool
    lookupAccountName(
        const sl::StringRef& systemName,
        const sl::StringRef& accountName,
        SID_NAME_USE* sidType = NULL
        );

    bool
    lookupAccountName(
        const sl::StringRef_w& systemName,
        const sl::StringRef_w& accountName,
        SID_NAME_USE* sidType = NULL
        );

    bool
    lookupAccountName(
        const sl::StringRef& accountName,
        SID_NAME_USE* sidType = NULL
        );

    bool
    lookupAccountName(
        const sl::StringRef_w& accountName,
        SID_NAME_USE* sidType = NULL
        );

    bool
    lookupAccountSid(
        const sl::StringRef& systemName,
        sl::String* accountName,
        SID_NAME_USE* sidType = NULL
        );

    bool
    lookupAccountSid(
        sl::String* accountName,
        SID_NAME_USE* sidType = NULL
        );

    sl::String
    lookupAccountSid(
        const sl::StringRef& systemName,
        SID_NAME_USE* sidType = NULL
        );

    sl::String
    lookupAccountSid(SID_NAME_USE* sidType = NULL);

    static
    bool
    lookupAccountSid(
        const sl::StringRef& systemName,
        const SID* sid,
        sl::String* accountName,
        SID_NAME_USE* sidType = NULL
        );

    static
    bool
    lookupAccountSid(
        const SID* sid,
        sl::String* accountName,
        SID_NAME_USE* sidType = NULL
        );

    static
    sl::String
    lookupAccountSid(
        const sl::StringRef& systemName,
        const SID* sid,
        SID_NAME_USE* sidType = NULL
        );

    static
    sl::String
    lookupAccountSid(
        const SID* sid,
        SID_NAME_USE* sidType = NULL
        );
};

Inherited Members

public:
    // classes

    class Hdr;

    // methods

    operator const T *() const;
    operator T *();

    const T*
    operator->() const;

    T*
    operator->();

    Buf&
    operator=(const Buf& src);

    Buf&
    operator=(const Ref& src);

    Buf&
    operator=(const T* p);

    T*
    p();

    void
    clear();

    size_t
    copy(const Ref& src);

    size_t
    copy(
        const T* p,
        size_t size = -1
        );

    bool
    isExclusive();

    bool
    ensureExclusive();

    T*
    getBuffer(size_t* size = NULL);

    T*
    createBuffer(
        size_t size = sizeof(T),
        bool saveContents = false
        );

    size_t
    setBuffer(
        BufKind kind,
        void* p,
        size_t size
        );