Sock.Rplbuffrq Method

Top  Previous  Next

 

Function:

For the selected socket (selection is made through sock.num) pre-requests "numpages" number of buffer pages (1 page= 256 bytes) for the RPL buffer of the socket.

Syntax:

sock.cmdbuffrq(numpages as {byte | word}) as {byte | word}

Returns:

Actual number of pages that can be allocated.

See Also:

sock.cmdbuffrq, sock.rplbuffsize

 


Part

Description

numpages

Requested numbers of buffer pages to allocate. For the time being, the maximum allowed value is 255.

Details

The RPL buffer is the the buffer that stores outgoing inband replies (messages). Actual allocation happens when the sys.buffalloc method is used. The socket is unable to send inband replies if its RPL buffer has 0 capacity.

Unlike for TX or RX buffers there is no property to read out actual RPL buffer capacity in bytes. This capacity can be calculated as num_pages*256-X (or =0 when num_pages=0), where "num_pages" is the number of buffer pages that was GRANTED through the sock.rplbuffrq. "-X" is because a number of bytes is needed for internal buffer variables. X=17 bytes on 16-bit platforms and 33 bytes on 32-bit platforms. Platform type is specified in your platform documentation.

Buffer allocation will not work if the socket to which this buffer belongs is not idle (sock.statesimple is not at 0- PL_SSTS_CLOSED) at the time when sys.buffalloc executes. You can only change buffer sizes of sockets that are idle.

The RPL buffer is only required when inband commands are enabled (sock.inbandcommands= 1- YES).

 

Older devices had smaller RAM sizes, so the numpages argument and the value returned by the method were of the byte type. The maximum possible number of pages, therefore, could not exceed 255. On newer devices with larger RAM capacities this method takes and returns word values. Inspect the method's declaration on the platform you are using to make sure you know the data type it employs. For the time being, the maximum number of pages that can be allocated for the RX buffer is still limited to 255. This limitation will be removed in the future releases of TiOS.