proxygen
folly::pushmi::locked_entangled_pair< T, Dual > Struct Template Reference

#include <entangle.h>

Inheritance diagram for folly::pushmi::locked_entangled_pair< T, Dual >:

Public Member Functions

 ~locked_entangled_pair ()
 
 locked_entangled_pair (entangled< T, Dual > &e)
 
 locked_entangled_pair ()=delete
 
 locked_entangled_pair (const locked_entangled_pair &)=delete
 
locked_entangled_pairoperator= (const locked_entangled_pair &)=delete
 
 locked_entangled_pair (locked_entangled_pair &&o)
 
locked_entangled_pairoperator= (locked_entangled_pair &&o)
 

Public Attributes

entangled< T, Dual > * e
 

Detailed Description

template<class T, class Dual>
struct folly::pushmi::locked_entangled_pair< T, Dual >

Definition at line 228 of file entangle.h.

Constructor & Destructor Documentation

template<class T , class Dual >
folly::pushmi::locked_entangled_pair< T, Dual >::~locked_entangled_pair ( )
inline

Definition at line 230 of file entangle.h.

References folly::pushmi::entangled< T, Dual >::unlockBoth().

230  {
231  if (!!e) {
232  e->unlockBoth();
233  }
234  }
entangled< T, Dual > * e
Definition: entangle.h:229
template<class T , class Dual >
folly::pushmi::locked_entangled_pair< T, Dual >::locked_entangled_pair ( entangled< T, Dual > &  e)
inlineexplicit

Definition at line 235 of file entangle.h.

References folly::pushmi::entangled< T, Dual >::dual, folly::gen::first, folly::pushmi::entangled< T, Dual >::lockBoth(), folly::pushmi::entangled< T, Dual >::operator=(), and folly::pushmi::entangled< T, Dual >::t.

235  : e(std::addressof(e)) {
236  this->e->lockBoth();
237  this->first = std::addressof(this->e->t);
238  this->second = !!this->e->dual ? std::addressof(this->e->dual->t) : nullptr;
239  }
#define nullptr
Definition: http_parser.c:41
entangled< T, Dual > * e
Definition: entangle.h:229
constexpr detail::First first
Definition: Base-inl.h:2553
template<class T , class Dual >
folly::pushmi::locked_entangled_pair< T, Dual >::locked_entangled_pair ( )
delete
template<class T , class Dual >
folly::pushmi::locked_entangled_pair< T, Dual >::locked_entangled_pair ( const locked_entangled_pair< T, Dual > &  )
delete
template<class T , class Dual >
folly::pushmi::locked_entangled_pair< T, Dual >::locked_entangled_pair ( locked_entangled_pair< T, Dual > &&  o)
inline

Definition at line 243 of file entangle.h.

244  : std::pair<T*, Dual*>(o), e(o.e) {
245  o.e = nullptr;
246  }
entangled< T, Dual > * e
Definition: entangle.h:229

Member Function Documentation

template<class T , class Dual >
locked_entangled_pair& folly::pushmi::locked_entangled_pair< T, Dual >::operator= ( const locked_entangled_pair< T, Dual > &  )
delete
template<class T , class Dual >
locked_entangled_pair& folly::pushmi::locked_entangled_pair< T, Dual >::operator= ( locked_entangled_pair< T, Dual > &&  o)
inline

Definition at line 247 of file entangle.h.

247  {
248  static_cast<std::pair<T*, Dual*>&>(*this) =
249  static_cast<std::pair<T*, Dual*>&&>(o);
250  e = o.e;
251  o.e = nullptr;
252  return *this;
253  }
entangled< T, Dual > * e
Definition: entangle.h:229

Member Data Documentation

template<class T , class Dual >
entangled<T, Dual>* folly::pushmi::locked_entangled_pair< T, Dual >::e

Definition at line 229 of file entangle.h.


The documentation for this struct was generated from the following file: