Difference between revisions of "GeometryServiceNetworkProtocol"

From BRL-CAD
(New page: {{DesignDocument}} List of NetMsgTypes. List of Common NetMsg Exchanges)
 
(Remove references to pkg)
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DesignDocument}}
+
[[category:Geometry Service]]
 +
[[category:GSNet Protocol]]
 +
----
  
List of [[NetMsgTypes]].
+
{|
 +
|width=344 valign=top|[[Image:GSNet_Symbol.png|left|top|GSNet]]
 +
|The Geometry Service Network (GSNet) Protocol is a TCP/IP based protocol designed to facilitate socketed communications between Geometry Service Nodes on a network.  A Geometry Service Node is defined as any softwares that supports communication via the GSNet Protocol.
 +
<br />
 +
__TOC__
 +
|}
 +
 
 +
----
 +
 
 +
 
 +
 
 +
=GSNet Msg Description=
 +
==Header==
 +
The header of the GSNet Msg contains the information necessary for quickly determining authenticity, type and length. Geometry Service's network library, libNetwork, has a header byte layout that looks like this:
 +
<br /><br />
 
   
 
   
List of [[Common NetMsg Exchanges]]
+
{|style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #666699; padding: 0;"
 +
|style="border: 1px solid #666699; background-color: #666699; color: #FFFFFF; width: 180px;"|'''Element'''
 +
|style="border: 1px solid #666699; background-color: #666699; color: #FFFFFF; width: 180px;"|'''Length'''
 +
|style="border: 1px solid #666699; background-color: #666699; color: #FFFFFF; width: 180px;"|'''Value'''
 +
|-
 +
|style="border: 1px solid #666699;"|MsgType
 +
|style="border: 1px solid #666699;"|int16 (2 bytes)
 +
|style="border: 1px solid #666699;"|
 +
|-
 +
|style="border: 1px solid #666699;"|MessageLength
 +
|style="border: 1px solid #666699;"|int32 (4 bytes)
 +
|style="border: 1px solid #666699;"|Does *NOT* include the type or length, so is packet size - 6
 +
|-
 +
|style="border: 1px solid #666699;"|MessageUUID
 +
|style="border: 1px solid #666699;"|[[GSNet_String|String (Variable bytes)]]
 +
|style="border: 1px solid #666699;"|
 +
|-
 +
|style="border: 1px solid #666699;"|HasRegardingUUID
 +
|style="border: 1px solid #666699;"|Boolean (1 byte)
 +
|style="border: 1px solid #666699;"|
 +
|-
 +
|style="border: 1px solid #666699;"|RegardingMessageUUID
 +
|style="border: 1px solid #666699;"|[[GSNet_String|String (Variable bytes)]]
 +
|style="border: 1px solid #666699;"|
 +
|}
 +
 
 +
 
 +
* '''MsgType:''' 2 byte integer value that tells what type of message this is.
 +
* '''MessageUUID:''' Standard UUID for this message.  Currently stored as a string.
 +
* '''HasRegardingUUID:''' Boolean flag that indicates whether there is a Regarding UUID or not.
 +
* '''RegardingMessageUUID:''' Standard UUID that indicates this NetMsg is a response to another NetMsg.
 +
 
 +
----
 +
 
 +
==Data==
 +
----
 +
The Data load of a NetMsg is, obivously, the important and unique part.  Data Loads can be as small as zero (in the case of a TypeOnlyMsg) or many kilobytes long.
 +
 
 +
Here is a list of [[NetMsgTypes|NetMsg types]] and here is a list of [[Common NetMsg Exchanges]].

Latest revision as of 15:12, 4 May 2011


GSNet
The Geometry Service Network (GSNet) Protocol is a TCP/IP based protocol designed to facilitate socketed communications between Geometry Service Nodes on a network. A Geometry Service Node is defined as any softwares that supports communication via the GSNet Protocol.




GSNet Msg Description[edit]

Header[edit]

The header of the GSNet Msg contains the information necessary for quickly determining authenticity, type and length. Geometry Service's network library, libNetwork, has a header byte layout that looks like this:

Element Length Value
MsgType int16 (2 bytes)
MessageLength int32 (4 bytes) Does *NOT* include the type or length, so is packet size - 6
MessageUUID String (Variable bytes)
HasRegardingUUID Boolean (1 byte)
RegardingMessageUUID String (Variable bytes)


  • MsgType: 2 byte integer value that tells what type of message this is.
  • MessageUUID: Standard UUID for this message. Currently stored as a string.
  • HasRegardingUUID: Boolean flag that indicates whether there is a Regarding UUID or not.
  • RegardingMessageUUID: Standard UUID that indicates this NetMsg is a response to another NetMsg.

Data[edit]


The Data load of a NetMsg is, obivously, the important and unique part. Data Loads can be as small as zero (in the case of a TypeOnlyMsg) or many kilobytes long.

Here is a list of NetMsg types and here is a list of Common NetMsg Exchanges.