

11:43, EEST

August 23, 2022

Hello,
who manages the lifetime of a TUaSubscription object? Let’s say I create a subscription like this
{
clear_subscription();
TUaSubscription* s = new TUaSubscription();
_di_IUaSubscription sub = s->operator _di_IUaSubscription();
// does m_OpcUaClient take ownership of s?
m_OpcUaClient->AddSubscription( sub )
// remember subscription for later use
m_ActiveSubscription = s;
}
Do I have to keep track of s and delete it explicitely, or does TuaClient take ownership of the object and deletes it automatically?
What happens when I remove the subscription by calling TuaClient::RemoveSubscription()?
{
return m_ActiveSubscription;
}
void MyClass::clear_subscription()
{
TUaSubscription* s = get_active_subscription();
if( s )
{
_di_IUaSubscription sub = s->operator _di_IUaSubscription();
m_OpcUaClient->RemoveSubscription( sub )
// Do I have to delete the active subscription? Or can I just set it to nullptr?
delete m_ActiveSubscription; // ?
m_ActiveSubscription = nullptr;
}
}
Edit:
The same question applies to the TUaMonitoredDataItem. Does TUaSubscription take ownership of TUaMonitoredDataItem when a monitored object is added to the subscription?
Regards,
Guido
1 Guest(s)
