MODULE = Protocol::WebSocket::Fast                PACKAGE = Protocol::WebSocket::Fast::ConnectRequest
PROTOTYPES: DISABLE

BOOT {
    Stash(__PACKAGE__).inherit("Protocol::HTTP::Request");
}

ConnectRequestSP ConnectRequest::new (Hash params = Hash()) {
    RETVAL = new ConnectRequest();
    make_request(params, RETVAL);
}

string ConnectRequest::ws_key (SV* newval = NULL) {
    if (newval) {
        THIS->ws_key(xs::in<string>(newval));
        XSRETURN_UNDEF;
    }
    RETVAL = THIS->ws_key();
}

int ConnectRequest::ws_version (SV* newval = NULL) {
    if (newval) {
        THIS->ws_version(SvIV(newval));
        XSRETURN_UNDEF;
    }
    RETVAL = THIS->ws_version();
}

Array ConnectRequest::ws_extensions (Array exts_av = Array()) {
    if (exts_av) {
        HeaderValues exts;
        av_to_header_values(exts_av, &exts);
        THIS->ws_extensions(exts);
        XSRETURN_UNDEF;
    }
    
    RETVAL = header_values_to_av(THIS->ws_extensions());
}

string ConnectRequest::ws_protocol (SV* newval = NULL) {
    if (newval) {
        THIS->ws_protocol(xs::in<string>(newval));
        XSRETURN_UNDEF;
    }
    RETVAL = THIS->ws_protocol();
}

bool ConnectRequest::ws_version_supported ()

ErrorCode ConnectRequest::error ()