RICPLT-2707 - Create RNIB reader in C
[ric-plt/nodeb-rnib.git] / creader / rNibReader_c.go
index 9ac32ff..3ab4d49 100644 (file)
@@ -15,7 +15,8 @@ var sdl common.ISdlInstance
 var instance reader.RNibReader
 
 type response struct {
-       GnbList []string        `json:"gnb_list"`
+       GnbList  []string `json:"gnb_list"`
+       ErrorMsg string   `json:"error_msg,omitempty"`
 }
 
 //export open
@@ -32,18 +33,24 @@ func close() {
 //export getListGnbIds
 func getListGnbIds() unsafe.Pointer {
        listGnbIds, err := instance.GetListGnbIds()
-       if err != nil || listGnbIds == nil{
-               return nil
+       res := &response{
+               GnbList: []string{},
        }
 
-       var gnbList []string
-       for _, value := range listGnbIds {
-               gnbList = append(gnbList, value.InventoryName)
+       if err != nil {
+               res.ErrorMsg = err.Error()
+
+               return createCBytesResponse(res)
        }
-       res := &response{
-               GnbList:gnbList,
+
+       for _, value := range listGnbIds {
+               res.GnbList = append(res.GnbList, value.InventoryName)
        }
 
+       return createCBytesResponse(res)
+}
+
+func createCBytesResponse(res *response) unsafe.Pointer {
        byteResponse, err := json.Marshal(res)
        if err != nil {
                return nil
@@ -52,7 +59,6 @@ func getListGnbIds() unsafe.Pointer {
        return C.CBytes(byteResponse)
 }
 
-
-
 func main() {
-}
\ No newline at end of file
+
+}