# H3DNetworkingUtils::RemoteField Class Reference

The RemoteField class is an abstract base class which which writes to and reads from a network connection. More...

`#include <H3DNetworkingUtils/RemoteField.h>`

Inheritance diagram for H3DNetworkingUtils::RemoteField:

List of all members.

## Public Member Functions
virtual void | traverseSG (H3D::TraverseInfo &ti)
bool | isConnected () const
| Returns true if a connection is active.
virtual void | readValue ()=0
| Read the parts of a field's value into the received field.
## Public Attributes
auto_ptr< H3D::SFInt32 > | fieldId
| The id of the field, which should have a matching field on the other machine access type: initializeOnly basic type: SFInt32 default value: 0.
auto_ptr< H3D::SFFloat > | printPeriod
| Used for prinitng statistics access type: initializeOnly basic type: SFFloat default value: 0.0.
auto_ptr< H3D::SFBool > | sendOnceOnConnect
| If false, (and if periodic send if false), values will only be sent across the network when they change If true, they will also be sent as soon as connection is estanlished access type: inputOutput basic type: SFBool default value: false.
auto_ptr< Enabled > | enabled
| Switches the remote field on access type: inputOutput basic type: SFBool default value: TRUE.
auto_ptr< H3D::SFBool > | bufferReceivedVals
| If TRUE, values received on the network are immediately buffered and released to the scenegraph field network according to bufferStrategy access type: inputOutput basic type: SFBool default value: FALSE.
auto_ptr< H3D::SFString > | bufferStrategy
| bufferStratgey is part of a mechanism to make sure that if two machines run at different frame rates, values can be assured to be all seen on the slow machine if necessary It can be set to be: "NONE" : no bufferring, only the most recent value is seen on the receiving machine if the receiving machine is slower than the sender, the sender may send several values during a reciver's single graphics cycle and only the most recent is used "SET_ONE_PER_CYCLE" : the received values are buffered and then released (ie setValue() is called) on the output field once per graphics cycle This ensures that each graphics cycle 'sees' a new received value that was sent on each of the sender's graphics cycles "SET_ALL" : the received values are buffered and then released (ie setValue() is called) repeatedly until the buffer is empty during a single graphics cycle This means that setValue() gets called for each received value, but they are not spaced out, one per graphics cycle If you are not routing to an AutoUpdate field, these setValue()'s may not be noticed access type: inputOutput basic type: SFString default value: "NONE"
auto_ptr< H3D::SFTime > | remoteTimestamp
| A received time stamp access type: outputOnly basic type: SFTime default value:.
auto_ptr< H3D::SFBool > | timestamps
| If true, a timestamp value is sent access type: inputOutput basic type: SFBool default value: FALSE.
auto_ptr< H3D::SFBool > | isHapticField
| If you are routing to fields in the scenegraph which are used in the haptics thread set this to true Never route to fields handled in both haptics and graphics threads access type: inputOutput basic type: SFBool default value: FALSE.
RemoteConnection * | conP
| The connection node in which this field exists.

## Detailed Description

The RemoteField class is an abstract base class which which writes to and reads from a network connection.

This allows fields to update due to changes to a field on a different machine. This is an abstract class, and is instantiated in the RemoteSF<T> template class.

## Member Function Documentation

void RemoteField::traverseSG | ( | H3D::TraverseInfo & | ti | ) | `[virtual]`

cout << (int)this << " adding" << endl;

References isHapticField.

virtual void H3DNetworkingUtils::RemoteField::readValue | ( |  | ) | `[pure virtual]`

Read the parts of a field's value into the received field.

Must be supplied for specific instantiations, to receive the correct parts of the value.

Implemented in H3DNetworkingUtils::RemoteMFBool, H3DNetworkingUtils::RemoteMFFloat, H3DNetworkingUtils::RemoteMFInt32, H3DNetworkingUtils::RemoteMFString, H3DNetworkingUtils::RemoteMFVec3f, H3DNetworkingUtils::RemoteNodeField< TheNode, MultiFieldType, fld >, H3DNetworkingUtils::RemoteSFBool, H3DNetworkingUtils::RemoteSFColor, H3DNetworkingUtils::RemoteSFFloat, H3DNetworkingUtils::RemoteSFInt32, H3DNetworkingUtils::RemoteSFRotation, H3DNetworkingUtils::RemoteSFString, H3DNetworkingUtils::RemoteSFTime, H3DNetworkingUtils::RemoteSFVec2f, H3DNetworkingUtils::RemoteSFVec3f, H3DNetworkingUtils::RemoteNodeField< H3D::Normal, H3D::MFVec3f,&H3D::Normal::vector >, and H3DNetworkingUtils::RemoteNodeField< H3D::Coordinate, H3D::MFVec3f,&H3D::Coordinate::point >.

## Member Data Documentation

RemoteConnection* H3DNetworkingUtils::RemoteField::conP

The connection node in which this field exists.

Also the network connection from which it reads and to which it writes.

Referenced by isConnected(), H3DNetworkingUtils::RemoteNormalVector::readVal(), H3DNetworkingUtils::RemoteCoordPoint::readVal(), H3DNetworkingUtils::RemoteSFVec3f::readValue(), H3DNetworkingUtils::RemoteSFVec2f::readValue(), H3DNetworkingUtils::RemoteSFTime::readValue(), H3DNetworkingUtils::RemoteSFString::readValue(), H3DNetworkingUtils::RemoteSFRotation::readValue(), H3DNetworkingUtils::RemoteSFInt32::readValue(), H3DNetworkingUtils::RemoteSFFloat::readValue(), H3DNetworkingUtils::RemoteSFColor::readValue(), H3DNetworkingUtils::RemoteSFBool::readValue(), H3DNetworkingUtils::RemoteNodeField< TheNode, MultiFieldType, fld >::readValue(), H3DNetworkingUtils::RemoteMFVec3f::readValue(), H3DNetworkingUtils::RemoteMFString::readValue(), H3DNetworkingUtils::RemoteMFInt32::readValue(), H3DNetworkingUtils::RemoteMFFloat::readValue(), H3DNetworkingUtils::RemoteMFBool::readValue(), H3DNetworkingUtils::RemoteSF< S >::writeField(), H3DNetworkingUtils::RemoteMF< M >::writeField(), H3DNetworkingUtils::RemoteNodeField< TheNode, MultiFieldType, fld >::writeMField(), H3DNetworkingUtils::RemoteNodeField< TheNode, MultiFieldType, fld >::writeSField(), and H3DNetworkingUtils::RemoteNodeField< TheNode, MultiFieldType, fld >::writeWholeArray().

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

- RemoteField.h
- RemoteField.cpp