diff options
author | Rastislav Szabo <raszabo@cisco.com> | 2017-05-25 13:47:43 +0200 |
---|---|---|
committer | Rastislav Szabo <raszabo@cisco.com> | 2017-05-25 13:54:13 +0200 |
commit | 2d07847237e754d9050f06f565baa430c70ed937 (patch) | |
tree | 80588aeec912e95fa21b51520bbd527eb87f455b /govpp.go | |
parent | c38cb25d746736f062ee16e87f553c8a4ec5fced (diff) |
added async connect API, new structure of examples
Change-Id: Iab9bce174596c30998981e02b7030c248c423384
Signed-off-by: Rastislav Szabo <raszabo@cisco.com>
Diffstat (limited to 'govpp.go')
-rw-r--r-- | govpp.go | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -24,6 +24,7 @@ var vppAdapter adapter.VppAdapter // VPP Adapter that will be used in the subseq // Connect connects the govpp core to VPP either using the default VPP Adapter, or using the adapter previously // set by SetAdapter (useful mostly just for unit/integration tests with mocked VPP adapter). +// This call blocks until VPP is connected, or an error occurs. Only one connection attempt will be performed. func Connect() (*core.Connection, error) { if vppAdapter == nil { vppAdapter = vppapiclient.NewVppAdapter() @@ -31,6 +32,18 @@ func Connect() (*core.Connection, error) { return core.Connect(vppAdapter) } +// AsyncConnect asynchronously connects the govpp core to VPP either using the default VPP Adapter, +// or using the adapter previously set by SetAdapter. +// This call does not block until connection is established, it returns immediately. The caller is +// supposed to watch the returned ConnectionState channel for Connected/Disconnected events. +// In case of disconnect, the library will asynchronously try to reconnect. +func AsyncConnect() (*core.Connection, chan core.ConnectionEvent, error) { + if vppAdapter == nil { + vppAdapter = vppapiclient.NewVppAdapter() + } + return core.AsyncConnect(vppAdapter) +} + // SetAdapter sets the adapter that will be used for connections to VPP in the subsequent `Connect` calls. func SetAdapter(ad adapter.VppAdapter) { vppAdapter = ad |