Added documentation
This commit is contained in:
parent
ee8173ea8b
commit
4dde992cfc
44
ICCC/Doc.go
44
ICCC/Doc.go
@ -1,4 +1,46 @@
|
||||
/*
|
||||
This is the "[I]nter-[C]omponent [C]ommunication [C]hannel"
|
||||
This is the "[I]nter-[C]omponent [C]ommunication [C]hannel". It is a minimal
|
||||
messaging service to connect different servers or even different parts of
|
||||
huge systems across programming languages.
|
||||
|
||||
The basis idea is to create such messaging service on top of HTTP, because
|
||||
every programming language is able to process HTTP. Therefore, all messages
|
||||
are transformed to HTTP form values (with URL encoding).
|
||||
|
||||
To be able to marshal / parse the data back to objects, some additional
|
||||
information is added:
|
||||
|
||||
Example 01:
|
||||
name=str:Surname
|
||||
value=Sommer
|
||||
|
||||
The HTTP form name is 'str:Surname' and the value is 'Sommer'. The 'str' is
|
||||
the indicator for the data type, in this case it is a string.
|
||||
|
||||
Known data types are:
|
||||
* str := string
|
||||
* int := 64 bit integer (means for some languages long, e.g. .NET/C#)
|
||||
* f64 := 64 bit float (means for some languages double, e.g. .NET/C#)
|
||||
* bool := boolean
|
||||
* ui8 := 8 bit unsigned integer i.e. a byte
|
||||
* ui8[] := byte array
|
||||
* int[] := 64 bit integer array
|
||||
* bool[] := boolean array
|
||||
* str[] := string array
|
||||
* f64[] := 64 bit float array
|
||||
|
||||
Formatting of the corresponding values (each value is a string => HTTP). Plase note:
|
||||
For the arrays, the name will repeated for each value.
|
||||
* str := the plain UTF8 string
|
||||
* int := the integer e.g. '13894612'
|
||||
* f64 := the float with nine digits e.g. 9.48 gets '9.480000000'
|
||||
* bool := 'true' or 'false' (lower case)
|
||||
* ui8 := the byte as hexadecimal string e.g. 255 gets 'ff'
|
||||
* ui8[] := the bytes as hexdecimal strings e.g. 0 255 0 gets ui8[]:name:00 ui8[]:name:ff ui8[]:name:00
|
||||
* int[] := 64 bit integer array e.g. 1 2 gets int[]:name:1 int[]:name:2
|
||||
* bool[] := a boolean array e.g. true true gets bool[]:name:true bool[]:name:true
|
||||
* str[] := string array e.g. 'a' 'abc' gets str[]:name:a str[]:name:abc
|
||||
* f64[] := 64 bit float array e.g. 1.1 1.2 gets f64[]:name:1.100000000 f64[]:name:1.2000000000
|
||||
|
||||
*/
|
||||
package ICCC
|
||||
|
Loading…
Reference in New Issue
Block a user