RIC:1060: Change in PTL
[ric-plt/xapp-frame.git] / pkg / xapp / types.go
1 /*
2 ==================================================================================
3   Copyright (c) 2019 AT&T Intellectual Property.
4   Copyright (c) 2019 Nokia
5
6    Licensed under the Apache License, Version 2.0 (the "License");
7    you may not use this file except in compliance with the License.
8    You may obtain a copy of the License at
9
10        http://www.apache.org/licenses/LICENSE-2.0
11
12    Unless required by applicable law or agreed to in writing, software
13    distributed under the License is distributed on an "AS IS" BASIS,
14    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15    See the License for the specific language governing permissions and
16    limitations under the License.
17 ==================================================================================
18 */
19 package xapp
20
21 import (
22         "sync"
23         "unsafe"
24 )
25
26 type RMRClient struct {
27         contextMux        sync.Mutex
28         context           unsafe.Pointer
29         ready             int
30         wg                sync.WaitGroup
31         mux               sync.Mutex
32         statc             map[string]Counter
33         statg             map[string]Gauge
34         consumers         []MessageConsumer
35         readyCb           ReadyCB
36         readyCbParams     interface{}
37         maxRetryOnFailure int
38 }
39
40 type RMRMeid struct {
41         PlmnID  string
42         EnbID   string
43         RanName string
44 }
45
46 func (meid *RMRMeid) String() string {
47         str := "meid("
48         pad := ""
49         if len(meid.PlmnID) > 0 {
50                 str += pad + "PlmnID=" + meid.PlmnID
51                 pad = " "
52         }
53         if len(meid.EnbID) > 0 {
54                 str += pad + "EnbID=" + meid.EnbID
55                 pad = " "
56         }
57         if len(meid.RanName) > 0 {
58                 str += pad + "RanName=" + meid.RanName
59                 pad = " "
60         }
61         str += ")"
62         return str
63 }
64
65 type MessageConsumerFunc func(*RMRParams) error
66
67 func (fn MessageConsumerFunc) Consume(params *RMRParams) error {
68         return fn(params)
69 }
70
71 type MessageConsumer interface {
72         Consume(params *RMRParams) error
73 }
74
75 type PortData struct {
76         Name              string
77         Port              int
78         MaxSize           int
79         ThreadType        int
80         LowLatency        bool
81         FastAck           bool
82         Policies          []int
83         MaxRetryOnFailure int
84 }
85
86 type SymptomDataParams struct {
87         Timeout       uint64
88         FromTime      uint64
89         ToTime        uint64
90         importantOnly bool
91 }
92
93 // @todo: read these from config or somewhere else
94 const (
95         SERVICE_HTTP    = "SERVICE_%s_%s_HTTP_PORT"
96         SERVICE_RMR     = "SERVICE_%s_%s_RMR_PORT"
97         CONFIG_PATH     = "/ric/v1/config"
98         REGISTER_PATH   = "http://service-%s-appmgr-http.%s:8080/ric/v1/register"
99         DEREGISTER_PATH = "http://service-%s-appmgr-http.%s:8080/ric/v1/deregister"
100         DEFAULT_PLT_NS  = "ricplt"
101         DEFAULT_XAPP_NS = "ricxapp"
102 )