Init basesystem source codes.
[staging/basesystem.git] / video_in_hal / nsframework / framework_unified / client / NS_MessageQueue / include / ns_mq_internal.h
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 ///////////////////////////////////////////////////////////////////////////////
18 /// \ingroup  tag_NSMessageQueue
19 /// \brief    API Header for Logger.
20 ///
21 /// Declares the external APIs to Logger.
22 ///
23 ///////////////////////////////////////////////////////////////////////////////
24
25 #ifndef FRAMEWORK_UNIFIED_CLIENT_NS_MESSAGEQUEUE_INCLUDE_NS_MQ_INTERNAL_H_
26 #define FRAMEWORK_UNIFIED_CLIENT_NS_MESSAGEQUEUE_INCLUDE_NS_MQ_INTERNAL_H_
27
28 /////////////////////////////////////////
29 #include <pthread.h>
30 /////////////////////////////////////////
31
32
33 /// \brief Struct that defines internal handle object
34 typedef struct tQHandle {
35   UI_32   check_code;
36   SI_32   fd;
37   PSTR    q_name;
38   EQType    q_type;
39   void    *sendbuf;
40
41   /////////////////////////////////////////
42   pthread_t threadid;  // thread id of child thread (may be NULL)
43   /////////////////////////////////////////
44 } SQhandle;
45
46 #define MQ_CHECK_CODE (0xC0D1F1ED)
47
48 static inline BOOL mqCheckValidHandle(HANDLE hMessage) {
49   if (INVALID_HANDLE != hMessage) {
50     SQhandle *sndHndl = (SQhandle *)hMessage;  // NOLINT  (readability/nolint)
51     if (sndHndl->check_code == MQ_CHECK_CODE) {
52       return TRUE;
53     }
54   }
55   return FALSE;
56 }
57
58 #endif  // FRAMEWORK_UNIFIED_CLIENT_NS_MESSAGEQUEUE_INCLUDE_NS_MQ_INTERNAL_H_