vrpn  07.33
Virtual Reality Peripheral Network
vrpn_Connection.h File Reference
#include <stdio.h>
#include "vrpn_Configure.h"
#include "vrpn_Shared.h"
#include "vrpn_Types.h"
#include <sys/select.h>
Include dependency graph for vrpn_Connection.h:

Go to the source code of this file.

Classes

struct  vrpn_HANDLERPARAM
 This structure is what is passed to a vrpn_Connection message callback. More...
 
struct  vrpn_LOGLIST
 Placed here so vrpn_FileConnection can use it too. More...
 
struct  vrpnMsgCallbackEntry
 Description of a callback entry for a user type. More...
 
struct  vrpnLogFilterEntry
 
class  vrpn_Endpoint
 Encapsulation of the data and methods for a single generic connection to take care of one part of many clients talking to a single server. More...
 
class  vrpn_Endpoint_IP
 Encapsulation of the data and methods for a single IP-based connection to take care of one part of many clients talking to a single server. More...
 
class  vrpn_Connection
 Generic connection class not specific to the transport mechanism. More...
 
class  vrpn_Connection_IP
 
class  vrpn_Connection_Loopback
 Constructor for a Loopback connection that will basically just pass messages between objects that are connected to it. It offers no external connections, via IP or any other mechanism. It is useful if you want to make the client and server in the same connection and you don't need to have anything else connect. More...
 
class  vrpn_ConnectionManager
 Singleton class that keeps track of all known VRPN connections and makes sure they're deleted on shutdown. More...
 

Typedefs

typedef int(VRPN_CALLBACKvrpn_MESSAGEHANDLER) (void *userdata, vrpn_HANDLERPARAM p)
 Type of a message handler for vrpn_Connection messages. More...
 
typedef vrpn_MESSAGEHANDLER vrpn_LOGFILTER
 Type of handler for filters on logfiles is the same as connection handler. More...
 
typedef char cName[100]
 Length of names within VRPN. More...
 

Enumerations

enum  vrpn_ConnectionStatus {
  LISTEN = (1), CONNECTED = (0), COOKIE_PENDING = (-1), TRYING_TO_CONNECT = (-2),
  BROKEN = (-3), LOGGING = (-4)
}
 This is the list of states that a connection can be in (possible values for status). doing_okay() returns VRPN_TRUE for connections > BROKEN. More...
 

Functions

VRPN_API vrpn_Connectionvrpn_get_connection_by_name (const char *cname, const char *local_in_logfile_name=NULL, const char *local_out_logfile_name=NULL, const char *remote_in_logfile_name=NULL, const char *remote_out_logfile_name=NULL, const char *NIC_IPaddress=NULL, bool force_reopen=false)
 Create a client connection of arbitrary type (VRPN UDP/TCP, TCP, File, Loopback, MPI). More...
 
VRPN_API vrpn_Connectionvrpn_create_server_connection (const char *cname, const char *local_in_logfile_name=NULL, const char *local_out_logfile_name=NULL)
 Create a server connection of arbitrary type (VRPN UDP/TCP, TCP, File, Loopback, MPI). More...
 
VRPN_API vrpn_Connectionvrpn_create_server_connection (int port=vrpn_DEFAULT_LISTEN_PORT_NO, const char *local_in_logfile_name=NULL, const char *local_out_logfile_name=NULL, const char *NIC_NAME=NULL)
 Lets you make one with the default settings, or just ask for a specific port number on the default NIC on this machine. This matches the signature on the old constructor to make it easier to port existing servers. More...
 
VRPN_API char * vrpn_copy_file_name (const char *filespecifier)
 Utility routines to parse file specifiers FROM service locations. More...
 
char * vrpn_set_service_name (const char *specifier, const char *newServiceName)
 Utility routine to rename the service name of a given host specifier. More...
 
VRPN_API size_t vrpn_cookie_size (void)
 Returns the size of the magic cookie buffer, plus any alignment overhead. More...
 
VRPN_API int write_vrpn_cookie (char *buffer, size_t length, long remote_log_mode)
 Writes the magic cookie into buffer with given length. More...
 
Utility routines to parse names (<service>@<location specifier>)

Both return new char [], and it is the caller's responsibility to delete this memory!

VRPN_API char * vrpn_copy_service_name (const char *fullname)
 
VRPN_API char * vrpn_copy_service_location (const char *fullname)
 
Utility routines to parse host specifiers FROM service locations

<hostname>

<hostname>:<port number>="">

x-vrpn://<hostname>

x-vrpn://<hostname>:<port number>="">

x-vrsh://<hostname>/<server program>="">,<comma-separated server arguments>

The caller is responsible for calling delete [] on the returned character pointer if it is not NULL.

VRPN_API char * vrpn_copy_machine_name (const char *hostspecifier)
 
VRPN_API int vrpn_get_port_number (const char *hostspecifier)
 
VRPN_API char * vrpn_copy_rsh_program (const char *hostspecifier)
 
VRPN_API char * vrpn_copy_rsh_arguments (const char *hostspecifier)
 
VRPN_API int check_vrpn_cookie (const char *buffer)
 Checks the buffer to see if it is a valid VRPN header cookie. Returns -1 on total mismatch, 1 on minor version mismatch or other acceptable difference, and 0 on exact match. More...
 
VRPN_API int check_vrpn_file_cookie (const char *buffer)
 
Utility routines for reading from and writing to sockets/file

descriptors

int VRPN_API vrpn_noint_block_write (int outfile, const char buffer[], size_t length)
 
int VRPN_API vrpn_noint_block_read (int infile, char buffer[], size_t length)
 
int VRPN_API vrpn_noint_select (int width, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
 This routine will perform like a normal select() call, but it will restart if it quit because of an interrupt. More...
 

Variables

class VRPN_API vrpn_File_Connection
 
const unsigned vrpn_ALIGN = 8
 VRPN buffers are aligned on 8 byte boundaries so that we can pack and unpack doubles into them on architectures that cannot handle unaligned access. More...
 
const int vrpn_ANY_SENDER = -1
 vrpn_ANY_SENDER can be used to register callbacks on a given message type from any sender. More...
 
const int vrpn_ANY_TYPE = -1
 vrpn_ANY_TYPE can be used to register callbacks for any USER type of message from a given sender. System messages are handled separately. More...
 
const int vrpn_MAX_ENDPOINTS = 256
 Number of endpoints that a server connection can have. Arbitrary limit. More...
 
VRPN_API const char * vrpn_CONTROL
 vrpn_CONTROL is the sender used for notification messages sent to the user from the local VRPN implementation (got_first_connection, etc.) and for control messages sent by auxiliary services. (Such as class vrpn_Controller, which will be introduced in a future revision.) More...
 
class VRPN_API vrpn_Connection
 
class VRPN_API vrpn_Log
 
class VRPN_API vrpn_TranslationTable
 
class VRPN_API vrpn_TypeDispatcher
 
const int vrpn_CONNECTION_MAX_SENDERS = 2000
 Types now have their storage dynamically allocated, so we can afford to have large tables. We need at least 150-200 for the microscope project as of Jan 98, and will eventually need two to three times that number. More...
 
const int vrpn_CONNECTION_MAX_TYPES = 2000
 
Buffer lengths for TCP and UDP.

TCP is an arbitrary number that can be changed by the user using vrpn_Connection::set_tcp_outbuf_size(). UDP is set based on Ethernet maximum transmission size; trying to send a message via UDP which is longer than the MTU of any intervening physical network may cause untraceable failures, so for now we do not expose any way to change the UDP output buffer size. (MTU = 1500 bytes, - 28 bytes of IP+UDP header)

const int vrpn_CONNECTION_TCP_BUFLEN = 64000
 
const int vrpn_CONNECTION_UDP_BUFLEN = 1472
 
System message types
const vrpn_int32 vrpn_CONNECTION_SENDER_DESCRIPTION = (-1)
 
const vrpn_int32 vrpn_CONNECTION_TYPE_DESCRIPTION = (-2)
 
const vrpn_int32 vrpn_CONNECTION_UDP_DESCRIPTION = (-3)
 
const vrpn_int32 vrpn_CONNECTION_LOG_DESCRIPTION = (-4)
 
const vrpn_int32 vrpn_CONNECTION_DISCONNECT_MESSAGE = (-5)
 
const vrpn_uint32 vrpn_CONNECTION_RELIABLE = (1 << 0)
 Classes of service for messages, specify multiple by ORing them together Priority of satisfying these should go from the top down (RELIABLE will override all others). Most of these flags may be ignored, but RELIABLE is guaranteed to be available. More...
 
const vrpn_uint32 vrpn_CONNECTION_FIXED_LATENCY = (1 << 1)
 
const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY = (1 << 2)
 
const vrpn_uint32 vrpn_CONNECTION_FIXED_THROUGHPUT = (1 << 3)
 
const vrpn_uint32 vrpn_CONNECTION_HIGH_THROUGHPUT = (1 << 4)
 
What to log
const long vrpn_LOG_NONE = (0)
 
const long vrpn_LOG_INCOMING = (1 << 0)
 
const long vrpn_LOG_OUTGOING = (1 << 1)
 
VRPN_API const char * vrpn_got_first_connection
 These are the strings that define the system-generated message types that tell when connections are received and dropped. More...
 
VRPN_API const char * vrpn_got_connection
 
VRPN_API const char * vrpn_dropped_connection
 
VRPN_API const char * vrpn_dropped_last_connection
 

Typedef Documentation

◆ cName

typedef char cName[100]

Length of names within VRPN.

Definition at line 158 of file vrpn_Connection.h.

◆ vrpn_LOGFILTER

Type of handler for filters on logfiles is the same as connection handler.

Definition at line 58 of file vrpn_Connection.h.

◆ vrpn_MESSAGEHANDLER

typedef int(VRPN_CALLBACK * vrpn_MESSAGEHANDLER) (void *userdata, vrpn_HANDLERPARAM p)

Type of a message handler for vrpn_Connection messages.

Definition at line 53 of file vrpn_Connection.h.

Enumeration Type Documentation

◆ vrpn_ConnectionStatus

This is the list of states that a connection can be in (possible values for status). doing_okay() returns VRPN_TRUE for connections > BROKEN.

Enumerator
LISTEN 
CONNECTED 
COOKIE_PENDING 
TRYING_TO_CONNECT 
BROKEN 
LOGGING 

Definition at line 28 of file vrpn_Connection.h.

Function Documentation

◆ check_vrpn_cookie()

VRPN_API int check_vrpn_cookie ( const char *  buffer)

Checks the buffer to see if it is a valid VRPN header cookie. Returns -1 on total mismatch, 1 on minor version mismatch or other acceptable difference, and 0 on exact match.

Checks the buffer to see if it is a valid VRPN header cookie. Returns -1 on total mismatch, 1 on minor version mismatch or other acceptable difference, and 0 on exact match.

Returns -1 on a mismatch, 0 on an exact match, 1 on a minor version difference.

Definition at line 2557 of file vrpn_Connection.C.

References vrpn_MAGIC, and vrpn_MAGICLEN.

Referenced by vrpn_Endpoint_IP::finish_new_connection_setup().

Here is the caller graph for this function:

◆ check_vrpn_file_cookie()

VRPN_API int check_vrpn_file_cookie ( const char *  buffer)

Definition at line 2590 of file vrpn_Connection.C.

References vrpn_FILE_MAGIC, vrpn_MAGIC, and vrpn_MAGICLEN.

Referenced by vrpn_File_Connection::read_cookie().

Here is the caller graph for this function:

◆ vrpn_cookie_size()

VRPN_API size_t vrpn_cookie_size ( void  )

Returns the size of the magic cookie buffer, plus any alignment overhead.

Definition at line 2630 of file vrpn_Connection.C.

References vrpn_ALIGN, and vrpn_MAGICLEN.

Referenced by vrpn_Endpoint_IP::finish_new_connection_setup(), vrpn_File_Connection::read_cookie(), vrpn_Log::saveLogSoFar(), vrpn_Log::setCookie(), vrpn_Endpoint_IP::setup_new_connection(), and vrpn_Log::vrpn_Log().

Here is the caller graph for this function:

◆ vrpn_copy_file_name()

VRPN_API char* vrpn_copy_file_name ( const char *  filespecifier)

Utility routines to parse file specifiers FROM service locations.

file:<filename>

file://<hostname>/<filename>

file:///<filename>

Definition at line 6372 of file vrpn_Connection.C.

Referenced by vrpn_File_Connection::vrpn_File_Connection().

Here is the caller graph for this function:

◆ vrpn_copy_machine_name()

VRPN_API char* vrpn_copy_machine_name ( const char *  hostspecifier)

Definition at line 6434 of file vrpn_Connection.C.

Referenced by vrpn_Connection_IP::vrpn_Connection_IP(), and vrpn_create_server_connection().

Here is the caller graph for this function:

◆ vrpn_copy_rsh_arguments()

VRPN_API char* vrpn_copy_rsh_arguments ( const char *  hostspecifier)

Definition at line 6509 of file vrpn_Connection.C.

◆ vrpn_copy_rsh_program()

VRPN_API char* vrpn_copy_rsh_program ( const char *  hostspecifier)

Definition at line 6484 of file vrpn_Connection.C.

◆ vrpn_copy_service_location()

VRPN_API char* vrpn_copy_service_location ( const char *  fullname)

Definition at line 6353 of file vrpn_Connection.C.

Referenced by vrpn_Connection_IP::server_check_for_incoming_connections(), vrpn_create_server_connection(), and vrpn_set_service_name().

Here is the caller graph for this function:

◆ vrpn_copy_service_name()

VRPN_API char* vrpn_copy_service_name ( const char *  fullname)

◆ vrpn_create_server_connection() [1/2]

VRPN_API vrpn_Connection* vrpn_create_server_connection ( const char *  cname,
const char *  local_in_logfile_name = NULL,
const char *  local_out_logfile_name = NULL 
)

Create a server connection of arbitrary type (VRPN UDP/TCP, TCP, File, Loopback, MPI).

Returns NULL if the name is not understood or the connection cannot be created. WARNING: May not be thread safe. To create a VRPN TCP/UDP server, use a name like: vrpn:machine_name_or_ip:port machine_name_or_ip:port machine_name_or_ip :port (This port on any network card.) To create an MPI server, use a name like: mpi:MPI_COMM_WORLD mpi:comm_number When done with the object, call removeReference() on it (which will delete it if there are no other references).

Definition at line 5358 of file vrpn_Connection.C.

References vrpn_Connection::addReference(), vrpn_Connection::setAutoDeleteStatus(), vrpn_copy_machine_name(), vrpn_copy_service_location(), vrpn_DEFAULT_LISTEN_PORT_NO, and vrpn_get_port_number().

Referenced by vrpn_ConnectionPtr::create_server_connection(), vrpn_Forwarder_Server::start_remote_forwarding(), and vrpn_create_server_connection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vrpn_create_server_connection() [2/2]

VRPN_API vrpn_Connection* vrpn_create_server_connection ( int  port = vrpn_DEFAULT_LISTEN_PORT_NO,
const char *  local_in_logfile_name = NULL,
const char *  local_out_logfile_name = NULL,
const char *  NIC_NAME = NULL 
)
inline

Lets you make one with the default settings, or just ask for a specific port number on the default NIC on this machine. This matches the signature on the old constructor to make it easier to port existing servers.

Definition at line 955 of file vrpn_Connection.h.

References vrpn_create_server_connection().

Here is the call graph for this function:

◆ vrpn_get_connection_by_name()

VRPN_API vrpn_Connection* vrpn_get_connection_by_name ( const char *  cname,
const char *  local_in_logfile_name = NULL,
const char *  local_out_logfile_name = NULL,
const char *  remote_in_logfile_name = NULL,
const char *  remote_out_logfile_name = NULL,
const char *  NIC_IPaddress = NULL,
bool  force_reopen = false 
)

Create a client connection of arbitrary type (VRPN UDP/TCP, TCP, File, Loopback, MPI).

WARNING: May not be thread safe. If no IP address for the NIC to use is specified, uses the default NIC. If the force_reopen flag is set, a new connection will be made even if there was already one to that server. When done with the object, call removeReference() on it (which will delete it if there are no other references).

Definition at line 5277 of file vrpn_Connection.C.

References vrpn_Connection::addReference(), vrpn_ConnectionManager::getByName(), vrpn_ConnectionManager::instance(), vrpn_Connection::setAutoDeleteStatus(), vrpn_File_Connection, and vrpn_get_port_number().

Referenced by vrpn_PeerMutex::addPeer(), vrpn_Auxiliary_Logger_Server_Generic::handle_request_logging(), vrpn_Imager_Stream_Buffer::open_new_log_connection(), and vrpn_BaseClass::vrpn_BaseClass().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vrpn_get_port_number()

VRPN_API int vrpn_get_port_number ( const char *  hostspecifier)

Definition at line 6464 of file vrpn_Connection.C.

References vrpn_DEFAULT_LISTEN_PORT_NO.

Referenced by vrpn_create_server_connection(), and vrpn_get_connection_by_name().

Here is the caller graph for this function:

◆ vrpn_noint_block_read()

int VRPN_API vrpn_noint_block_read ( int  infile,
char  buffer[],
size_t  length 
)
 This routine will read in a block from the file descriptor.

It acts just like the read() routine does on normal files, so that it hides the fact that the descriptor may point to a socket. This will also take care of problems caused by interrupted system calls, retrying the read when they occur. This routine will either read the requested number of bytes and return that or return -1 (in the case of an error) or 0 (in the case of EOF being reached before all the data arrives).

Definition at line 1757 of file vrpn_Connection.C.

Referenced by vrpn_Endpoint_IP::finish_new_connection_setup(), vrpn_Endpoint_IP::getOneTCPMessage(), and vrpn_3DConnexion::mainloop().

Here is the caller graph for this function:

◆ vrpn_noint_block_write()

int VRPN_API vrpn_noint_block_write ( int  outfile,
const char  buffer[],
size_t  length 
)
 This routine will write a block to a file descriptor.  It acts just

like the write() system call does on files, but it will keep sending to a socket until an error or all of the data has gone. This will also take care of problems caused by interrupted system calls, retrying the write when they occur. It will also work when sending large blocks of data through socket connections, since it will send all of the data before returning. This routine will either write the requested number of bytes and return that or return -1 (in the case of an error) or 0 (in the case of EOF being reached before all the data is sent).

Definition at line 1721 of file vrpn_Connection.C.

Referenced by vrpn_Endpoint_IP::setup_new_connection().

Here is the caller graph for this function:

◆ vrpn_noint_select()

int VRPN_API vrpn_noint_select ( int  width,
fd_set *  readfds,
fd_set *  writefds,
fd_set *  exceptfds,
struct timeval *  timeout 
)

This routine will perform like a normal select() call, but it will restart if it quit because of an interrupt.

This makes it more robust in its function, and allows this code to perform properly on pxpl5, which sends USER1 interrupts while rendering an image.

Definition at line 1615 of file vrpn_Connection.C.

References vrpn_gettimeofday, vrpn_TimevalGreater(), and vrpn_TimevalSum().

Referenced by vrpn_Endpoint_IP::handle_tcp_messages(), vrpn_Endpoint_IP::handle_udp_messages(), vrpn_3DConnexion::mainloop(), vrpn_Endpoint_IP::mainloop(), vrpn_Endpoint_IP::poll_for_cookie(), vrpn_Endpoint_IP::send_pending_reports(), vrpn_Connection_IP::server_check_for_incoming_connections(), and vrpn_noint_block_read_timeout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vrpn_set_service_name()

char* vrpn_set_service_name ( const char *  specifier,
const char *  newServiceName 
)

Utility routine to rename the service name of a given host specifier.

Definition at line 6541 of file vrpn_Connection.C.

References vrpn_copy_service_location().

Here is the call graph for this function:

◆ write_vrpn_cookie()

VRPN_API int write_vrpn_cookie ( char *  buffer,
size_t  length,
long  remote_log_mode 
)

Writes the magic cookie into buffer with given length.

On failure (if the buffer is too short), returns -1; otherwise returns 0.

This is exposed in vrpn_Connection.h so that we can write add_vrpn_cookie.

Definition at line 2542 of file vrpn_Connection.C.

References vrpn_ALIGN, vrpn_MAGIC, and vrpn_MAGICLEN.

Referenced by vrpn_Endpoint_IP::setup_new_connection(), and vrpn_Log::vrpn_Log().

Here is the caller graph for this function:

Variable Documentation

◆ vrpn_ALIGN

const unsigned vrpn_ALIGN = 8

VRPN buffers are aligned on 8 byte boundaries so that we can pack and unpack doubles into them on architectures that cannot handle unaligned access.

Definition at line 63 of file vrpn_Connection.h.

Referenced by vrpn_cookie_size(), and write_vrpn_cookie().

◆ vrpn_ANY_SENDER

◆ vrpn_ANY_TYPE

const int vrpn_ANY_TYPE = -1

vrpn_ANY_TYPE can be used to register callbacks for any USER type of message from a given sender. System messages are handled separately.

Definition at line 82 of file vrpn_Connection.h.

Referenced by vrpn_RedundantReceiver::register_handler(), vrpn_Imager_Stream_Buffer::setup_handlers_for_logging_connection(), vrpn_Imager_Stream_Buffer::teardown_handlers_for_logging_connection(), and vrpn_RedundantReceiver::unregister_handler().

◆ vrpn_Connection

Definition at line 188 of file vrpn_Connection.h.

◆ vrpn_CONNECTION_DISCONNECT_MESSAGE

const vrpn_int32 vrpn_CONNECTION_DISCONNECT_MESSAGE = (-5)

Definition at line 110 of file vrpn_Connection.h.

Referenced by vrpn_Endpoint_IP::drop_connection(), and vrpn_Connection::init().

◆ vrpn_CONNECTION_FIXED_LATENCY

const vrpn_uint32 vrpn_CONNECTION_FIXED_LATENCY = (1 << 1)

Definition at line 121 of file vrpn_Connection.h.

◆ vrpn_CONNECTION_FIXED_THROUGHPUT

const vrpn_uint32 vrpn_CONNECTION_FIXED_THROUGHPUT = (1 << 3)

Definition at line 123 of file vrpn_Connection.h.

◆ vrpn_CONNECTION_HIGH_THROUGHPUT

const vrpn_uint32 vrpn_CONNECTION_HIGH_THROUGHPUT = (1 << 4)

Definition at line 124 of file vrpn_Connection.h.

◆ vrpn_CONNECTION_LOG_DESCRIPTION

const vrpn_int32 vrpn_CONNECTION_LOG_DESCRIPTION = (-4)

◆ vrpn_CONNECTION_LOW_LATENCY

◆ vrpn_CONNECTION_MAX_SENDERS

const int vrpn_CONNECTION_MAX_SENDERS = 2000

Types now have their storage dynamically allocated, so we can afford to have large tables. We need at least 150-200 for the microscope project as of Jan 98, and will eventually need two to three times that number.

Definition at line 70 of file vrpn_Connection.h.

◆ vrpn_CONNECTION_MAX_TYPES

const int vrpn_CONNECTION_MAX_TYPES = 2000

Definition at line 71 of file vrpn_Connection.h.

Referenced by vrpn_RedundantReceiver::~vrpn_RedundantReceiver().

◆ vrpn_CONNECTION_RELIABLE

const vrpn_uint32 vrpn_CONNECTION_RELIABLE = (1 << 0)

Classes of service for messages, specify multiple by ORing them together Priority of satisfying these should go from the top down (RELIABLE will override all others). Most of these flags may be ignored, but RELIABLE is guaranteed to be available.

Definition at line 120 of file vrpn_Connection.h.

Referenced by vrpn_ForceDevice_Remote::addObject(), vrpn_ForceDevice_Remote::addObjectExScene(), vrpn_SharedObject::becomeSerializer(), vrpn_ForceDevice_Remote::clearObjectTrimesh(), vrpn_BaseClassUnique::client_mainloop(), vrpn_RedundantRemote::enable(), vrpn_Forwarder_Controller::forward_message_type(), vrpn_Nikon_Controls::handle_connect_message(), vrpn_Zaber::handle_connect_message(), vrpn_LUDL_USBMAC6000::handle_connect_message(), vrpn_BiosciencesTools::handle_connect_message(), vrpn_IDEA::handle_connect_message(), vrpn_SharedObject::handle_grantSerializer(), vrpn_Mutex_Server::handle_requestIndex(), vrpn_SharedObject::handle_requestSerializer(), vrpn_Tracker::handle_t2r_request(), vrpn_Tracker::handle_u2s_request(), vrpn_Tracker::handle_workspace_request(), vrpn_Sound_Client::LoadMaterial(), vrpn_Sound_Client::LoadModel_local(), vrpn_Sound_Client::LoadPolyQuad(), vrpn_Sound_Client::LoadPolyTri(), vrpn_Sound_Client::loadSound(), vrpn_Imager_Stream_Buffer::mainloop(), vrpn_ForceDevice_Remote::moveToParent(), vrpn_Endpoint::pack_log_description(), vrpn_Auxiliary_Logger::pack_log_message_of_type(), vrpn_Endpoint_IP::pack_message(), vrpn_Endpoint::pack_sender_description(), vrpn_Endpoint::pack_type_description(), vrpn_File_Controller::play_to_time(), vrpn_Sound_Client::playSound(), vrpn_ForceDevice_Remote::removeObject(), vrpn_ForceDevice_Remote::removeObjectTriangle(), vrpn_Dial::report(), vrpn_Dial::report_changes(), vrpn_Button::report_states(), vrpn_Tracker_Remote::request_t2r_xform(), vrpn_Tracker_Remote::request_u2s_xform(), vrpn_Tracker_Remote::request_workspace(), vrpn_FunctionGenerator_Remote::requestAllChannels(), vrpn_FunctionGenerator_Remote::requestChannel(), vrpn_FunctionGenerator_Remote::requestInterpreterDescription(), vrpn_FunctionGenerator_Remote::requestSampleRate(), vrpn_FunctionGenerator_Remote::requestStart(), vrpn_FunctionGenerator_Remote::requestStop(), vrpn_File_Controller::reset(), vrpn_Tracker_Remote::reset_origin(), vrpn_ForceDevice_Remote::send(), vrpn_Imager_Server::send_begin_frame(), vrpn_Imager_Server::send_description(), vrpn_ImagerPose_Server::send_description(), vrpn_Imager_Server::send_discarded_frames(), vrpn_Imager_Server::send_end_frame(), vrpn_Imager_Server::send_region_using_base_pointer(), vrpn_BaseClassUnique::send_text_message(), vrpn_FunctionGenerator_Server::sendChannelReply(), vrpn_Mutex::sendDenyRequest(), vrpn_ForceDevice::sendError(), vrpn_FunctionGenerator_Server::sendError(), vrpn_Mutex::sendGrantRequest(), vrpn_FunctionGenerator_Server::sendInterpreterDescription(), vrpn_Mutex::sendRelease(), vrpn_Mutex::sendReleaseNotification(), vrpn_Mutex::sendRequest(), vrpn_FunctionGenerator_Server::sendSampleRateReply(), vrpn_FunctionGenerator_Server::sendStartReply(), vrpn_FunctionGenerator_Server::sendStopReply(), vrpn_Shared_int32::sendUpdate(), vrpn_Shared_float64::sendUpdate(), vrpn_Shared_String::sendUpdate(), vrpn_RedundantRemote::set(), vrpn_File_Controller::set_replay_rate(), vrpn_Tracker_Remote::set_update_rate(), vrpn_FunctionGenerator_Remote::setChannel(), vrpn_ForceDevice_Remote::setHapticOrigin(), vrpn_ForceDevice_Remote::setHapticScale(), vrpn_Sound_Client::setListenerPose(), vrpn_Sound_Client::setListenerVelocity(), vrpn_ForceDevice_Remote::setObjectIsTouchable(), vrpn_ForceDevice_Remote::setObjectNormal(), vrpn_ForceDevice_Remote::setObjectOrientation(), vrpn_ForceDevice_Remote::setObjectPosition(), vrpn_ForceDevice_Remote::setObjectScale(), vrpn_ForceDevice_Remote::setObjectTriangle(), vrpn_ForceDevice_Remote::setObjectTrimeshTransform(), vrpn_ForceDevice_Remote::setObjectVertex(), vrpn_Sound_Client::setPolyMaterialName(), vrpn_Sound_Client::setPolyOF(), vrpn_Sound_Client::setQuadVertices(), vrpn_ForceDevice_Remote::setSceneOrigin(), vrpn_Sound_Client::setSoundConeInfo(), vrpn_Sound_Client::setSoundDistances(), vrpn_Sound_Client::setSoundDopScale(), vrpn_Sound_Client::setSoundEqValue(), vrpn_Sound_Client::setSoundPitch(), vrpn_Sound_Client::setSoundPose(), vrpn_Sound_Client::setSoundVelocity(), vrpn_Sound_Client::setSoundVolume(), vrpn_Sound_Client::setTriVertices(), vrpn_Forwarder_Controller::start_remote_forwarding(), vrpn_ForceDevice_Remote::startEffect(), vrpn_ForceDevice_Remote::startSurface(), vrpn_ForceDevice_Remote::stopEffect(), vrpn_ForceDevice_Remote::stopForceField(), vrpn_Sound_Client::stopSound(), vrpn_ForceDevice_Remote::stopSurface(), vrpn_Imager_Remote::throttle_sender(), vrpn_Sound_Client::unloadSound(), vrpn_ForceDevice_Remote::updateObjectTrimeshChanges(), vrpn_ForceDevice_Remote::useGhost(), and vrpn_ForceDevice_Remote::useHcollide().

◆ vrpn_CONNECTION_SENDER_DESCRIPTION

const vrpn_int32 vrpn_CONNECTION_SENDER_DESCRIPTION = (-1)

◆ vrpn_CONNECTION_TCP_BUFLEN

◆ vrpn_CONNECTION_TYPE_DESCRIPTION

const vrpn_int32 vrpn_CONNECTION_TYPE_DESCRIPTION = (-2)

◆ vrpn_CONNECTION_UDP_BUFLEN

const int vrpn_CONNECTION_UDP_BUFLEN = 1472

Definition at line 96 of file vrpn_Connection.h.

◆ vrpn_CONNECTION_UDP_DESCRIPTION

const vrpn_int32 vrpn_CONNECTION_UDP_DESCRIPTION = (-3)

◆ vrpn_CONTROL

VRPN_API const char* vrpn_CONTROL

vrpn_CONTROL is the sender used for notification messages sent to the user from the local VRPN implementation (got_first_connection, etc.) and for control messages sent by auxiliary services. (Such as class vrpn_Controller, which will be introduced in a future revision.)

Definition at line 190 of file vrpn_Connection.C.

Referenced by vrpn_PeerMutex::addPeer(), vrpn_Endpoint_IP::drop_connection(), and vrpn_Connection::init().

◆ vrpn_dropped_connection

◆ vrpn_dropped_last_connection

◆ vrpn_File_Connection

Definition at line 37 of file vrpn_Connection.h.

Referenced by vrpn_get_connection_by_name().

◆ vrpn_got_connection

◆ vrpn_got_first_connection

VRPN_API const char* vrpn_got_first_connection

These are the strings that define the system-generated message types that tell when connections are received and dropped.

Definition at line 184 of file vrpn_Connection.C.

Referenced by vrpn_Connection::init(), vrpn_GlobalHapticsOrb::vrpn_GlobalHapticsOrb(), vrpn_Imager_Stream_Buffer::vrpn_Imager_Stream_Buffer(), vrpn_raw_SGIBox::vrpn_raw_SGIBox(), vrpn_Tracker_AnalogFly::vrpn_Tracker_AnalogFly(), and vrpn_Tracker_ButtonFly::vrpn_Tracker_ButtonFly().

◆ vrpn_Log

Definition at line 189 of file vrpn_Connection.h.

Referenced by vrpn_Endpoint::init().

◆ vrpn_LOG_INCOMING

◆ vrpn_LOG_NONE

const long vrpn_LOG_NONE = (0)

Definition at line 130 of file vrpn_Connection.h.

Referenced by vrpn_Connection::vrpn_Connection(), and vrpn_Log::vrpn_Log().

◆ vrpn_LOG_OUTGOING

◆ vrpn_MAX_ENDPOINTS

const int vrpn_MAX_ENDPOINTS = 256

Number of endpoints that a server connection can have. Arbitrary limit.

Definition at line 102 of file vrpn_Connection.h.

Referenced by vrpn_Connection_IP::connect_to_client(), vrpn_Connection::init(), and vrpn_Connection_IP::server_check_for_incoming_connections().

◆ vrpn_TranslationTable

class VRPN_API vrpn_TranslationTable

Definition at line 190 of file vrpn_Connection.h.

Referenced by vrpn_Endpoint::init().

◆ vrpn_TypeDispatcher

class VRPN_API vrpn_TypeDispatcher

Definition at line 191 of file vrpn_Connection.h.

Referenced by vrpn_Connection::init().