xref: /netbsd-src/external/bsd/elftosb/dist/common/Operation.cpp (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1 /*
2  * File:	Operation.cpp
3  *
4  * Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
5  * See included license file for license details.
6  */
7 
8 #include "Operation.h"
9 
10 using namespace elftosb;
11 
12 //! The operation object takes ownership of \a source.
13 //!
14 //! Cross references between the target and source are updated.
15 void LoadOperation::setSource(DataSource * source)
16 {
17 	m_source = source;
18 
19 	if (m_target)
20 	{
21 		m_target->setSource(m_source);
22 	}
23 	if (m_source)
24 	{
25 		m_source->setTarget(m_target);
26 	}
27 }
28 
29 //! The operation object takes ownership of \a target.
30 //!
31 //! Cross references between the target and source are updated.
32 void LoadOperation::setTarget(DataTarget * target)
33 {
34 	m_target = target;
35 
36 	if (m_target)
37 	{
38 		m_target->setSource(m_source);
39 	}
40 	if (m_source)
41 	{
42 		m_source->setTarget(m_target);
43 	}
44 }
45 
46 //! Disposes of operations objects in the sequence.
47 OperationSequence::~OperationSequence()
48 {
49 //	iterator_t it = begin();
50 //	for (; it != end(); ++it)
51 //	{
52 //		delete it->second;
53 //	}
54 }
55 
56 void OperationSequence::append(const OperationSequence * other)
57 {
58 	const_iterator_t it = other->begin();
59 	for (; it != other->end(); ++it)
60 	{
61 		m_operations.push_back(*it);
62 	}
63 }
64