src/PredFinder/elf/ElfRelation.cpp
/**
 * Private convenience method that wraps the functionality
 * of std::map for storing an ElfRelationArg in _arg_map.
 * Designed to store a single arg in a one-item vector, using
 * its role name as a key; does not append the arg to an existing vector.
 *
 * @param argument The argument to be inserted; a deep
 * copy is made to prevent unexpected pointer sharing, and
 * all memory is handled by boost::shared_ptr.
 * @return The shared pointer for the copied argument, in case it needs
 * to be modified after insertion.
 *
 * @author nward@bbn.com
 * @date 2010.10.13
 **/
Private convenience method that wraps the functionality
of std::map for storing an ElfRelationArg in _arg_map.
Designed to store a single arg in a one-item vector, using
its role name as a key; does not append the arg to an existing vector.

@param argument The argument to be inserted; a deep
copy is made to prevent unexpected pointer sharing, and
all memory is handled by boost::shared_ptr.
@return The shared pointer for the copied argument, in case it needs
to be modified after insertion.


Private convenience method that wraps the functionality of std :: map for storing an ElfRelationArg in _arg_map . Designed to store a single arg in a one - item vector using its role name as a key ; does not append the arg to an existing vector . @param argument The argument to be inserted ; a deep copy is made to prevent unexpected pointer sharing and all memory is handled by boost :: shared_ptr . @return The shared pointer for the copied argument in case it needs to be modified after insertion .
ElfRelationArg_ptr ElfRelation::insert_argument(const ElfRelationArg_ptr arg) {
	ElfRelationArg_ptr arg_copy = boost::make_shared<ElfRelationArg>(arg);
	std::pair<ElfRelationArgMap::iterator, bool> arg_insert = 
		_arg_map.insert(ElfRelationArgMap::value_type(arg_copy->get_role(), std::vector<ElfRelationArg_ptr>()));
	arg_insert.first->second.push_back(arg_copy);
	return arg_copy;
}
ElfRelationArg_ptr ElfRelation :: insert_argument ( const ElfRelationArg_ptr arg ) { ElfRelationArg_ptr arg_copy = boost :: make_shared < ElfRelationArg > ( arg ) ; std :: pair < ElfRelationArgMap :: iterator , bool > arg_insert = _arg_map . insert ( ElfRelationArgMap :: value_type ( arg_copy -> get_role ( ) , std :: vector < ElfRelationArg_ptr > ( ) ) ) ; arg_insert . first -> second . push_back ( arg_copy ) ; return arg_copy ; }
Private convenience method that wraps the functionality
 of std::map for storing an ElfRelationArg in _arg_map.
Private convenience method that wraps the functionality of std :: map for storing an ElfRelationArg in _arg_map .
// Make a deep copy of this argument, so we don't modify members in the wrong context
 // Append this argument by role
 // Return a reference to the inserted arg copy, in case we need it
