'Encode this L{_OPTHeader} instance to bytes.
@type strio: L{file}
@param strio: the byte representation of this L{_OPTHeader}
will be written to this file.
@type compDict: L{dict} or L{None}
@param compDict: A dictionary of backreference addresses that
have already been written to this stream and that may
be used for DNS name compression.'

def encode(self, strio, compDict=None):

    b = BytesIO()
    for o in self.options:
        o.encode(b)
    optionBytes = b.getvalue()
    RRHeader(name=self.name.name, type=self.type, cls=self.udpPayloadSize, ttl=(((self.extendedRCODE << 24) | (self.version << 16)) | (self.dnssecOK << 15)), payload=UnknownRecord(optionBytes)).encode(strio, compDict)
