Index: src/ch/TTaskOperationPlan.cpp =================================================================== diff -u -N -rae09c8430aad5eaa8225df84878b7d9050bdccd6 -r044d0e17cdedf3055202486a2235e1a3c8dd6e56 --- src/ch/TTaskOperationPlan.cpp (.../TTaskOperationPlan.cpp) (revision ae09c8430aad5eaa8225df84878b7d9050bdccd6) +++ src/ch/TTaskOperationPlan.cpp (.../TTaskOperationPlan.cpp) (revision 044d0e17cdedf3055202486a2235e1a3c8dd6e56) @@ -31,10 +31,34 @@ { } +TOperationPlan::TOperationPlan(const TOperationPlan& rSrc) : + m_eOperation(eOperation_None), + m_vSubOperations() +{ + boost::shared_lock src_lock(rSrc.m_lock); + + m_eOperation = rSrc.m_eOperation; + m_vSubOperations = rSrc.m_vSubOperations; +} + TOperationPlan::~TOperationPlan() { } +TOperationPlan& TOperationPlan::operator=(const TOperationPlan& rSrc) +{ + if(this != &rSrc) + { + boost::shared_lock src_lock(rSrc.m_lock); + boost::unique_lock lock(m_lock); + + m_eOperation = rSrc.m_eOperation; + m_vSubOperations = rSrc.m_vSubOperations; + } + + return *this; +} + void TOperationPlan::SetOperationType(EOperationType eOperation) { switch(eOperation)