Oracle® Fusion Middleware C++ API Reference for Oracle Coherence
12c (12.2.1.3.0)

E80355-01

ThreadLocalReference Class Reference

#include <coherence/lang/ThreadLocalReference.hpp>

Inherits Object, and Reference.

List of all members.


Detailed Description

ThreadLocalReferences provide a means to store a Handle to an Object in thread local storage.

A single native thread-local is used to manage all ThreadLocalReferences, which means that users are free to allocate any number of ThreadLocalReferences.

The memory associated with a thread's ThreadLocals is automatically freed when then thread terminates. The memory associated with a non-static ThreadLocalReference will be automatically freed at some point after the ThreadLocalReference has been reclaimed, and is done in such a way that repeated creation and destruction of ThreadLocalReferences will not leak memory.

Public Types

typedef spec::Handle Handle
 ThreadLocalReference Handle definition.
typedef spec::View View
 ThreadLocalReference View definition.
typedef spec::Holder Holder
 ThreadLocalReference Holder definition.

Public Member Functions

virtual TypedHandle
< const String
toString () const
 Output a human-readable description of this Object to the given stream.

Note that when overriding this method the return type must be TypedHandle<const String> rather then String::View. These two types are assignment compatible but not equivalent and declaring the override with String::View will not be a compatible override.

coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toString method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents and is generally how toString() will be implemented.

 Object::View vKey   = ...
 Object::View vValue = ...
 std::cout << vKey << " = " << vValue << std::endl;

 String::View vs = COH_TO_STRING(vKey << " = " << vValue);

The COH_TO_STRING macro is also the most common way to implement the toString method. For example:

 virtual TypedHandle<const String> Person::toString() const
     {
     return COH_TO_STRING("Name: " << f_sName << " SSN: " << f_nSSN);
     }

Returns:
a string representation of this object

virtual void set (Object::Holder hObject)
 Specify the Object to be referenced by the calling thread.
virtual Object::Holder get () const
 Return a Holder to the calling threads referenced Object, or NULL if none has been set for the thread.
virtual Object::Holder get ()
 Return a Holder to the calling threads referenced Object, or NULL if none has been set for the thread.

Protected Member Functions

 ThreadLocalReference ()
 Create a new ThreadLocalReference.


Constructor & Destructor Documentation

ThreadLocalReference (  )  [protected]

Create a new ThreadLocalReference.

Returns:
a handle to the new ThreadLocalReference


Member Function Documentation

virtual void set ( Object::Holder  hObject  )  [virtual]

Specify the Object to be referenced by the calling thread.

Parameters:
ohObject the referenced object

Implements Reference.

virtual Object::Holder get (  )  const [virtual]

Return a Holder to the calling threads referenced Object, or NULL if none has been set for the thread.

Returns:
a Holder to the referenced Object

Implements Reference.

virtual Object::Holder get (  )  [virtual]

Return a Holder to the calling threads referenced Object, or NULL if none has been set for the thread.

Returns:
a Holder to the referenced Object

Implements Reference.


The documentation for this class was generated from the following file:
Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved.