+func (r *RICAlarm) sendAlarmUpdateReqWithHttp(payload []byte) error {
+ url := fmt.Sprintf("%s/%s", r.managerUrl, "ric/v1/alarms")
+ resp, err := http.Post(url, "application/json", bytes.NewReader(payload))
+ if err != nil || resp == nil {
+ return fmt.Errorf("HttpError=Post failed with error: %v", err)
+ }
+ log.Printf("Alarm posted to %s [status=%d]", url, resp.StatusCode)
+ return nil
+}
+
+func (r *RICAlarm) sendAlarmUpdateReqWithRmr(payload []byte) error {
+ if r.rmrCtx == nil || !r.rmrReady {
+ return fmt.Errorf("RmrError=rmr not ready")
+ }
+ datap := C.CBytes(payload)
+ defer C.free(datap)
+ meid := C.CString("ric")
+ defer C.free(unsafe.Pointer(meid))
+
+ if state := C.rmrSend(r.rmrCtx, RIC_ALARM_UPDATE, datap, C.int(len(payload)), meid); state != C.RMR_OK {
+ return errors.New(fmt.Sprintf("RmrError=rmrSend failed with error: %d", state))
+ }
+ log.Printf("Alarm sent via rmr to %s", r.rmrEndpoint)
+ return nil
+}
+