Difference between revisions of "GeometryServiceNetworkProtocol"

From BRL-CAD
(removed pkg)
(Remove references to pkg)
 
(One intermediate revision by the same user not shown)
Line 12: Line 12:
 
----
 
----
  
=GSNet Msg (Visual) Breakdown=
 
[[Image:GSNetMsgBreakdown.png|520x373px]]
 
  
----
 
  
 
=GSNet Msg Description=
 
=GSNet Msg Description=
 
==Header==
 
==Header==
The header of the GSNet Msg contains the information necessary for quickly determining authenticity, type and length.  Geometry Service's network library, libNetwork, is built upon BRL-CAD's networking library: libPKG.  This causes the header byte layout to look like this:
+
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 />
 
<br /><br />
 
   
 
   
Line 48: Line 45:
 
|}
 
|}
  
 
 
 
===GSNet Part===
 
  
 
* '''MsgType:''' 2 byte integer value that tells what type of message this is.
 
* '''MsgType:''' 2 byte integer value that tells what type of message this is.

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.