FreePOOMA  2.4.1
Public Types | Public Member Functions
RemoteProxy< T > Class Template Reference

This class is the return type of the remote brick engine operator(). More...

#include <RemoteProxy.h>

List of all members.

Public Types

typedef RemoteProxy< T > This_t

Public Member Functions

 RemoteProxy (T &val, int owningContext=0)
 All the work happens in the remote proxy constructor.
 RemoteProxy (const RemoteProxy< T > &s)
 operator T () const
T & value ()
const T & value () const
template<class S >
RemoteProxy< T > & operator= (const S &s)
template<class S >
RemoteProxy< T > & operator= (const RemoteProxy< S > &s)
RemoteProxy< T > & operator= (const RemoteProxy< T > &s)
ComponentAccess< T, Loc
< 1 > >::Element_t 
operator() (int i) const
ComponentAccess< T, Loc
< 1 > >::ElementRef_t 
operator() (int i)

Detailed Description

template<class T>
class RemoteProxy< T >

This class is the return type of the remote brick engine operator().

We need an object that lets us assign to data on this context, but that can also contain the data that came from another context, and that prevents you from writing to that data.

Outstanding:

  1. maybe need a copy constructor etc. right now it's ok as long as proxies don't live too long.
  2. other operator functions.

Usage:

A RemoteProxy must be constructed with a value and the context that the value belongs to.


Member Typedef Documentation

template<class T>
typedef RemoteProxy<T> RemoteProxy< T >::This_t

Constructor & Destructor Documentation

template<class T>
RemoteProxy< T >::RemoteProxy ( T &  val,
int  owningContext = 0 
) [inline]

All the work happens in the remote proxy constructor.

If we're on the right context, we store a pointer to the value and broadcast the value to the other contexts. Otherwise we receive the value from the owning context.

References Pooma::context().

template<class T>
RemoteProxy< T >::RemoteProxy ( const RemoteProxy< T > &  s) [inline]

Member Function Documentation

template<class T>
RemoteProxy< T >::operator T ( ) const [inline]
template<class T>
T& RemoteProxy< T >::value ( ) [inline]
template<class T>
const T& RemoteProxy< T >::value ( ) const [inline]
template<class T>
template<class S >
RemoteProxy<T>& RemoteProxy< T >::operator= ( const S &  s) [inline]
template<class T>
template<class S >
RemoteProxy<T>& RemoteProxy< T >::operator= ( const RemoteProxy< S > &  s) [inline]
template<class T>
RemoteProxy<T>& RemoteProxy< T >::operator= ( const RemoteProxy< T > &  s) [inline]
template<class T>
ComponentAccess<T, Loc<1> >::Element_t RemoteProxy< T >::operator() ( int  i) const [inline]
template<class T>
ComponentAccess<T, Loc<1> >::ElementRef_t RemoteProxy< T >::operator() ( int  i) [inline]

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