RIC:1060: Change in PTL
[ric-plt/nodeb-rnib.git] / creader / rNibReader_c.go
index 9ac32ff..74521d7 100644 (file)
@@ -1,8 +1,28 @@
+//
+// Copyright 2019 AT&T Intellectual Property
+// Copyright 2019 Nokia
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//  This source code is part of the near-RT RIC (RAN Intelligent Controller)
+//  platform project (RICP).
+
 package main
 
 import (
        "encoding/json"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
+       "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
        "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
        "gerrit.o-ran-sc.org/r/ric-plt/sdlgo"
        "unsafe"
@@ -15,35 +35,40 @@ var sdl common.ISdlInstance
 var instance reader.RNibReader
 
 type response struct {
-       GnbList []string        `json:"gnb_list"`
+       GnbList  []*entities.NbIdentity `json:"gnb_list"`
+       ErrorMsg string                 `json:"error_msg,omitempty"`
 }
 
-//export open
-func open() {
+//export openSdl
+func openSdl() {
        sdl = sdlgo.NewSdlInstance("e2Manager", sdlgo.NewDatabase())
        instance = reader.GetRNibReader(sdl)
 }
 
-//export close
-func close() {
+//export closeSdl
+func closeSdl() {
        _ = sdl.Close()
 }
 
 //export getListGnbIds
 func getListGnbIds() unsafe.Pointer {
        listGnbIds, err := instance.GetListGnbIds()
-       if err != nil || listGnbIds == nil{
-               return nil
-       }
+       res := &response{}
+
+       if err != nil {
+               res.ErrorMsg = err.Error()
 
-       var gnbList []string
-       for _, value := range listGnbIds {
-               gnbList = append(gnbList, value.InventoryName)
+               return createCBytesResponse(res)
        }
-       res := &response{
-               GnbList:gnbList,
+
+       if listGnbIds != nil {
+               res.GnbList = listGnbIds
        }
 
+       return createCBytesResponse(res)
+}
+
+func createCBytesResponse(res *response) unsafe.Pointer {
        byteResponse, err := json.Marshal(res)
        if err != nil {
                return nil
@@ -52,7 +77,4 @@ func getListGnbIds() unsafe.Pointer {
        return C.CBytes(byteResponse)
 }
 
-
-
-func main() {
-}
\ No newline at end of file
+func main() {}