[PATCH] Extend SendHandleC with OperationRepositoryPart

---
rtt/internal/SendHandleC.cpp | 7 ++++++-
rtt/internal/SendHandleC.hpp | 13 +++++++++++++
2 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/rtt/internal/SendHandleC.cpp b/rtt/internal/SendHandleC.cpp
index 3f5079f..e444f6a 100644
--- a/rtt/internal/SendHandleC.cpp
+++ b/rtt/internal/SendHandleC.cpp
@@ -76,10 +76,11 @@ namespace RTT {
delete d;
d = 0;
}
+ this->orp = ofp;
}

SendHandleC::SendHandleC(const SendHandleC& other)
- : d( other.d ? new D(*other.d) : 0 ), s( other.s ? other.s : 0), b( other.b ? other.b : 0)
+ : d( other.d ? new D(*other.d) : 0 ), s( other.s ? other.s : 0), b( other.b ? other.b : 0), orp( other.orp ? other.orp : NULL)
{
}

@@ -91,6 +92,7 @@ namespace RTT {
d = ( other.d ? new D(*other.d) : 0 );
s = other.s;
b = other.b;
+ orp = other.orp;
return *this;
}

@@ -109,6 +111,7 @@ namespace RTT {
if ( d && d->s ) {
this->s = d->s;
this->b = d->blocking;
+ this->orp = d->mofp;
delete d;
d = 0;
}
@@ -170,4 +173,6 @@ namespace RTT {

DataSourceBase::shared_ptr SendHandleC::getSendHandleDataSource() { return s; }
+
+ OperationRepositoryPart* SendHandleC::getOrp() { return orp; }
}
diff --git a/rtt/internal/SendHandleC.hpp b/rtt/internal/SendHandleC.hpp
index a009350..e1cc7db 100644
--- a/rtt/internal/SendHandleC.hpp
+++ b/rtt/internal/SendHandleC.hpp
@@ -37,6 +37,13 @@ namespace RTT
* Stores the blocking/non blocking flag for collect/collectIfDone.
*/
internal::AssignableDataSource<bool>::shared_ptr b;
+
+ /**
+ * Stores the OperationRepositoryPart pointer contained in this SendHandle
+ */
+ interface::OperationRepositoryPart* orp;
+
+
public:
/**
* The default constructor.
@@ -110,6 +117,12 @@ namespace RTT
* Get the contained data source for send handle.
*/
base::DataSourceBase::shared_ptr getSendHandleDataSource();
+
+ /**
+ * Get the contained OperationRepositoryPart for SendHandle
+ */
+ interface::OperationRepositoryPart* getOrp();
+
};
}}