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 418 of file serializing_stream.cpp.

418  :
419  node(std::move(rhs.node)), is_sx(std::move(rhs.is_sx)) {
420  rhs.node = nullptr;
421  }

◆ UniversalNodeOwner() [4/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( SharedObjectInternal obj)

Definition at line 408 of file serializing_stream.cpp.

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

◆ UniversalNodeOwner() [5/5]

casadi::UniversalNodeOwner::UniversalNodeOwner ( SXNode obj)

Definition at line 413 of file serializing_stream.cpp.

413  :
414  node(obj), is_sx(true) {
415  if (node) obj->count++;
416  }

References casadi::SXNode::count.

◆ ~UniversalNodeOwner()

casadi::UniversalNodeOwner::~UniversalNodeOwner ( )

Definition at line 429 of file serializing_stream.cpp.

429  {
430  if (!node) return;
431  if (is_sx) {
432  if (--static_cast<SXNode*>(node)->count == 0) {
433  delete static_cast<SXNode*>(node);
434  }
435  } else {
436  if (--static_cast<SharedObjectInternal*>(node)->count == 0) {
437  delete static_cast<SharedObjectInternal*>(node);
438  }
439  }
440  }

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 423 of file serializing_stream.cpp.

423  {
424  std::swap(node, other.node);
425  std::swap(is_sx, other.is_sx);
426  return *this;
427  }

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