1#ifndef XRPL_BASICS_LOCALVALUE_H_INCLUDED 
    2#define XRPL_BASICS_LOCALVALUE_H_INCLUDED 
    4#include <boost/thread/tss.hpp> 
   54template <
class = 
void>
 
   55boost::thread_specific_ptr<detail::LocalValues>&
 
   58    static boost::thread_specific_ptr<detail::LocalValues> tsp(
 
 
   69    template <
class... Args>
 
 
  102        auto const iter = lvs->values.find(
this);
 
  103        if (iter != lvs->values.end())
 
  104            return *
reinterpret_cast<T*
>(iter->second->get());
 
  107    return *
reinterpret_cast<T*
>(
 
  110            .first->second->get());
 
 
T & operator*()
Stores instance of T specific to the calling coroutine or thread.
 
LocalValue(Args &&... args)
 
T * operator->()
Stores instance of T specific to the calling coroutine or thread.
 
boost::thread_specific_ptr< detail::LocalValues > & getLocalValues()
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
virtual ~BasicValue()=default
 
std::unordered_map< void const  *, std::unique_ptr< BasicValue > > values
 
static void cleanup(LocalValues *lvs)