Main Page | Features | Central Services | csv-Files | Types | Transfer | Access | API-C | API-.NET | API-Java | Examples | Downloads
page generated on 18.05.2024 - 04:45
Functions
Transport Performance API Calls File Reference

Functions

int _SystemAssignBufferSpace (UINT32 rcvBufferSpace, UINT32 sndBufferSpace)
 Assigns specific buffer capacity for certain configurable TINE sockets. More...
 
int _SystemAssignBufferSpaceEx (UINT32 clnRcvBufferSpace, UINT32 srvRcvBufferSpace, UINT32 clnSndBufferSpace, UINT32 srvSndBufferSpace)
 Assigns specific buffer capacity for certain configurable TINE sockets (extended version). More...
 
int _SystemAssignUdpSendBufferSpace (UINT32 sndBufferSpace)
 Assigns explicit udp send buffer capacity. More...
 
int GetAllowRemoteDebugging (void)
 returns the current setting of this value More...
 
int GetBurstLimit (void)
 Gets the burst limit in number of packets which are allowed to be sent consecutively. More...
 
int GetClnUDPPort (void)
 Gets the TINE client UDP base port. More...
 
int GetCycleDelay (void)
 Gets the delay time in milliseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit(). More...
 
int GetCycleMicroDelay (void)
 Gets the delay time in microseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit(). More...
 
int GetForceSharedMemory (void)
 returns the current setting of this feature. More...
 
char * GetGCastAddr (void)
 Gets the cannonical globals multicast address the server will use when sending payloads via multicast as a producer. More...
 
char * GetGCastMask (char *addr)
 Gets the cannonical multicast address mask the server will use when sending payloads via multicast as a producer. More...
 
int GetHostNameFromAddress (char *addr, char *host, int length)
 Gets the host name from the address given. More...
 
int GetInetAddress (SCKADR *sckadr, char *addr)
 Gets the address (ip address and port) of the given socket address as a string. More...
 
int GetMaxTcpMessageSize (void)
 Gets the TINE server maximum STREAM message segment size. More...
 
char * GetMCastAddr (void)
 Gets the cannonical multicast address a server will use when requested to send payloads via multicast. More...
 
char * GetMCastAddrLegacy (void)
 Gets the cannonical legacy multicast address a pre-release 4.5.2 server will use when requested to send payloads via multicast. More...
 
char * GetMCastMask (char *pattern)
 Gets the cannonical multicast address mask the server will use when requested to send payloads via multicast. More...
 
int GetMCastTTL (void)
 Gets the TINE multicast Time-To-Live. More...
 
int GetPacketMTU (void)
 Gets the TINE UDP server packet MTU. More...
 
int GetTcpConnectionTableSize (void)
 returns the current setting of the tcp connection table size. More...
 
int GetUseLoopback (void)
 Returns the current value of the 'useLoopBack' flag. More...
 
int GetUseMCastLegacyRules (void)
 Returns whether legacy mutlicast systematics are in effect or not. More...
 
int PollExternalDescriptor (SOCKET s, int events)
 registers an external socket to the server's poll set More...
 
void SetAllowRemoteDebugging (int value)
 enables/disables remote debugging More...
 
int SetBurstLimit (int npackets)
 Sets the burst limit in number of packets which are allowed to be set consecutively. More...
 
int SetClnUDPPort (int port)
 Sets the TINE client UDP base port. More...
 
int SetCycleDelay (int msecs)
 Sets the delay time in milliseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit(). More...
 
int SetCycleMicroDelay (int usecs)
 Sets the delay time in microseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit(). More...
 
void SetForceSharedMemory (int value)
 Disables or enables the 'useLoopBack' flag according to the value given (boolean). More...
 
int SetGCastAddr (char *addr)
 Sets the cannonical globals multicast address the server will use when sending payloads via multicast as a producer. More...
 
int SetGCastMask (char *addr)
 Sets the cannonical multicast address mask the server will use when sending payloads via multicast as a producer. More...
 
void SetIdleConnectionDuration (int allowedIdleSeconds)
 sets the time-to-live for an unused TCP connection to a server More...
 
void SetMaxTcpMessageSize (int value)
 Sets the TINE server maximum STREAM message segment size. More...
 
int SetMCastAddr (char *addr)
 Sets the cannonical multicast address the server will use when requested to send payloads via multicast. More...
 
int SetMCastAddrLegacy (char *addr)
 Sets the cannonical legacy multicast address the server will use when where necessary. More...
 
int SetMCastMask (char *addr)
 Sets the cannonical multicast address mask the server will use when requested to send payloads via multicast. More...
 
int SetMCastTTL (int ttl)
 Sets the TINE multicast Time-To-Live. More...
 
int SetPacketMTU (int mtu)
 Sets the TINE Packet MTU for the UDP server socket. More...
 
void SetTcpConnectionTableSize (int value)
 sets the tcp connection table size. More...
 
void SetUseLoopback (int value)
 Sets the 'useLoopBack' flag to the value given (boolean). More...
 
void SetUseMCastLegacyRules (int value)
 Establishes legacy mutlicast systematics or not. More...
 

Detailed Description

server-side (and client-side) structs, macros, prototypes, etc.

Function Documentation

◆ _SystemAssignBufferSpace()

int _SystemAssignBufferSpace ( UINT32  rcvBufferSpace,
UINT32  sndBufferSpace 
)

Assigns specific buffer capacity for certain configurable TINE sockets.

The standard TINE client and server sockets (both UDP, TCP, and STREAM) are initiated with a reasonable default amount of receive (64 Kbyte) and send (32 Kbyte) buffer capacity. If for any performance reason, more or less buffer capactiy is needed, this routine should be called prior to any calls to SystemInit() or SystemCycle(). For example, VxWorks builds which do not have a large amount of network resources might want to set these values smaller than the defaults. Video system clients expecting extreme amounts of incoming data might want to set these values to a much larger amount.

The principal benificiaries of the 'receive buffer space' are the client sockets (UDP,TCP and SREAM), whereas the principal benificiaries of the 'send buffer space' are the server sockets (TCP and STREAM). The remaining socket buffer space (e.g. client-side send buffer space or server side receive buffer space) will be held at 'reasonable' values, the assumption being that the dominant data delivery will generally server (sending) to client (receiving).

If you need additional control over socket settings, consider using the extended routine _SystemAssignBufferSpaceEx().

Parameters
rcvBufferSpaceis the amount of receive buffer space (in bytes) to assign to the configurable TINE sockets. A value of '0' will assign the default receive buffer capacity.
sndBufferSpaceis the amount of send buffer space (in bytes) to assign to the configurable TINE TCP or STREAM sockets. The UDP socket send buffer space is not influenced by this parameter and will be at least as large as twice the assigned UDP packet MTU. See _SystemAssignUdpSendBufferSpace(). A value of 0' will assign the default send buffer capacity.
Returns
0 on success or a TINE error code
See also
SetPacketMTU(), _SystemAssignBufferSpaceEx()

References _SystemAssignBufferSpaceEx().

◆ _SystemAssignBufferSpaceEx()

int _SystemAssignBufferSpaceEx ( UINT32  clnRcvBufferSpace,
UINT32  srvRcvBufferSpace,
UINT32  clnSndBufferSpace,
UINT32  srvSndBufferSpace 
)

Assigns specific buffer capacity for certain configurable TINE sockets (extended version).

The standard TINE client and server sockets (both UDP, TCP, and STREAM) are initiated with a reasonable default amount of receive (64 Kbyte) and send (32 Kbyte) buffer capacity. If for any performance reason, more or less buffer capactiy is needed, this routine should be called prior to any calls to SystemInit() or SystemCycle(). For example, VxWorks builds which do not have a large amount of network resources might want to set these values smaller than the defaults. Video system clients expecting extreme amounts of incoming data might want to set these values to a much larger amount.

This call allows the setting of the server side receive buffer space as well as the client side send buffer space. This is potentially applicable in rare cases (middle layer servers) where large data payloads are sent as input from a client to a server.

As in the case of _SystemAssignBufferSpace(), the UDP specific send buffer size is kept to a reasonable value, no larger than twice the registered packet MTU. UDP datagram transmission is not inhibited by any client-server flow control which might cause the send buffer space to stack up.

Parameters
clnRcvBufferSpaceis the amount of receive buffer space (in bytes) to assign to the configurable TINE client sockets. A value of '0' will assign the default receive buffer capacity.
srvRcvBufferSpaceis the amount of receive buffer space (in bytes) to assign to the configurable TINE server sockets. A value of '0' will assign the same value as clnRcvBufferSpace (and damping this value by a factor of 2 should it exceed the default receive buffer capacity).
clnSndBufferSpaceis the amount of send buffer space (in bytes) to assign to the configurable TINE client sockets. A value of '0' will assign the same value as srvSndBufferSpace (and damping this value by a factor of 2 should it exceed the default receive buffer capacity).
srvSndBufferSpaceis the amount of send buffer space (in bytes) to assign to the configurable TINE server TCP or STREAM sockets. The UDP socket buffer space will be at least as large as twice the assigned UDP packet MTU. A value of 0' will assign the default send buffer capacity.
Returns
0 on success or a TINE error code
See also
SetPacketMTU(), _SystemAssignBufferSpace()

Referenced by _SystemAssignBufferSpace().

◆ _SystemAssignUdpSendBufferSpace()

int _SystemAssignUdpSendBufferSpace ( UINT32  sndBufferSpace)

Assigns explicit udp send buffer capacity.

The standard TINE client and server UDP sockets are initiated with a reasonable default amount of send (32 Kbyte) buffer capacity. If the UDP packet MTU is set to a value greater than twice the existing UDP buffer capacity then it will be automatically augmented to twice the MTU size. In the unlikely event that is becomes necessary to set the UDP send buffer capacity explicity, it can be accomplished with this call. As UDP datagrams are not subject to client-server flow control they are generally transmitted as fast as possible. A datagram send operation is unlikely to fail under most circumstances, unless a client or server has an unusually high number of simultaneous outstanding send operations.

Parameters
sndBufferSpaceis the amount of receive buffer space (in bytes) to assign to UDP sockets.
Returns
0 on success or a TINE error code
See also
SetPacketMTU(), _SystemAssignBufferSpace()

◆ GetAllowRemoteDebugging()

int GetAllowRemoteDebugging ( void  )

returns the current setting of this value

The 'attachfec' tool is usually used on the same host as the running server, in which case the debugging output is forwarding via an efficient local named pipe.
In some cases, it might be desired to make use of the 'attachfec' on a remote host, in which case debugging output is transfered via a stream connection (less efficient). Whether this feature is available is determined by this setting.

Returns
the current setting (default = TRUE).
See also
SetAllowRemoteDebugging().

◆ GetBurstLimit()

int GetBurstLimit ( void  )

Gets the burst limit in number of packets which are allowed to be sent consecutively.

For UDP transport (the default) TINE does not make use of flow control in any systematic way, other than adjusting this parameter setting at the server side. This parameter works together with the cycle delay and determines how many UDP packets (datagrams) are allowed to be sent consecutively within the transport loop before a brake is applies (cycle delay). If all clients and servers are on the same speed ethernet, this value can be adjusted to a much larger value. However, a fast server sending to a slow client (a remote client via a DSL link for instance) might send more datagrams in a burst than can be received. The default value should compensate for this effect.

Returns
The current setting for the burst limit.
See also
SetBurstLimit(), SetCycleDelay().

◆ GetClnUDPPort()

int GetClnUDPPort ( void  )

Gets the TINE client UDP base port.

Returns
The client base port

◆ GetCycleDelay()

int GetCycleDelay ( void  )

Gets the delay time in milliseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit().

For UDP transport (the default) TINE does not make use of flow control in any systematic way, other than adjusting this parameter setting at the server side. This parameter works together with the burst limit and determines how long to delay further datagram transmission when the burst limit has been reached. If all clients and servers are on the same speed ethernet, this value can be adjusted to 0. However, a fast server sending to a slow client (a remote client via a DSL link for instance) might send more datagrams in a burst than can be received. The default value should compensate for this effect.

Returns
The current setting for the cycle delay.
See also
SetBurstLimit(), SetCycleDelay().

◆ GetCycleMicroDelay()

int GetCycleMicroDelay ( void  )

Gets the delay time in microseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit().

For UDP transport (the default) TINE does not make use of flow control in any systematic way, other than adjusting this parameter setting at the server side. This parameter works together with the burst limit and determines how long to delay further datagram transmission when the burst limit has been reached. If all clients and servers are on the same speed ethernet, this value can left at its default value 0. However, when fine adjustments in flow control are necessary, a delay in the micro second region following each 'burst' of packets can be applied, where the delay in microseconds is given by this setting.

Returns
The current setting for the cycle micro delay.
See also
SetBurstLimit(), SetCycleDelay().

◆ GetForceSharedMemory()

int GetForceSharedMemory ( void  )

returns the current setting of this feature.

If the useLoopBack flag is 'FALSE' (default) then client-side calls to a server on the same host as the client will attempt to use shared memory (windows) or pipes (unix) as a more expedient communications avenue between client and server. If the server however appears not to support such communications (either a legacy server or a java server, for example), then the loopback address is used as a fallback. If the server is known a priori to support such alternate communication channels, then this 'fallback' strategy can be turned off by making use of SetForceSharedMemory(). The current setting can be seen by using this call.

Returns
the current setting of the forcedSharedMemory feature.
See also
SetForceSharedMemory().

◆ GetGCastAddr()

char* GetGCastAddr ( void  )

Gets the cannonical globals multicast address the server will use when sending payloads via multicast as a producer.

Returns
the server's canonical globals multicast address in string representation.

References GetMCastAddr().

◆ GetGCastMask()

char* GetGCastMask ( char *  addr)

Gets the cannonical multicast address mask the server will use when sending payloads via multicast as a producer.

Parameters
addris the desired multicast address for the server. In IPv4 this must be in the form of 'a.b.c.d'.
Returns
the server's canonical multicast address mask in string representation.

References GetMCastMask().

◆ GetHostNameFromAddress()

int GetHostNameFromAddress ( char *  addr,
char *  host,
int  length 
)

Gets the host name from the address given.

Parameters
addris ip address whose host name is desired.
hostis a string buffer which will contain the host name when the call completes.
lengthis the length of the string buffer passed as the 'host' parameter.
Returns
0 or a TINE error code if the call fails.

◆ GetInetAddress()

int GetInetAddress ( SCKADR *  sckadr,
char *  addr 
)

Gets the address (ip address and port) of the given socket address as a string.

Parameters
sckadris a reference to a socket address whose string representation is desired.
addris a string buffer with enough space to hold the string representation of the given socket address (e.g. at least 64 characters)
Returns
0 or a TINE error code if the call fails.

References argument_list_error.

◆ GetMaxTcpMessageSize()

int GetMaxTcpMessageSize ( void  )

Gets the TINE server maximum STREAM message segment size.

Returns
The the TINE server maximum STREAM message segment size

◆ GetMCastAddr()

char* GetMCastAddr ( void  )

Gets the cannonical multicast address a server will use when requested to send payloads via multicast.

Returns
the server's canonical multicast address in string representation.

Referenced by GetGCastAddr().

◆ GetMCastAddrLegacy()

char* GetMCastAddrLegacy ( void  )

Gets the cannonical legacy multicast address a pre-release 4.5.2 server will use when requested to send payloads via multicast.

Returns
the server's canonical multicast address in string representation.

◆ GetMCastMask()

char* GetMCastMask ( char *  pattern)

Gets the cannonical multicast address mask the server will use when requested to send payloads via multicast.

Parameters
patternis the target ip address pattern for which the assigned multicast mask is desired. If 'pattern' is NULL then the canonical multicast mask is returned.
Returns
the server's canonical multicast address mask in string representation.

Referenced by GetGCastMask().

◆ GetMCastTTL()

int GetMCastTTL ( void  )

Gets the TINE multicast Time-To-Live.

Returns
The multicast Time-To-Live

◆ GetPacketMTU()

int GetPacketMTU ( void  )

Gets the TINE UDP server packet MTU.

Returns
The UDP server packet MTU

◆ GetTcpConnectionTableSize()

int GetTcpConnectionTableSize ( void  )

returns the current setting of the tcp connection table size.

Transport communication goes via UDP by default. However by specifying either CM_CONNECT or CM_STREAM a caller can request connected stream transport via TCP. In this case a slot is reserved in a tcp connection managment table for the resulting communications socket. This is a table which is NOT allowed to grow in size but is restricted to the size seen at initialization (default = 32 entries).

Returns
the current setting of the tcp connection table size.
See also
SetTcpConnectionTableSize().

◆ GetUseLoopback()

int GetUseLoopback ( void  )

Returns the current value of the 'useLoopBack' flag.

If the useLoopBack flag is 'TRUE' then client-side calls to a server on the same host as the client will use the network socket layer as the communication avenue between client and server, as opposed to shared memory (windows) or pipes (unix).

Returns
the current setting of the useLoopBack flag.
See also
SetUseLoopback().

◆ GetUseMCastLegacyRules()

int GetUseMCastLegacyRules ( void  )

Returns whether legacy mutlicast systematics are in effect or not.

Returns
Whether legacy mutlicast systematics are in effect (TRUE) or not (FALSE).

◆ PollExternalDescriptor()

int PollExternalDescriptor ( SOCKET  s,
int  events 
)

registers an external socket to the server's poll set

TINE attempts will call a blocking 'poll' on the known socket descriptors. If the application needs to react to an event on an external socket on the same thread as the tine cycler, such sockets can be registered with the cycler via this call.

Parameters
sis the external socket descriptor to be added to the poll set.
eventsis the requested events for which the 'poll' should wake up.
Returns
0 on success or a TINE error code

◆ SetAllowRemoteDebugging()

void SetAllowRemoteDebugging ( int  value)

enables/disables remote debugging

The 'attachfec' tool is usually used on the same host as the running server, in which case the debugging output is forwarding via an efficient local named pipe.
In some cases, it might be desired to make use of the 'attachfec' on a remote host, in which case debugging output is transfered via a stream connection (less efficient). This feature can be turned OFF by making use of this API call and passing a value of FALSE prior to a call to SystemInit().

Parameters
valueis the desired setting (default = TRUE).
See also
GetAllowRemoteDebugging().

◆ SetBurstLimit()

int SetBurstLimit ( int  npackets)

Sets the burst limit in number of packets which are allowed to be set consecutively.

For UDP transport (the default) TINE does not make use of flow control in any systematic way, other than adjusting this parameter setting at the server side. This parameter works together with the cycle delay and determines how many UDP packets (datagrams) are allowed to be sent consecutively within the transport loop before a brake is applies (cycle delay). If all clients and servers are on the same speed ethernet, this value can be adjusted to a much larger value. However, a fast server sending to a slow client (a remote client via a DSL link for instance) might send more datagrams in a burst than can be received. The default value should compensate for this effect.

Parameters
npacketsis the number of packet allowed to be set consecutively for a given call (default: 1000).
Returns
The current setting for the burst limit.
See also
SetCycleDelay(), GetBurstLimit().

◆ SetClnUDPPort()

int SetClnUDPPort ( int  port)

Sets the TINE client UDP base port.

TINE attempts to obtain the first free port beginning UDP client base port. If for some reason the client base port needs to be adjusted away from its default value of 8050, then this routine can be used.

Parameters
portis the base UDP port to use for the TINE clients
Returns
0 on success or a TINE error code

References not_allowed.

◆ SetCycleDelay()

int SetCycleDelay ( int  msecs)

Sets the delay time in milliseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit().

For UDP transport (the default) TINE does not make use of flow control in any systematic way, other than adjusting this parameter setting at the server side. This parameter works together with the burst limit and determines how long to delay further datagram transmission when the burst limit has been reached. If all clients and servers are on the same speed ethernet, this value can be adjusted to 0. However, a fast server sending to a slow client (a remote client via a DSL link for instance) might send more datagrams in a burst than can be received. The default value should compensate for this effect.

Parameters
msecis the time in milliseconds to delay before sending further ethernet packets. (default: 20 msec).
Returns
The current setting for the cycle delay.
See also
SetBurstLimit().

◆ SetCycleMicroDelay()

int SetCycleMicroDelay ( int  usecs)

Sets the delay time in microseconds following a 'burst' of ethernet packets (as defined by SetBurstLimit().

For UDP transport (the default) TINE does not make use of flow control in any systematic way, other than adjusting this parameter setting at the server side. This parameter works together with the burst limit and determines how long to delay further datagram transmission when the burst limit has been reached. If all clients and servers are on the same speed ethernet, this value can be left at its default value 0. However, when fine adjustments in flow control are necessary, a delay in the micro second region following each 'burst' of packets can be applied, where the delay in microseconds is given by this setting.

Parameters
usecis the time in microseconds to delay before sending further ethernet packets. (default: 0 usec => use cycle delay in milliseconds).
Returns
The current setting for the cycle micro delay.
See also
SetCycleDelay(), SetBurstLimit().

◆ SetForceSharedMemory()

void SetForceSharedMemory ( int  value)

Disables or enables the 'useLoopBack' flag according to the value given (boolean).

If the useLoopBack flag is 'FALSE' (default) then client-side calls to a server on the same host as the client will attempt to use shared memory (windows) or pipes (unix) as a more expedient communications avenue between client and server. If the server however appears not to support such communications (either a legacy server or a java server, for example), then the loopback address is used as a fallback. If the server is known a priori to support such alternate communication channels, then this 'fallback' strategy can be turned off by making use of this call.

Parameters
valueshould be non-zero (TRUE) to turn this feature on or FALSE to turn it off. FALSE is the default.
See also
GetForceSharedMemory().

◆ SetGCastAddr()

int SetGCastAddr ( char *  addr)

Sets the cannonical globals multicast address the server will use when sending payloads via multicast as a producer.

A TINE server will by default use the multicast address '238.1.c.d.' where the last 2 bytes 'c' and 'd' are obtained from the server's own IP address (in IPv4 notation). Under some circumstances it might be desireable to make use of a specific multicast address (e.g. for failover of a globals variable). The call can be used for this purpose. An alternative is to utilize the environment variable 'TINE_GCAST_ADDR' or to use the configuration file: 'gcastaddr.csv'. However in such cases, care should be taken to ensure that only the server application sees such an environment variable or such a configuration file.

Parameters
addris the desired multicast address for the server. This must be in the form of 'a.b.c.d' (IPv4) or 'a:b:c:d::e:f:g:h' (IPv6).
Returns
0 on success or a TINE error code

References SetMCastAddr().

◆ SetGCastMask()

int SetGCastMask ( char *  addr)

Sets the cannonical multicast address mask the server will use when sending payloads via multicast as a producer.

Under legacy conditions (gMultiCastUseLegacyRules = TRUE) a TINE server will by default use the multicast address '238.1.c.d.' where the last 2 bytes 'c' and 'd' are obtained from the server's own IP address (in IPv4 notation). The initial two bytes consitute the 'mask'. The first byte signals a multicast if it falls between 224 and 238. The second byte can be used as a multicast 'metric' to offer further distinction amoung multicast senders if required. This call can be used to specify the multicast mask. An alternative is to utilize the environment variable 'TINE_GCAST_MASK' or to use the configuration file: 'gcastmask.csv'.

Under modern conditions a TINE server will by default use the multicast address '239.b.c.d.' where the last 3 bytes 'b', 'c', and 'd' are obtained from the server's own IP address (in IPv4 notation). The initial byte consitutes the 'mask' in this case.

Parameters
addris the desired multicast address for the server. In IPv4 this must be in the form of 'a.b.c.d'.
Returns
0 on success or a TINE error code

References SetMCastMask().

◆ SetIdleConnectionDuration()

void SetIdleConnectionDuration ( int  allowedIdleSeconds)

sets the time-to-live for an unused TCP connection to a server

A client might choose to make use of TCP transport for a short period of time (e.g. a transation) and then no longer require TCP communications to the target in question. In order to conserve resources in the long run the client side will close such unused connections after the allowed idle time has expired.

Use this routine to set this value (default = 300 seconds)

Parameters
allowedIdleSecondsis the allowed TCP connection idle time in seconds.

◆ SetMaxTcpMessageSize()

void SetMaxTcpMessageSize ( int  value)

Sets the TINE server maximum STREAM message segment size.

When using CM_STREAM to acquire data from a server, very large amounts of data can be passed to the stream socket. In general the network stack will not be able to prcess an indeterminantly large amount and the TINE transport system will need to parcel the transmission into segments. The maximum tcp message size determines the size of the underlying parcel. By default, this is 100000000 bytes. This value can be adjusted by calling this routine at the server prior to any call to SystemInit().

Parameters
valueis the desired maximum STREAM message segment size The default is 100000000 bytes. The minimum accepted value is 1472 byte, There is no maximum, however the network stack may refuse to trasmit if the value is too large.
Returns
0 on success or a TINE error code
Note
this applies only to trasmissions in CM_STREAM mode, which is in turn only applicable to multi-threaded builds of the TINE libraries.

◆ SetMCastAddr()

int SetMCastAddr ( char *  addr)

Sets the cannonical multicast address the server will use when requested to send payloads via multicast.

A TINE server will by default use the multicast address '239.b.c.d' where bytes 'b', 'c', and 'd' are obtained from the server's own IP address

'238.1.c.d.' where the last 2 bytes 'c' and 'd' are obtained from the server's own IP address (in IPv4 notation). Under some circumstances it might be desireable to make use of a specific multicast address (e.g. for failover of a globals variable). The call can be used for this purpose. An alternative is to utilize the environment variable 'TINE_MCAST_ADDR' or to use the configuration file: 'mcastaddr.csv'. However in such cases, care should be taken to ensure that only the server application sees such an environment variable or such a configuration file.

Parameters
addris the desired multicast address for the server. In IPv4 this must be in the form of 'a.b.c.d'.
Returns
0 on success or a TINE error code

Referenced by SetGCastAddr().

◆ SetMCastAddrLegacy()

int SetMCastAddrLegacy ( char *  addr)

Sets the cannonical legacy multicast address the server will use when where necessary.

A TINE server prior to release 4.5.2 will by default use the multicast address '238.1.c.d.' where the last 2 bytes 'c' and 'd' are obtained from the server's own IP address (in IPv4 notation). Under some circumstances it might be desireable to make use of a specific multicast address (e.g. for failover of a globals variable). The call can be used for this purpose. An alternative is to utilize the environment variable 'TINE_MCAST_ADDR' or to use the configuration file: 'mcastaddr.csv'. However in such cases, care should be taken to ensure that only the server application sees such an environment variable or such a configuration file.

Parameters
addris the desired multicast address for the server. In IPv4 this must be in the form of 'a.b.c.d'.
Returns
0 on success or a TINE error code

◆ SetMCastMask()

int SetMCastMask ( char *  addr)

Sets the cannonical multicast address mask the server will use when requested to send payloads via multicast.

Under legacy conditions (gMultiCastUseLegacyRules = TRUE) a TINE server will by default use the multicast address '238.1.c.d.' where the last 2 bytes 'c' and 'd' are obtained from the server's own IP address (in IPv4 notation). The initial two bytes consitute the 'mask'. The first byte signals a multicast if it falls between 224 and 239. The second byte can be used as a multicast 'metric' to offer further distinction amoung multicast senders if required. This call can be used to specify the multicast mask. An alternative is to utilize the environment variable 'TINE_MCAST_MASK' or to use the configuration file: 'mcastmask.csv'.

Under modern conditions a TINE server will by default use the multicast address '239.b.c.d.' where the last 3 bytes 'b', 'c', and 'd' are obtained from the server's own IP address (in IPv4 notation). The initial byte consitutes the 'mask' in this case.

Parameters
addris the desired multicast address for the server. This must be a string in the form of 'mask1|pattern1,mask2|pattern2,...' where the 'mask' and 'pattern' substrings must be of the form 'a.b.c.d' (IPv4) or 'a:b:c:d::e:f:g:h' (IPv6). If 'pattern' is not given, then the ip address of the local host is used.
Returns
0 on success or a TINE error code

References argument_list_error, and string_too_long.

Referenced by SetGCastMask().

◆ SetMCastTTL()

int SetMCastTTL ( int  ttl)

Sets the TINE multicast Time-To-Live.

If the multicast Time-To-Live parameter (number of 'hops') needs to be adjusted away from its default value of 16 then this routine can be used.

Parameters
ttlis the time-to-live value to use for multicasts
Returns
0 on success or a TINE error code

References not_allowed.

◆ SetPacketMTU()

int SetPacketMTU ( int  mtu)

Sets the TINE Packet MTU for the UDP server socket.

The TINE default transport protocol is UDP and the default UDP datagram MTU (maximum transport unit) is 1472 bytes (i.e. the ethernet packet MTU). TINE will supply its own packet reassembly for data transfers larger than this. Many modern operating systems have network stacks that will provide UDP packet reassembly up to 64 Kbytes. This generally a much more efficent packet reassembly as it happens at the driver level. If a higher performance for very large data transfer is required, this routine can be called at the server prior to any call to SystemInit().

Parameters
mtuis the desired maximum transport unit for the server socket. The default is 1472 bytes. The minimum accepted value is 512 and the maximum accepted value is 64000 bytes.
Returns
0 on success or a TINE error code
Note
Not all operating systems are able to handle MTUs greater than the standard value of 1472 (notably the standard VxWorks build, and some legacy operating systems). Clients on these operating systems will not be able to receive large data transfers from servers sending at greater MTUs!

References feclog(), and not_allowed.

◆ SetTcpConnectionTableSize()

void SetTcpConnectionTableSize ( int  value)

sets the tcp connection table size.

Transport communication goes via UDP by default. However by specifying either CM_CONNECT or CM_STREAM a caller can request connected stream transport via TCP. In this case a slot is reserved in a tcp connection managment table for the resulting communications socket. This is a table which is NOT allowed to grow in size but is restricted to the size seen at initialization (default = 32 entries). If it is known a priori that TCP communication will be used in a big way, then this table size should be adjusted prior to system initialization (i.e. a call to SystemInit()).

Parameters
valueis the desired tcp connection table size (minimum 8)
See also
GetTcpConnectionTableSize().

◆ SetUseLoopback()

void SetUseLoopback ( int  value)

Sets the 'useLoopBack' flag to the value given (boolean).

If the useLoopBack flag is 'TRUE' then client-side calls to a server on the same host as the client will use the network socket layer as the communication avenue between client and server, as opposed to shared memory (windows) or pipes (unix).

Parameters
valueshould be non-zero (TRUE) to turn this flag on or FALSE to turn it off. FALSE is the default.
See also
GetUseLoopback().

◆ SetUseMCastLegacyRules()

void SetUseMCastLegacyRules ( int  value)

Establishes legacy mutlicast systematics or not.

Parameters
valuedetermines whether legacy multicast rules are in effect. If TRUE then the multicast byte = 238 and the second byte is '1' by default and the last 2 bytes are those of the sender.
If FALSE (default) the multicast byte = 239 and the last 3 bytes are those of the sender.

Impressum   |   Imprint   |   Datenschutzerklaerung   |   Data Privacy Policy   |   Declaration of Accessibility   |   Erklaerung zur Barrierefreiheit
Generated for TINE API by  doxygen 1.5.8