diff options
author | Ondrej Fabry <ofabry@cisco.com> | 2018-10-22 14:21:28 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@fd.io> | 2018-10-22 14:21:28 +0000 |
commit | c00356ec332203f353fcd5f5992226940d90da92 (patch) | |
tree | f848f4b40300982c913d17eda3feb52b6ef3c697 /govpp.go | |
parent | 56e997fc27c775790fcce5eda92bb2baee82d881 (diff) | |
parent | 28df7c855784e784fb0e614c1cca0e565a7ef75f (diff) |
Merge "Introduce StatsAPI and it's initial implementation"
Diffstat (limited to 'govpp.go')
-rw-r--r-- | govpp.go | 32 |
1 files changed, 18 insertions, 14 deletions
@@ -20,16 +20,28 @@ import ( "git.fd.io/govpp.git/core" ) -var vppAdapter adapter.VppAdapter // VPP Adapter that will be used in the subsequent Connect calls +var ( + // VPP binary API adapter that will be used in the subsequent Connect calls + vppAdapter adapter.VppAPI +) + +func getVppAdapter(shm string) adapter.VppAPI { + if vppAdapter == nil { + vppAdapter = vppapiclient.NewVppClient(shm) + } + return vppAdapter +} + +// SetVppAdapter sets the adapter that will be used for connections to VPP in the subsequent `Connect` calls. +func SetVppAdapter(a adapter.VppAPI) { + vppAdapter = a +} // 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(shm string) (*core.Connection, error) { - if vppAdapter == nil { - vppAdapter = vppapiclient.NewVppAdapter(shm) - } - return core.Connect(vppAdapter) + return core.Connect(getVppAdapter(shm)) } // AsyncConnect asynchronously connects the govpp core to VPP either using the default VPP Adapter, @@ -38,13 +50,5 @@ func Connect(shm string) (*core.Connection, error) { // supposed to watch the returned ConnectionState channel for Connected/Disconnected events. // In case of disconnect, the library will asynchronously try to reconnect. func AsyncConnect(shm string) (*core.Connection, chan core.ConnectionEvent, error) { - if vppAdapter == nil { - vppAdapter = vppapiclient.NewVppAdapter(shm) - } - return core.AsyncConnect(vppAdapter) + return core.AsyncConnect(getVppAdapter(shm)) } - -// SetAdapter sets the adapter that will be used for connections to VPP in the subsequent `Connect` calls. -func SetAdapter(ad adapter.VppAdapter) { - vppAdapter = ad -}
\ No newline at end of file |