class io.SslSocket

class SslSocket: io.SslState {
    // fields

    io.SslSocketEvents readonly volatile m_activeEvents;
    std.Error const* readonly volatile m_ioError;
    bool readonly m_isOpen;

    // properties

    io.SocketAddress const property m_address;
    io.SocketAddress const property m_peerAddress;
    size_t autoget property m_readBlockSize;
    size_t autoget property m_readBufferSize;
    size_t autoget property m_writeBufferSize;
    io.SocketOptions autoget property m_options;
    string_t property m_hostname;

    // construction

    construct();
    destruct();

    // methods

    bool errorcode open(io.AddressFamily family);
    bool errorcode open(io.SocketAddress const* address);
    void close();
    bool errorcode connect(io.SocketAddress const* address);
    bool errorcode listen(size_t backlog = 0);

    io.SslSocket* errorcode accept(
        io.SocketAddress* address = null,
        bool isSuspended = false
    );

    void unsuspend();

    size_t errorcode read(
        void* p,
        size_t size
    );

    size_t errorcode write(
        void const* p,
        size_t size
    );

    long errorcode wait(
        io.SslSocketEvents eventMask,
        void function* handler(io.SslSocketEvents triggeredEvents)
    );

    bool errorcode cancelWait(long handle);

    io.SslSocketEvents blockingWait(
        io.SslSocketEvents eventMask,
        uint_t timeout = -1
    );

    io.SslSocketEvents async asyncWait(io.SslSocketEvents eventMask);

    // aliases

    alias dispose = close;
};

Inherited Members

public:
    // properties

    size_t const property m_availableCipherCount;
    io.SslCipher* const indexed property m_availableCipherSet(size_t i);
    io.SslCipher* const property m_currentCipher;
    size_t const property m_peerCertificateChainLength;
    io.SslCertificate const* const indexed property m_peerCertificateChain(size_t i);
    io.SslCertificate const* const property m_peerCertificate;
    io.SslVerifyMode property m_verifyMode;
    size_t property m_verifyDepth;
    string_t const property m_stateString;
    string_t const property m_stateStringLong;

    // events

    event m_onStateChanged(
        io.SslStateFlags flags,
        int alertInfo
    );

    // methods

    bool errorcode enableCiphers(string_t ciphers);
    bool errorcode setEphemeralDhParams(string_t pem);
    bool errorcode loadEphemeralDhParams(string_t fileName);
    bool errorcode setEphemeralDhStdParams(io.SslStdDh dh = SslStdDh.Dh1024x160);
    bool errorcode setEphemeralEcdhCurve(string_t curveName = "secp112r1");
    bool errorcode loadCertificate(string_t fileName);
    bool errorcode loadPrivateKey(string_t fileName);

    bool errorcode loadVerifyLocations(
        string_t caFileName,
        string_t caDir = null
    );

    bool errorcode shutdown();