List of all members | Public Member Functions
casadi::UniversalNodeOwner Class Reference

#include <serializing_stream.hpp>

Detailed Description

Definition at line 50 of file serializing_stream.hpp.

Public Member Functions

 UniversalNodeOwner ()=delete
 
 UniversalNodeOwner (const UniversalNodeOwner &)=delete
 
 UniversalNodeOwner (UniversalNodeOwner &&rhs) noexcept
 
 UniversalNodeOwner (SharedObjectInternal *obj)
 
 UniversalNodeOwner (SXNode *obj)
 
UniversalNodeOwneroperator= (const UniversalNodeOwner &other)=delete
 
UniversalNodeOwneroperator= (UniversalNodeOwner &&other) noexcept
 
 ~UniversalNodeOwner ()
 
void * get ()
 

Constructor & Destructor Documentation

◆ UniversalNodeOwner() [1/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( )
delete

◆ UniversalNodeOwner() [2/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( const UniversalNodeOwner )
delete

◆ UniversalNodeOwner() [3/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( UniversalNodeOwner &&  rhs)
noexcept

Definition at line 412 of file serializing_stream.cpp.

412  :
413  node(std::move(rhs.node)), is_sx(std::move(rhs.is_sx)) {
414  rhs.node = nullptr;
415  }

◆ UniversalNodeOwner() [4/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( SharedObjectInternal obj)

Definition at line 402 of file serializing_stream.cpp.

402  :
403  node(obj), is_sx(false) {
404  if (node) obj->count++;
405  }

◆ UniversalNodeOwner() [5/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( SXNode obj)

Definition at line 407 of file serializing_stream.cpp.

407  :
408  node(obj), is_sx(true) {
409  if (node) obj->count++;
410  }

References casadi::SXNode::count.

◆ ~UniversalNodeOwner()

casadi::UniversalNodeOwner::~UniversalNodeOwner ( )

Definition at line 423 of file serializing_stream.cpp.

423  {
424  if (!node) return;
425  if (is_sx) {
426  if (--static_cast<SXNode*>(node)->count == 0) {
427  delete static_cast<SXNode*>(node);
428  }
429  } else {
430  if (--static_cast<SharedObjectInternal*>(node)->count == 0) {
431  delete static_cast<SharedObjectInternal*>(node);
432  }
433  }
434  }

Member Function Documentation

◆ get()

void* casadi::UniversalNodeOwner::get ( )
inline

Definition at line 60 of file serializing_stream.hpp.

60 { return node; }

◆ operator=() [1/2]

UniversalNodeOwner& casadi::UniversalNodeOwner::operator= ( const UniversalNodeOwner other)
delete

◆ operator=() [2/2]

UniversalNodeOwner & casadi::UniversalNodeOwner::operator= ( UniversalNodeOwner &&  other)
noexcept

Definition at line 417 of file serializing_stream.cpp.

417  {
418  std::swap(node, other.node);
419  std::swap(is_sx, other.is_sx);
420  return *this;
421  }

The documentation for this class was generated from the following files: