1 /* ****************************************************************
3 * Copyright 2015 Samsung Electronics All Rights Reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 ******************************************************************/
33 #include "ocpayload.h"
37 #define TAG "ocrouting"
40 static GMainLoop *g_mainloop = NULL;
43 /* SIGINT handler: set gQuitFlag to 1 for graceful termination */
44 void handleSigInt(int signum)
52 void *GMainLoopThread(void *param)
57 if (OCProcess() != OC_STACK_OK)
59 cout << "\nOCStack process error";
62 #ifndef ROUTING_GATEWAY
69 g_main_loop_quit(g_mainloop);
76 cout << "\nOCRouting sample is starting...";
77 g_mainloop = g_main_loop_new(NULL, FALSE);
80 printf("g_main_loop_new failed\n");
84 if (OCInit(NULL, 0, OC_GATEWAY) != OC_STACK_OK)
86 cout << "\nOCStack init error";
90 // Break from loop with Ctrl-C
91 cout << "\nEntering ocrouting main loop...";
93 signal(SIGINT, handleSigInt);
96 int result = pthread_create(&g_thread, NULL, GMainLoopThread, (void *)NULL);
99 printf("pthread_create failed in initialize\n");
103 g_main_loop_run(g_mainloop);
105 cout << "\nExiting ocrouting main loop...";
107 if (OCStop() != OC_STACK_OK)
109 cout << "\nOCStack process error";