Source code for angr.angrdb.serializers.xrefs

# pylint:disable=unused-import
from ..models import DbXRefs
from ...knowledge_plugins.xrefs import XRefManager


[docs]class XRefsSerializer: """ Serialize/unserialize an XRefs object to/from a database session. """
[docs] @staticmethod def dump(session, db_kb, xrefs): """ :param session: :param DbKnowledgeBase db_kb: :param XRefManager xrefs: :return: """ db_xrefs = db_kb.xrefs blob = xrefs.serialize() if db_xrefs is not None: # update the existing xrefs db_xrefs.blob = blob else: # create a new xrefs db_xrefs = DbXRefs(kb=db_kb, blob=blob) session.add(db_xrefs)
[docs] @staticmethod def load(session, db_kb, kb, cfg_model=None): # pylint:disable=unused-argument """ :param session: :param DbKnowledgeBase db_kb: :param KnowledgeBase kb: :param CFGModel cfg_model: :return: """ db_xrefs = db_kb.xrefs if db_xrefs is None: return None xrefs = XRefManager.parse(db_xrefs.blob, cfg_model=cfg_model, kb=kb) return xrefs