[RICPLT-1854] Refactor X2/ENDC Setup/Setup Failure Response
[ric-plt/e2mgr.git] / E2Manager / sessions / e2session.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 package sessions
19
20 import "time"
21 import "e2mgr/models"
22 /*
23  * Container for session data
24  * Note:
25  * - If this is the only item in the session data, we should eliminate this session manager
26  *   and just send the start time as part of the xaction field in the RMR message.
27  */
28 type E2SessionDetails struct {
29         SessionStart time.Time
30         Request *models.RequestDetails
31 }
32
33 /*
34  * Map of session id to session details.
35  * Notes:
36  * - Since the transaction id is the CellId, there is no
37  *   need to delete the entry when a response is received nor
38  *   provide a mechanism for removing stale entries (no response received).
39  *   Having said that, deleting the entry on a successful flow may still be a good idea
40  *   in order to avoid pinning large amount of memory (help the GC).
41  *
42  * TODO:
43  *  - Synchronize access.
44  */
45 type E2Sessions map[string]E2SessionDetails