aboutsummaryrefslogtreecommitdiffstats
path: root/govpp.go
diff options
context:
space:
mode:
authorRastislav Szabo <raszabo@cisco.com>2017-05-25 13:47:43 +0200
committerRastislav Szabo <raszabo@cisco.com>2017-05-25 13:54:13 +0200
commit2d07847237e754d9050f06f565baa430c70ed937 (patch)
tree80588aeec912e95fa21b51520bbd527eb87f455b /govpp.go
parentc38cb25d746736f062ee16e87f553c8a4ec5fced (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.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/govpp.go b/govpp.go
index 5d3ed7f..6f0cc2e 100644
--- a/govpp.go
+++ b/govpp.go
@@ -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