@staticmethod
def parse(wmsg):
    '\n      Verifies and parses an unserialized raw message into an actual WAMP message instance.\n\n      :param wmsg: The unserialized raw message.\n      :type wmsg: list\n\n      :returns: An instance of this class.\n      '
    assert ((len(wmsg) > 0) and (wmsg[0] == Register.MESSAGE_TYPE))
    if (len(wmsg) != 4):
        raise ProtocolError('invalid message length {0} for REGISTER'.format(len(wmsg)))
    request = check_or_raise_id(wmsg[1], "'request' in REGISTER")
    options = check_or_raise_extra(wmsg[2], "'options' in REGISTER")
    procedure = check_or_raise_uri(wmsg[3], "'procedure' in REGISTER")
    pkeys = None
    discloseCaller = None
    if (u'pkeys' in options):
        option_pkeys = options[u'pkeys']
        if (type(option_pkeys) != list):
            raise ProtocolError("invalid type {0} for 'pkeys' option in REGISTER".format(type(option_pkeys)))
        for pk in option_pkeys:
            if (type(pk) not in six.integer_types):
                raise ProtocolError("invalid type for value '{0}' in 'pkeys' option in REGISTER".format(type(pk)))
        pkeys = option_pkeys
    if (u'disclose_caller' in options):
        option_discloseCaller = options[u'disclose_caller']
        if (type(option_discloseCaller) != bool):
            raise ProtocolError("invalid type {0} for 'disclose_caller' option in REGISTER".format(type(option_discloseCaller)))
        discloseCaller = option_discloseCaller
    obj = Register(request, procedure, pkeys=pkeys, discloseCaller=discloseCaller)
    return obj
Verifies and parses an unserialized raw message into an actual WAMP message instance.

:param wmsg: The unserialized raw message.
:type wmsg: list

:returns: An instance of this class.
@staticmethod
def parse(wmsg):
    '\n      Verifies and parses an unserialized raw message into an actual WAMP message instance.\n\n      :param wmsg: The unserialized raw message.\n      :type wmsg: list\n\n      :returns: An instance of this class.\n      '
    assert ((len(wmsg) > 0) and (wmsg[0] == Register.MESSAGE_TYPE))
    if (len(wmsg) != 4):
        raise ProtocolError('invalid message length {0} for REGISTER'.format(len(wmsg)))
    request = check_or_raise_id(wmsg[1], "'request' in REGISTER")
    options = check_or_raise_extra(wmsg[2], "'options' in REGISTER")
    procedure = check_or_raise_uri(wmsg[3], "'procedure' in REGISTER")
    pkeys = None
    discloseCaller = None
    if (u'pkeys' in options):
        option_pkeys = options[u'pkeys']
        if (type(option_pkeys) != list):
            raise ProtocolError("invalid type {0} for 'pkeys' option in REGISTER".format(type(option_pkeys)))
        for pk in option_pkeys:
            if (type(pk) not in six.integer_types):
                raise ProtocolError("invalid type for value '{0}' in 'pkeys' option in REGISTER".format(type(pk)))
        pkeys = option_pkeys
    if (u'disclose_caller' in options):
        option_discloseCaller = options[u'disclose_caller']
        if (type(option_discloseCaller) != bool):
            raise ProtocolError("invalid type {0} for 'disclose_caller' option in REGISTER".format(type(option_discloseCaller)))
        discloseCaller = option_discloseCaller
    obj = Register(request, procedure, pkeys=pkeys, discloseCaller=discloseCaller)
    return obj