Fix encoding for float64 and generate conversion for Timestamp
[govpp.git] / examples / binapi-types / binapi_types.go
index 849ad1b..2dbaa3e 100644 (file)
@@ -18,36 +18,42 @@ package main
 import (
        "fmt"
        "log"
+       "time"
 
        "git.fd.io/govpp.git/binapi/ethernet_types"
        "git.fd.io/govpp.git/binapi/ip"
        "git.fd.io/govpp.git/binapi/ip_types"
+       "git.fd.io/govpp.git/binapi/vpe_types"
        "git.fd.io/govpp.git/codec"
 )
 
 func init() {
-       log.SetFlags(0)
 }
 
 func main() {
-       addressUnionExample()
-       ipAddressExample()
+       log.SetFlags(0)
+
+       usageUnion()
+       usageAddress()
 
-       // convert IP from string form into Address type containing union
-       convertIP("10.10.1.1")
-       convertIP("ff80::1")
+       // convert IP address in string form into ip_types.Address
+       convertIPAddress("10.10.1.1")
+       convertIPAddress("ff80::1")
 
-       // convert IP from string form into Prefix type
+       // convert IP address / CIDR in string form into ip_types.Prefix
        convertIPPrefix("20.10.1.1/24")
        convertIPPrefix("21.10.1.1")
        convertIPPrefix("ff90::1/64")
        convertIPPrefix("ff91::1")
 
-       // convert MAC address from string into MacAddress
+       // convert MAC address in string form into ethernet_types.MacAddress
        convertToMacAddress("00:10:ab:4f:00:01")
+
+       // convert time.Time into vpe_types.Timestamp
+       convertToTimestamp(time.Now())
 }
 
-func addressUnionExample() {
+func usageUnion() {
        var union ip_types.AddressUnion
 
        // initialize union using constructors
@@ -63,21 +69,17 @@ func addressUnionExample() {
        union.SetIP6(ip6)
 }
 
-func ipAddressExample() {
+func usageAddress() {
        // parse string into IP address
-       addrIP4, err := ip_types.ParseAddress("192.168.1.10")
+       addr, err := ip_types.ParseAddress("192.168.1.10")
        if err != nil {
                panic(err)
        }
-       /*addrIP6, err := ip_types.ParseAddress("ff:2::2")
-       if err != nil {
-               panic(err)
-       }*/
 
        var msg = ip.IPPuntRedirect{
                IsAdd: true,
                Punt: ip.PuntRedirect{
-                       Nh: addrIP4,
+                       Nh: addr,
                },
        }
 
@@ -103,7 +105,7 @@ func ipAddressExample() {
        }
 }
 
-func convertIP(ip string) {
+func convertIPAddress(ip string) {
        addr, err := ip_types.ParseAddress(ip)
        if err != nil {
                log.Printf("error converting IP to Address: %v", err)
@@ -135,3 +137,10 @@ func convertToMacAddress(mac string) {
 
        fmt.Printf("MacAddress converted back to string %#v to: %s\n", parsedMac, parsedMac)
 }
+
+func convertToTimestamp(t time.Time) {
+       timestamp := vpe_types.NewTimestamp(t)
+       fmt.Printf("converted time %v to: %#v\n", t, timestamp)
+
+       fmt.Printf("Timestamp converted back to string %#v to: %s\n", timestamp, timestamp)
+}