'Parse the header, returning a CacheControl object.
The object is bound to the request or response object
``updates_to``, if that is given.'

@classmethod
def parse(cls, header, updates_to=None, type=None):

    if updates_to:
        props = cls.update_dict()
        props.updated = updates_to
    else:
        props = {}
    for match in token_re.finditer(header):
        name = match.group(1)
        value = (match.group(2) or match.group(3) or None)
        if value:
            try:
                value = int(value)
            except ValueError:
                pass
        props[name] = value
    obj = cls(props, type=type)
    if updates_to:
        props.updated_args = (obj,)
    return obj
