Merge "Get alarm-list implementation.[Issue-Id: ODUHIGH-230]"
[o-du/l2.git] / src / o1 / O1_main.cpp
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2020] [HCL Technologies Ltd.]                               #
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
19 /* This file contains O1 main. 
20    Starts the Netopeer and TCP server
21 */
22
23 #include "NetconfManager.hpp"
24 #include "TcpServer.hpp"
25 #include <signal.h>
26
27 /********************************************************************** 
28    Description : Main function. Start of O1 module.
29    Params[In]  : None 
30    Return      : EXIT_SUCCESS 
31                : EXIT_FAILURE
32 **********************************************************************/
33
34 int main(int argc, char **argv)
35 {
36    TcpServer tcpServer(O1::TCP_PORT);
37    /*SIGINT handling*/
38    //signal(SIGINT,  NetconfManager::sigintHandler);
39    /* Start Netconf server and subscribe to yang modules */
40    try
41    {
42       NetconfManager::instancePtr()->init();
43       O1_LOG("\nO1 O1_main : NetconfManager init successful");
44
45    }
46    catch( const std::exception& e ) 
47    {
48       O1_LOG("\nO1 O1_main : Exception : %s", e.what());
49       return EXIT_FAILURE;
50    }
51    /* Start the TCP Server to listen for alarm messages */
52    if( tcpServer.start() )
53    {
54       O1_LOG("\nO1 O1_main : TCP server started\n");
55       /* Wait for the TcpServer thread to end*/
56       tcpServer.wait();
57    }
58    else
59    {
60       O1_LOG("\nO1 O1_main : Failed to start TCP server");
61       return EXIT_FAILURE;
62    }
63    return EXIT_SUCCESS;
64 }
65
66 /**********************************************************************
67          End of file
68 **********************************************************************/