Difference between revisions of "GeometryServiceNetworkProtocol"
From BRL-CAD
(Specifics about the libPKG header implementation) |
(Remove references to pkg) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 12: | Line 12: | ||
---- | ---- | ||
− | |||
− | |||
− | |||
− | + | =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, | + | 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 /> | ||
− | {| | + | {|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 |
|- | |- | ||
− | |MessageUUID | + | |style="border: 1px solid #666699;"|MessageUUID |
− | |[[GSNet_String|String (Variable bytes)]] | + | |style="border: 1px solid #666699;"|[[GSNet_String|String (Variable bytes)]] |
− | | | + | |style="border: 1px solid #666699;"| |
|- | |- | ||
− | |HasRegardingUUID | + | |style="border: 1px solid #666699;"|HasRegardingUUID |
− | |Boolean (1 byte) | + | |style="border: 1px solid #666699;"|Boolean (1 byte) |
− | | | + | |style="border: 1px solid #666699;"| |
|- | |- | ||
− | |RegardingMessageUUID | + | |style="border: 1px solid #666699;"|RegardingMessageUUID |
− | |[[GSNet_String|String (Variable bytes)]] | + | |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
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.
Contents |
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.