IDA C++ SDK 9.2
Loading...
Searching...
No Matches
merge_data_t Class Reference

class to contain public info about the merge process More...

#include <merge.hpp>

Classes

struct  item_block_locator_t
 several items can be grouped into a block. More...

Public Member Functions

 merge_data_t ()
virtual ~merge_data_t ()
 merge_data_t (const merge_data_t &)=delete
void operator= (const merge_data_t &)=delete
void set_dbctx_ids (int local, int remote, int base)
int local_id () const
int remote_id () const
int base_id () const
void add_event_handler (merge_handler_t *handler)
void remove_event_handler (merge_handler_t *handler)
ea_t get_block_head (diff_source_idx_t idx, ea_t item_head)
bool setup_blocks (diff_source_idx_t dst_idx, diff_source_idx_t src_idx, const diff_range_t &region)
virtual bool has_existing_node (const char *nodename) const
 check that node exists in any of databases
virtual bool map_privrange_id (tid_t *tid, ea_t ea, diff_source_idx_t from, diff_source_idx_t to, bool strict=true)
 map IDs of structures, enumerations and their members
virtual bool map_tinfo (tinfo_t *tif, diff_source_idx_t from, diff_source_idx_t to, bool strict=true)
 migrate type, replaces type references into FROM database to references into TO database
virtual int compare_merging_tifs (const tinfo_t &tif1, diff_source_idx_t diffidx1, const tinfo_t &tif2, diff_source_idx_t diffidx2) const
 compare types from two databases

Public Attributes

class merge_mappers_t & mappers
int dbctx_ids [3] = { -1, -1, -1 }
 local, remote, base ids
int nbases = 0
 number of database participating in merge process, maybe 2 or 3
merge_handlers_t ev_handlers
 event handlers
item_block_locator_titem_block_locator = nullptr
merge_handler_t * last_udt_related_merger = nullptr

Detailed Description

class to contain public info about the merge process

Constructor & Destructor Documentation

◆ merge_data_t() [1/2]

merge_data_t::merge_data_t ( )

◆ ~merge_data_t()

virtual merge_data_t::~merge_data_t ( )
virtual

◆ merge_data_t() [2/2]

merge_data_t::merge_data_t ( const merge_data_t & )
delete

Member Function Documentation

◆ operator=()

void merge_data_t::operator= ( const merge_data_t & )
delete

◆ set_dbctx_ids()

void merge_data_t::set_dbctx_ids ( int local,
int remote,
int base )
inline

◆ local_id()

int merge_data_t::local_id ( ) const
inline

◆ remote_id()

int merge_data_t::remote_id ( ) const
inline

◆ base_id()

int merge_data_t::base_id ( ) const
inline

◆ add_event_handler()

void merge_data_t::add_event_handler ( merge_handler_t * handler)
inline

◆ remove_event_handler()

void merge_data_t::remove_event_handler ( merge_handler_t * handler)
inline

◆ get_block_head()

ea_t merge_data_t::get_block_head ( diff_source_idx_t idx,
ea_t item_head )
inline

◆ setup_blocks()

bool merge_data_t::setup_blocks ( diff_source_idx_t dst_idx,
diff_source_idx_t src_idx,
const diff_range_t & region )
inline

◆ has_existing_node()

virtual bool merge_data_t::has_existing_node ( const char * nodename) const
virtual

check that node exists in any of databases

◆ map_privrange_id()

virtual bool merge_data_t::map_privrange_id ( tid_t * tid,
ea_t ea,
diff_source_idx_t from,
diff_source_idx_t to,
bool strict = true )
virtual

map IDs of structures, enumerations and their members

Parameters
[out]tiditem ID in TO database
eaitem ID to find counterpart
fromsource database index, diff_source_idx_t
todestination database index, diff_source_idx_t
strictraise interr if could not map
Returns
success

◆ map_tinfo()

virtual bool merge_data_t::map_tinfo ( tinfo_t * tif,
diff_source_idx_t from,
diff_source_idx_t to,
bool strict = true )
virtual

migrate type, replaces type references into FROM database to references into TO database

Parameters
[in,out]tiftype to migrate, will be cleared in case of fail
fromsource database index, diff_source_idx_t
todestination database index, diff_source_idx_t
strictraise interr if could not map
Returns
success

◆ compare_merging_tifs()

virtual int merge_data_t::compare_merging_tifs ( const tinfo_t & tif1,
diff_source_idx_t diffidx1,
const tinfo_t & tif2,
diff_source_idx_t diffidx2 ) const
virtual

compare types from two databases

Parameters
tif1type
diffidx1database index, diff_source_idx_t
tif2type
diffidx2database index, diff_source_idx_t
Returns
-1, 0, 1

Member Data Documentation

◆ mappers

class merge_mappers_t& merge_data_t::mappers

◆ dbctx_ids

int merge_data_t::dbctx_ids[3] = { -1, -1, -1 }

local, remote, base ids

◆ nbases

int merge_data_t::nbases = 0

number of database participating in merge process, maybe 2 or 3

◆ ev_handlers

merge_handlers_t merge_data_t::ev_handlers

event handlers

◆ item_block_locator

item_block_locator_t* merge_data_t::item_block_locator = nullptr

◆ last_udt_related_merger

merge_handler_t* merge_data_t::last_udt_related_merger = nullptr

The documentation for this class was generated from the following file: