diff options
Diffstat (limited to 'nsframework/framework_unified/client/include/native_service/ns_message_center_if.h')
-rwxr-xr-x | nsframework/framework_unified/client/include/native_service/ns_message_center_if.h | 1536 |
1 files changed, 0 insertions, 1536 deletions
diff --git a/nsframework/framework_unified/client/include/native_service/ns_message_center_if.h b/nsframework/framework_unified/client/include/native_service/ns_message_center_if.h deleted file mode 100755 index cfd350f..0000000 --- a/nsframework/framework_unified/client/include/native_service/ns_message_center_if.h +++ /dev/null @@ -1,1536 +0,0 @@ -/* - * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @file - * @brief \~english APIs to Open/Close and Send/Receive on message queues and shared memory. - * - */ -/** @addtogroup BaseSystem - * @{ - */ -/** @addtogroup native_service - * @ingroup BaseSystem - * @{ - */ -/** @addtogroup framework_unified - * @ingroup native_service - * @{ - */ -/** @addtogroup native - * @ingroup framework_unified - * @{ - */ -#ifndef __NATIVESERVICES_MESSAGE_CENTER_IF_H__ // NOLINT (build/header_guard) -#define __NATIVESERVICES_MESSAGE_CENTER_IF_H__ - -#include <native_service/frameworkunified_types.h> -#include <native_service/ns_shared_mem_if.h> - - -#ifdef __cplusplus -extern "C" { -#endif - - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McOpenReceiver -/// \~english @par Brief -/// Opens a handle to a Receiver message queue. -/// \~english @param[in] name -/// PCSTR - name of the message queue you want to receiver messages on -/// \~english @retval Handle to a recevier's message queue (If INVALID_HANDLE is returned its an error) -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size of message queue name string specified by argument(name) is larger then 20byte. [NULL] -/// - Message queue name specified by argument(name) is NULL. [NULL] -/// - Size of name normalised from argument(name) for message queue is larger then 15byte[16byte when starts with -/// "/"]. [NULL] -/// - Failed to create(malloc) buffer to storage name normalised from argument(name) for message queue. [NULL] -/// - Failed to get(mq_open) message queue. [NULL] -/// - Failed to create(malloc) buffer to storage management information of message queue. [NULL] -/// \~english @par Detail -/// Create a message queue whose name is specified by argument, and return a handle for receiving message. \n -/// The message queue created in this API is used to receive message, but not to send message. \n -/// You can use message queue in McOpenSender to send message. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McReceive, McClose -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McOpenReceiver(PCSTR name); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McOpenReceiverNotBlocked -/// \~english @par Brief -/// Opens a handle to a Receiver message queue. Operations on this queue are -/// non-blocking if queue is empty or full. -/// \~english @param[in] name -/// PCSTR - name of the message queue you want to receiver messages on -/// \~english @retval Handle to a recevier's message queue (If INVALID_HANDLE is returned its an error) -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size of message queue name string specified by argument(name) is larger then 20byte. [NULL] -/// - Message queue name specified by argument(name) is NULL. [NULL] -/// - Size of name normalised from argument(name) for message queue is larger then 15byte[16byte when starts with -/// "/"]. [NULL] -/// - Failed to create(malloc) buffer to storage name normalised from argument(name) for message queue. [NULL] -/// - Failed to get(mq_open) message queue. [NULL] -/// - Failed to create(malloc) buffer to storage management information of message queue. [NULL] -/// \~english @par Detail -/// Create a message queue whose name is specified by argument, and return a handle for receiving message. \n -/// The message queue created in this API is used to receive message, but not to send message. \n -/// You can use message queue in McOpenSender to send message. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McReceive, McClose, McOpenSenderNotBlocked -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McOpenReceiverNotBlocked(PCSTR name); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McOpenSyncReceiver -/// \~english @par Brief -/// Opens a handle to a response Receiver message queue. -/// \~english @param[in] name -/// PCSTR - name of the message queue you want to receiver messages on -/// \~english @retval Handle to a recevier's message queue (If INVALID_HANDLE is returned its an error) -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size of message queue name string specified by argument(name) is larger then 20byte. [NULL] -/// - Message queue name specified by argument(name) is NULL. [NULL] -/// - Size of name normalised from argument(name) for message queue(don't start with "/") is larger then 19byte. -/// [NULL] -/// - Size of name normalised from argument(name) for message queue(start with "/") is larger then 20byte. [NULL] -/// - Failed to create(malloc) buffer to storage name normalised from argument(name) for message queue. [NULL] -/// - Failed to get(mq_open) message queue. [NULL] -/// - Failed to create(malloc) buffer to storage management information of message queue. [NULL] -/// \~english @par Detail -/// Create a message queue whose name is specified by argument, and return a handle for receiving message -/// by synchronous communication. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// When the application used the message queue acquired by this API, note the following. -/// - Use McCreateInvokerName to obtain the receive message queue handle to be passed to the parameter name. -/// - It can not be used transmission because it is for reception. -/// McOpenSender must be used for the message queue trasmission. -/// - Cannot be used other than for waiting for response during synchronous communication. -/// (because the maxmum number of messages in the queue is specified as 2) -/// - When a message queue name (name) that has not been normalized is specified, transmission falis unless 18 byte are specified. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McCreateInvokerName, McInvokeSync, McClose -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McOpenSyncReceiver(PCSTR name); - - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McOpenSender -/// \~english @par Brief -/// The opens a handle for sending messages to another message queue. -/// \~english @param[in] name -/// PCSTR - name of the message queue you want to send messages too -/// \~english @retval Handle for sending messages to a queue (If INVALID_HANDLE is returned its an error) -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size of message queue name string specified by argument(name) is larger then 20byte. [NULL] -/// - Message queue name specified by argument(name) is NULL. [NULL] -/// - Size of name normalised from argument(name) for message queue is larger then 15byte[16byte when starts with -/// "/"]. [NULL] -/// - Failed to create(malloc) buffer to storage name normalised from argument(name) for message queue. [NULL] -/// - Failed to get(mq_open) message queue. [NULL] -/// - Failed to create(malloc) buffer to storage management information of message queue. [NULL] -/// \~english @par Detail -/// Create a message queue whose name is specified by argument, and return a handle for sending message. \n -/// The message queue created in this API is used to send message, but not to receive message. \n -/// You can use message queue in McOpenReceiver to receive message. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenReceiver, McSend, McClose -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McOpenSender(PCSTR name); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// The opens a handle for sending messages to another message queue. -/// operations on this queue are non-blocking if queue is empty or full. -/// -/// \param [in] name -/// PCSTR - name of the message queue you want to send messages too -/// -/// \return HANDLE -/// handle - for sending messages to a queue (If INVALID_HANDLE is returned its an error) -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McOpenSenderNotBlocked(PCSTR name); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McOpenSyncSender -/// \~english @par Brief -/// The opens a handle for sending responce to another message queue. -/// \~english @param[in] name -/// PCSTR - name of the message queue you want to send messages too -/// \~english @retval Handle for sending response to a queue (If INVALID_HANDLE is returned its an error) -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size of message queue name string specified by argument(name) is larger then 20byte. [NULL] -/// - Message queue name specified by argument(name) is NULL. [NULL] -/// - Size of name normalised from argument(name) for message queue(don't start with "/") is larger then 19byte. -/// [NULL] -/// - Size of name normalised from argument(name) for message queue(start with "/") is larger then 20byte. [NULL] -/// - Failed to create(malloc) buffer to storage name normalised from argument(name) for message queue. [NULL] -/// - Failed to get(mq_open) message queue. [NULL] -/// - Failed to create(malloc) buffer to storage management information of message queue. [NULL] -/// \~english @par Detail -/// Create a message queue whose name is specified by argument, and return a handle for sending message. \n -/// The message queue created in this API is used to send message, but not to receive message. \n -/// You can use message queue in McOpenReceiver to receive message. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenReceiver, McSend, McClose -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McOpenSyncSender(PCSTR name); - -///////////////////////////////////////// -#include <pthread.h> -HANDLE McOpenSenderChild(PCSTR name, pthread_t childid); -///////////////////////////////////////// - -///////////////////////////////////////// -EFrameworkunifiedStatus McJoinChild(HANDLE hChildApp); -///////////////////////////////////////// - -///////////////////////////////////////// -EFrameworkunifiedStatus McGetChildThreadPriority(HANDLE hChildApp, PSI_32 threadPrio); -///////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McReceive -/// \~english @par Brief -/// Retrieves data from a message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the recvMessage, McOpenRecevier -/// \~english @param[out] source -/// PSTR - app that sent this message -/// \~english @param[out] cmd -/// UI_32* - command message that has been received. -/// \~english @param[in] length -/// UI_32 - length of the data buffer provided -/// \~english @param[out] data -/// PVOID - pointer to the data to be received -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK Success -/// \~english @retval eFrameworkunifiedStatusInvldHandle - Invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldBuf - Invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldQName - Invalid message queue name -/// \~english @retval eFrameworkunifiedStatusInvldParam - Invalid parameter -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF - Invalid File-Descriptor -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR - An interrupt is generated by the system call (signal) -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - Invalid buffer-size -/// \~english @retval eFrameworkunifiedStatusFail - Invalid handle of message queue for receiving message -/// \~english @par Preconditons -/// Message queue(McOpenReceiver etc.) for receiving message is created. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Data buffer specified by argument(data) for receiving message is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Size of data buffer specified by argument(length) for receiving message is 0. [eFrameworkunifiedStatusInvldBuf] -/// - Buffer to storage application name specified by argument(source) for sending message is NULL. -/// [eFrameworkunifiedStatusInvldQName] -/// - Buffer to storage commond ID of protocol on the service specified by argument(cmd) is NULL. -/// [eFrameworkunifiedStatusInvldParam] -/// - Size of application name of sender getted from received message is lager then 20byte. [eFrameworkunifiedStatusInvldBuf] -/// - Handle specified by argument(hMessage) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - HANDLE specified by argument(hMessage) is not appropriate(which is invalid). [eFrameworkunifiedStatusFail] -/// - Message queue type of handle specified by argument(hMessage) is not receiving type. [eFrameworkunifiedStatusFail] -/// - File descriptor for receiving message is invalid. [eFrameworkunifiedStatusErrNoEBADF] -/// - An interrupt is generated by the system call (signal) when receiving message. [eFrameworkunifiedStatusErrNoEINTR] -/// - Size of buffer for receiving message is invalid. [eFrameworkunifiedStatusInvldBufSize] -/// \~english @par Detail -/// Receives data from message queue specified by argument. -/// Sets application of sender(source), commond ID of protocol on the service(cmd), receiving data(data), and -/// return. -/// It will block until getting message from message queue. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// Since data is exchanged only in the message queue, the data size that can be received is up to 4096 bytes. -/// \~english @par -/// The caller must guarantee the allocation of the area for the receive data buffer -/// and the consistency of the sizes set in the arguments. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenReceiver, McSend -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McReceive(HANDLE hMessage, PSTR source, UI_32 *cmd, UI_32 length, PVOID data); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McReceiveWithSession -/// \~english @par Brief -/// Retrieves data from a message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the recvMessage, McOpenRecevier -/// \~english @param[out] source -/// PSTR - app that sent this message -/// \~english @param[out] cmd -/// UI_32* - command message that has been received. -/// \~english @param[out] sessionid -/// UI_32* - Session ID -/// \~english @param[in] length -/// UI_32 - length of the data buffer provided -/// \~english @param[out] data -/// PVOID - pointer to the data to be received -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK Success -/// \~english @retval eFrameworkunifiedStatusInvldHandle - Invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldBuf - Invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldQName - Invalid message queue name -/// \~english @retval eFrameworkunifiedStatusInvldParam - Invalid parameter -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF - Invalid File-Descriptor -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR - An interrupt is generated by the system call (signal) -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - Invalid buffer-size -/// \~english @retval eFrameworkunifiedStatusFail - Invalid handle of message queue for receiving message -/// \~english @par Preconditons -/// Message queue(McOpenReceiver etc.) for receiving message is created. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Buffer to storage session ID specified by argument(sessionid) is NULL. [eFrameworkunifiedStatusInvldParam] -/// - Buffer to storage handle of message queue specified by argument(hMessage) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - Data buffer specified by argument(data) for receiving message is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Size of data buffer specified by argument(length) for receiving message is 0. [eFrameworkunifiedStatusInvldBuf] -/// - Buffer to storage application name specified by argument(source) for sending message is NULL. -/// [eFrameworkunifiedStatusInvldQName] -/// - Buffer to storage commond ID of protocol on the service specified by argument(cmd) is NULL. -/// [eFrameworkunifiedStatusInvldParam] -/// - Size of application name of sender getted from received message is lager then 20byte. [eFrameworkunifiedStatusInvldBuf] -/// - Handle specified by argument(hMessage) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - HANDLE specified by argument(hMessage) is not appropriate(which is invalid). [eFrameworkunifiedStatusFail] -/// - Message queue type of handle specified by argument(hMessage) is not receiving type. [eFrameworkunifiedStatusFail] -/// - File descriptor for receiving message is invalid. [eFrameworkunifiedStatusErrNoEBADF] -/// - An interrupt is generated by the system call (signal) when receiving message. [eFrameworkunifiedStatusErrNoEINTR] -/// - Size of buffer for receiving message is invalid. [eFrameworkunifiedStatusInvldBufSize] -/// \~english @par Detail -/// Receives data from message queue specified by argument.Sets application of sender(source), -/// commond ID of protocol on the service(cmd), receiving data(data), session id(sessionid), and return. -/// It will block until getting message from message queue. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// The caller must guarantee the allocation of the area for the receive data buffer -/// and the consistency of the sizes set in the arguments. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenReceiver, McSendWithSession -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McReceiveWithSession(HANDLE hMessage, PSTR source, UI_32 *cmd, UI_32 *sessionid, - UI_32 length, PVOID data); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetLength -/// \~english @par Brief -/// Get the length of data that needs to be retrieved. -/// \~english @param[in] data -/// PVOID - pointer to the data was received from the McReceive Call -/// \~english @retval UI_32 indicates the number of bytes that in the message -/// \~english @par -/// if return is 0 or less then invalid data was passed. -/// \~english @par Preconditons -/// - Message is received by McReceive and so on. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Data of received message(data) is NULL. [0] -/// \~english @par Detail -/// Return message data length specified by the header of received message. \n -/// Use this data length as the buffer size specified by McGetDataOfSize. -/// \~english @par -/// This API does not distinguish between error and no data. -/// \~english @par -/// The parameter data of this API must be the data obtained from the message queue by McReceive, etc. -/// (Since the data obtained from the message queue incudes header information, -/// this API acquires necessary iformation from the header) -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McReceive, McReceiveWithSession, McGetDataOfSize -//////////////////////////////////////////////////////////////////////////////////////////// -UI_32 McGetLength(PVOID data); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetDataPointer -/// \~english @par Brief -/// Get header address of data from received message. -/// \~english @param[in] data -/// PVOID - received message data -/// \~english @retval PVOID - data address of received message -/// \~english @par Preconditons -/// Message is received by McReceive and so on. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Data of received message(data) is NULL. [NULL] -/// \~english @par Detail -/// Get header address of data from received message excepting the header and system information. -/// \~english @par -/// Please note the following points when using this API for application. -/// - Since the pointer acquired by this API is part of the received message passed as an argument to this API, -/// the pointer must not be released by specifying he address acquired by this API. -/// - The parameter data of this API must be the data obtained from the message queue by McReceive, etc. -/// (Since the data obtained from the message queue incudes header information, -/// this API acquires necessary iformation from the header) -/// - When the next message is received, the internally held data is discarded. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McReceive, McReceiveWithSession, McGetDataOfSize -//////////////////////////////////////////////////////////////////////////////////////////// -PVOID McGetDataPointer(PVOID data); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetDataOfSize -/// \~english @par Brief -/// Get the message data, this may be from a queue or shared memory where the maximum -/// size of the data should not exceed the maximum size passed in. -/// And deletes the data if it is stored in shared memory. -/// \~english @param[in] data -/// PVOID - pointer to the data was received from the McReceive Call -/// \~english @param[in] to -/// PVOID - pointer to the data to be received -/// \~english @param[in] uiSize -/// UI_32 - maximum size of the buffer to which the received data is copied -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK - success -/// \~english @retval eFrameworkunifiedStatusInvldBuf - invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldHandle - invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldHndlType - invalid handle type -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - invalid buffer size -/// \~english @retval eFrameworkunifiedStatusErrOther - invalid shared memory ID specified by received message -/// \~english @par Preconditons -/// - Message is received by McReceive and so on. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size specified by argument(uiSize) is smaller then size of received message data(data). -/// [eFrameworkunifiedStatusInvldBufSize] -/// - Data of received message(data) is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Pointer to buffer(to) which is used to storage data getted from message is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Received message data specified by argument(data) is invalid. [eFrameworkunifiedStatusInvldHndlType] -/// - Failed to access(shm_open/fstat/mmap) the shared memory of received message data(data). -/// [eFrameworkunifiedStatusErrOther] -/// - Shared memory ID specified by received message is invalid. [FrameworkunifiedStatusErrOther] -/// \~english @par Detail -/// Get data from received message excepting the header and system information. -/// Delete data storaged in shared memory after getting the data successfully. -/// \~english @par -/// Please note the following points when using this API for application. -/// - In the case where he received message data becomes 0byte, there is no need to call this API, -/// and be careful not to allocate the memory for the received message data by 0byte. -/// - Error details related to shared memory access canno be detected. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McGetLength -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McGetDataOfSize(PVOID data, PVOID to, UI_32 uiSize); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetDataOfSizeWithSMRetain -/// \~english @par Brief -/// Get the message data, this may be from a queue or shared memory where the maximum -/// size of the data should not exceed the maximum size passed in. -/// Does not delete the data if it is stored in shared memory. -/// \~english @param[in] data -/// PVOID - pointer to the data was received from the McReceive Call -/// \~english @param[in] to -/// PVOID - pointer to the data to be received -/// \~english @param[in] uiSize -/// UI_32 - maximum size of the buffer to which the received data is copied -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK - success -/// \~english @retval eFrameworkunifiedStatusInvldBuf - invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldHandle - invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldHndlType - invalid handle type -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - invalid buffer size -/// \~english @retval eFrameworkunifiedStatusErrOther - invalid shared memory ID specified by received message -/// \~english @par Preconditons -/// - Message is received by McReceive and so on. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Size specified by argument(uiSize) is smaller then size of received message data(data). -/// [eFrameworkunifiedStatusInvldBufSize] -/// - Data of received message(data) is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Pointer to buffer(to) which is used to storage data getted from message is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Received message data specified by argument(data) is invalid. [eFrameworkunifiedStatusInvldHndlType] -/// - Failed to access(shm_open/fstat/mmap) the shared memory of received message data(data). -/// [eFrameworkunifiedStatusErrOther] -/// - Shared memory ID specified by received message is invalid. [FrameworkunifiedStatusErrOther] -/// \~english @par Detail -/// Get data from received message excepting the header and system information. -/// Does not delete data storaged in shared memory after getting the data successfully. -/// \~english @par -/// Please note the following points when using this API for application. -/// - In the case where he received message data becomes 0byte, there is no need to call this API, -/// and be careful not to allocate the memory for the received message data by 0byte. -/// - Error details related to shared memory access canno be detected. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see -/// McReceive -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McGetDataOfSizeWithSMRetain(PVOID data, PVOID to, UI_32 uiSize); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetSysInfoData -/// \~english @par Brief -/// Gets the data from system info buffer from message header. -/// \~english @param[in] data -/// PVOID - pointer to the data was received from the McReceive Call -/// \~english @param[out] to -/// PVOID - pointer to the data to be received -/// \~english @retval EFrameworkunifiedStatus indicates if the close was successfully -/// \~english @retval eFrameworkunifiedStatusOK Success -/// \~english @retval eFrameworkunifiedStatusInvldBuf - Invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldHandle - Invalid handle -/// \~english @par Preconditons -/// Message is received by McReceive and so on. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Data of received message(data) is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Pointer to buffer(to) which is used to storage system info getted from message is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Received message data specified by argument(data) is invalid. [eFrameworkunifiedStatusInvldHndlType] -/// \~english @par Detail -/// Gets system info from received message, and set argument(to) with it. \n -/// If there is no system info in received message,and set argument(to) with "\0". -/// \~english @par -/// Please note the following points when using this API for application. -/// - The parameter data of this API must be the data obtained from the message queue by McReceive, etc. -/// (Since the data obtained from the message queue incudes header information, -/// this API acquires necessary iformation from the header) -/// - Since the system information is 64 bytes (including the null character), the area of 64 byte must be allocated in the argument to fo this API. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McReceive, McReceiveWithSession -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McGetSysInfoData(PVOID data, PVOID to); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McClearData -/// \~english @par Brief -/// Clears the data that may be pending for the a message in shared memory. -/// \~english @param[in] data -/// PVOID - pointer to the data was received from the McReceive Call -/// \~english @retval EFrameworkunifiedStatus indicates if the data was clear successfully -/// \~english @retval eFrameworkunifiedStatusOK - success -/// \~english @retval eFrameworkunifiedStatusInvldBuf - invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldParam - invalid parameter -/// \~english @retval eFrameworkunifiedStatusInvldID - invalid ID -/// \~english @retval eFrameworkunifiedStatusFail - other errors -/// \~english @par Preconditons -/// - Message is received by McReceive and so on. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Data of received message(data) is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Received message data specified by argument(data) is invalid. [eFrameworkunifiedStatusInvldParam] -/// - Shared memory ID in received message is invalid. [eFrameworkunifiedStatusInvldParam] -/// - Shared memory specified by ID in received message does not exist. [eFrameworkunifiedStatusInvldID] -/// - Failed to delete shared memory specified by ID in received message. [eFrameworkunifiedStatusFail] -/// \~english @par Detail -/// Delete data from received message. -/// And delete the received message data if it is stored in shared memory. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McReceive, McReceiveWithSession -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McClearData(PVOID data); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McSend -/// \~english @par Brief -/// Sends data to a message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the send message queue, McOpenSender -/// \~english @param[in] source -/// PCSTR - app (You) the sender -/// \~english @param[in] cmd -/// UI_32 - command id aka the message that's being sent -/// \~english @param[in] length -/// UI_32 - length of the data buffer provided -/// \~english @param[in] data -/// PCVOID - pointer to the data to be sent -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK - Success -/// \~english @retval eFrameworkunifiedStatusNullPointer - NULL pointer specified -/// \~english @retval eFrameworkunifiedStatusInvldHandle - Invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldHndlType - Invalid type of handle -/// \~english @retval eFrameworkunifiedStatusInvldQName - Illegal Message Queue name -/// \~english @retval eFrameworkunifiedStatusMsgQFull - Message queue is full -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF I- nvalid File-Descriptor -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR - An interrupt is generated by the system call (signal) -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - Invalid buffer-size -/// \~english @retval eFrameworkunifiedStatusFail - Some sort of error occurred -/// \~english @retval eFrameworkunifiedStatusErrOther - other errors(Failed to open/allocate shared memory) -/// \~english @retval eFrameworkunifiedStatusInvldParam - Invalid parameter -/// \~english @par Preconditons -/// - Message queue(McOpenSender) for sending message is created. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Message queue name of HANDLE specified in the argument (hService) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - Message queue name of HANDLE specified in the argument (hService) exceeds 20byte. [eFrameworkunifiedStatusInvldHandle] -/// - Message queue HANDLE in HANDLE specified in the argument (hService) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - HANDLE specified in the argument message queue HANDLE in (hService) is not appropriate (which is invalid). -/// [eFrameworkunifiedStatusInvldHandle] -/// - Application name of sender specified in the argument (source) is NULL. [eFrameworkunifiedStatusInvldQName] -/// - Application name of sender specified in the argument (source) exceeds 20byte. [eFrameworkunifiedStatusInvldQName] -/// - Sender data does not match sender data size(size is larger then 0, and data is NULL). [eFrameworkunifiedStatusInvldBuf] -/// - Message queue type of handle specified by argument(hMessage) is not sending type. [eFrameworkunifiedStatusInvldHndlType] -/// - Message queue is full. [eFrameworkunifiedStatusMsgQFull] -/// - File descriptor for sending message is invalid. [eFrameworkunifiedStatusErrNoEBADF] -/// - An interrupt is generated by the system call (signal) when sending message. [eFrameworkunifiedStatusErrNoEINTR] -/// - Size of buffer for sending message is invalid. [eFrameworkunifiedStatusInvldBufSize] -/// - Some errors occur, when sending message. [eFrameworkunifiedStatusFail] -/// - Failed to access(shm_open/ftruncate/mmap) the shared memory for sending message data. [eFrameworkunifiedStatusErrOther] -/// - Sending data size specified in the argument (length) is out of range. [eFrameworkunifiedStatusInvldParam] -/// \~english @par Detail -/// It is an asynchronous API. It provides function to send message by message queue. \n -/// Message queue name created by McOpenSender is the sender. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// Command ID must be within the range PROTOCOL_FRAMEWORKUNIFIED_BASE_CMD(0x10) to PROTOCOL_FRAMEWORKUNIFIED_MAX_CMD(0xFFFFFFF0). -/// Even if a command ID out of range is specified, a message is sent by the command ID (no erro occurs). -/// Command ID out of range are resered ID used for session connection, etc. -/// \~english @par -/// Please note the following points when using this API for application. -/// - The maximum transmission data size (ength) described above is a theoretical value, -/// and the maximum actually usable data size depends on the environment requirements.\n -/// The maximum value is the upper limit of the type (UNIT_MAX) minus the following size.\n -/// Message header section \n -/// - Operation cannot be guaranteed when the size of the allocated area indicated by the address -/// of the pointer (data) to the data buffer does not match the size specified by the size of the data buffer (length). -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McSendWithSession, McReceive -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McSend(HANDLE hMessage, PCSTR source, UI_32 cmd, UI_32 length, PCVOID data); - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McSendWithSession -/// \~english @par Brief -/// Sends data to a message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the send message queue, McOpenSender -/// \~english @param[in] source -/// PCSTR - app (You) the sender -/// \~english @param[in] cmd -/// UI_32 - command id aka the message that's being sent -/// \~english @param[in] length -/// UI_32 - length of the data buffer provided -/// \~english @param[in] data -/// PCVOID - pointer to the data to be sent -/// \~english @param[in] sessionid -/// UI_32 - session id -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK - Success -/// \~english @retval eFrameworkunifiedStatusNullPointer - NULL pointer specified -/// \~english @retval eFrameworkunifiedStatusInvldHandle - Invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldHndlType - Invalid type of handle -/// \~english @retval eFrameworkunifiedStatusInvldQName - Illegal Message Queue name -/// \~english @retval eFrameworkunifiedStatusMsgQFull - Message queue is full -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF - Invalid File-Descriptor -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR - An interrupt is generated by the system call (signal) -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - Invalid buffer-size -/// \~english @retval eFrameworkunifiedStatusFail - Some sort of error occurred -/// \~english @retval eFrameworkunifiedStatusErrOther - other errors(Failed to open/allocate shared memory) -/// \~english @retval eFrameworkunifiedStatusInvldParam - Invalid parameter -/// \~english @par Preconditons -/// - Message queue(McOpenSender) for sending message is created. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Message queue HANDLE in HANDLE specified in the argument (hService) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - HANDLE specified in the argument message queue HANDLE in (hService) is not appropriate (which is invalid). -/// [eFrameworkunifiedStatusInvldHandle] -/// - Application name of sender specified in the argument (source) is NULL. [eFrameworkunifiedStatusInvldQName] -/// - Application name of sender specified in the argument (source) exceeds 20byte. [eFrameworkunifiedStatusInvldQName] -/// - Sender data does not match sender data size(size is larger then 0, and data is NULL). [eFrameworkunifiedStatusInvldBuf] -/// - Message queue type of handle specified by argument(hMessage) is not sending type. [eFrameworkunifiedStatusInvldHndlType] -/// - Message queue is full. [eFrameworkunifiedStatusMsgQFull] -/// - File descriptor for sending message is invalid. [eFrameworkunifiedStatusErrNoEBADF] -/// - An interrupt is generated by the system call (signal) when sending message. [eFrameworkunifiedStatusErrNoEINTR] -/// - Size of buffer for sending message is invalid. [eFrameworkunifiedStatusInvldBufSize] -/// - Some errors occur, when sending message. [eFrameworkunifiedStatusFail] -/// - Failed to access(shm_open/ftruncate/mmap) the shared memory for sending message data. [eFrameworkunifiedStatusErrOther] -/// - Sending data size specified in the argument (length) is out of range. [eFrameworkunifiedStatusInvldParam] -/// \~english @par Detail -/// It is an asynchronous API. It provides function to send message by message queue. \n -/// Message queue name created by McOpenSender is the sender. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// Command ID must be within the range PROTOCOL_FRAMEWORKUNIFIED_BASE_CMD(0x10) to PROTOCOL_FRAMEWORKUNIFIED_MAX_CMD(0xFFFFFFF0). -/// \~english @par -/// Please note the following points when using this API for application. -/// - McSend should be used if no sessionid is specified. -/// - To communicate with an application that uses NS Framework Dispatcher, use FrameworkunifiedSendMsg, etc. -/// - The maximum transmission data size (length) described above is a theoretical value, -/// and the maximum actually usable data size depends on the environment requirements.\n -/// - The maximum value is the upper limit of the type (UNIT_MAX) minus the following size.\n -/// Message header section\n -/// - Operation cannot be guaranteed when the size of the allocated area indicated by the address -/// of the pointer (data) to the data buffer does not match the size specified by the size of the data buffer (length). -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McSend, McReceiveWithSession, FrameworkunifiedSendMsg -////////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McSendWithSession(HANDLE hMessage, PCSTR source, UI_32 cmd, UI_32 length, PCVOID data, UI_32 sessionid); - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McSendWithPriority -/// \~english @par Brief -/// Sends data to a message queue, inserts based on priority given. -/// \~english @param[in] hMessage -/// HANDLE - handle to the send message queue, McOpenSender -/// \~english @param[in] source -/// PCSTR - app (You) the sender -/// \~english @param[in] cmd -/// UI_32 - command id aka the message that's being sent -/// \~english @param[in] length -/// UI_32 - length of the data buffer provided -/// \~english @param[in] data -/// PCVOID - pointer to the data to be sent -/// \~english @param[in] sessionid -/// UI_32 - session id -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK(success) -/// \~english @retval eFrameworkunifiedStatusFail(anything else) -/// \~english @par Preconditons -/// none -/// \~english @par Change of internal status -/// - The internal state is not changed. -/// \~english @par Conditions of processing failure -/// - Function pointer specified by the argument is NULL. -/// - It is an incorrect value(hMessage) or hMessage is NULL. -/// - It is an incorrect value(source) or hMessage is NULL. -/// - It is an incorrect value(data) or hMessage is NULL. -/// - It is an incorrect value(priority). -/// - It is an incorrect value(sessionid). -/// \~english @par Detail -/// Invoke callback function with arguments to send data to message queue based on priority given.\n -/// If callback function is null and expectedCalls is '0', using default function 'McSendWithPriority' to send -/// data to message queue based on priority given. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// Command ID must be within the range PROTOCOL_FRAMEWORKUNIFIED_BASE_CMD(0x10) to PROTOCOL_FRAMEWORKUNIFIED_MAX_CMD(0xFFFFFFF0). -/// \~english @par -/// Please note the following points when using this API for application. -/// - McSend should be used if no sessionid is specified. -/// - To communicate with an application that uses NS Framework Dispatcher, use FrameworkunifiedSendMsg, etc. -/// - The maximum transmission data size (length) described above is a theoretical value, -/// and the maximum actually usable data size depends on the environment requirements.\n -/// The maximum value is the upper limit of the type (UNIT_MAX) minus the following size.\n -/// Message header section\n -/// - Operation cannot be guaranteed when the size of the allocated area indicated by the address -/// of the pointer (data) to the data buffer does not match the size specified by the size of the data buffer (length). -/// \~english @par -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see -// McOpenSender, McSend, McSendWithSession, FrameworkunifiedSendMsg -////////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McSendWithPriority(HANDLE hMessage, PCSTR source, UI_32 cmd, UI_32 length, PCVOID data, - EFrameworkunifiedMessagePriorties priority, UI_32 sessionid); - -// EFrameworkunifiedStatus McSendWithPriorityWithSession(HANDLE hMessage, PCSTR source, UI_32 cmd, UI_32 length, PCVOID data, -// EFrameworkunifiedMessagePriorties priority, UI_32 sessionid); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McInvokeSync -/// \~english @par Brief -/// Synchronous Invoke. Send data to message queue, and Receive data from message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the send message queue, McOpenSender -/// \~english @param[in] source -/// PCSTR - app (You) the sender -/// \~english @param[in] cmd -/// UI_32 - command id aka the message that's being sent -/// \~english @param[in] msgLength -/// UI_32 - length of the data buffer provided -/// \~english @param[in] msgData -/// PCVOID - pointer to the data to be sent -/// \~english @param[in] sessionid -/// UI_32 - session ID -/// \~english @param[in] hRcvMessage -/// HANDLE - handle to the receive message queue, McOpenSyncReceiver -/// \~english @param[in] responseLength -/// UI_32 - length of the responnce receive buffer provided -/// \~english @param[out] responseData -/// PVOID - pointer to the data to be receive -/// \~english @param[out] receivedLength -/// UI_32* - length of the data to be receive -/// \~english @retval EFrameworkunifiedStatus indicates invoke response or message sent error or response receive error -/// \~english @retval eFrameworkunifiedStatusOK - success -/// \~english @retval eFrameworkunifiedStatusInvldParam - Invalid parameter -/// \~english @retval eFrameworkunifiedStatusInvldHandle - Invalid handle -/// \~english @retval eFrameworkunifiedStatusInvldHndlType - Invalid handle type -/// \~english @retval eFrameworkunifiedStatusInvldQName - Invalid message queue name -/// \~english @retval eFrameworkunifiedStatusMsgQFull - Message queue is full -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF - Invalid file descriptor -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR - An interrupt is generated by the system call (signal) -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - Invalid buffer size -/// \~english @retval eFrameworkunifiedStatusInvldBuf - Invalid buffer -/// \~english @retval eFrameworkunifiedStatusBadConnection - Can't connect with Socket -/// \~english @retval eFrameworkunifiedStatusFail - Some sort of error occurred -/// \~english @retval eFrameworkunifiedStatusErrOther - other errors(Failed to open/allocate shared memory) -/// \~english @par Preconditons -/// - Message queue specified by argument hMessage and hRcvMessage is useful. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - Message queue handle specified in the argument (hMessage) for sending message is NULL. -/// [eFrameworkunifiedStatusInvldHandle] -/// - Message queue handle specified in the argument (hMessage) for sending message is not appropriate (which is -/// invalid). [eFrameworkunifiedStatusInvldHandle] -/// - Message queue handle specified in the argument (hRcvMessage) for receiving message is NULL. -/// [eFrameworkunifiedStatusInvldHandle] -/// - Message queue handle specified in the argument (hRcvMessage) for receiving message is not appropriate (which -/// is invalid). [eFrameworkunifiedStatusInvldHandle] -/// - Size of buffer(responseLength) which is used to storage received message is not 0, -/// but the pointer to this buffer(responseData) is NULL. [eFrameworkunifiedStatusInvldHandle] -/// - Failed to create buffer to storage the response message. [eFrameworkunifiedStatusFail] -/// - Failed to generete random number of the sequence ID for sending message. [eFrameworkunifiedStatusFail] -/// - Data size of sending message is not 0, but the message data(msgData) is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Application name of sender specified in the argument (source) is NULL. [eFrameworkunifiedStatusInvldQName] -/// - Application name of sender specified in the argument (source) exceeds 20byte. [eFrameworkunifiedStatusInvldQName] -/// - Name of message queue handle specified in the argument (hMessage) for sending message is NULL. -/// [eFrameworkunifiedStatusInvldHandle] -/// - Name of message queue handle specified in the argument (hMessage) for sending message exceeds 20byte. -/// [eFrameworkunifiedStatusInvldHandle] -/// - Size of sending message specified in the argument is not 0, -/// but the pointer to sending message is NULL. [eFrameworkunifiedStatusInvldBuf] -/// - Message queue type of handle specified by argument(hMessage) is not sending type. [eFrameworkunifiedStatusInvldHndlType] -/// - Message queue for sending message is full. [eFrameworkunifiedStatusMsgQFull] -/// - File descriptor of message queue for sending message is invalid. [eFrameworkunifiedStatusErrNoEBADF] -/// - An interrupt is generated by the system call (signal) when sending message. [eFrameworkunifiedStatusErrNoEINTR] -/// - Size of buffer for sending message is invalid. [eFrameworkunifiedStatusInvldBufSize] -/// - Some errors occur, when sending message. [eFrameworkunifiedStatusFail] -/// - Failed to access the shared memory for sending message data. [eFrameworkunifiedStatusErrOther] -/// - Failed to connect with the socket(socket/bind/connect) for checking the connection with application of -/// sender. [eFrameworkunifiedStatusFail] -/// - Failed to wait(epoll_create/epoll_ctl/epoll_wait) for receiving response message. [eFrameworkunifiedStatusFail] -/// - Failed to reconnect with the socket(socket/bind/connect) for checking the connection with application of -/// sender. [eFrameworkunifiedStatusBadConnection] -/// - Application name of sender in response message exceeds 20byte.[eFrameworkunifiedStatusInvldBuf] -/// - Message queue type of handle specified by argument(hMessage) is not receiving type. -/// [eFrameworkunifiedStatusInvldHndlType] -/// - File descriptor of message queue for receiving message is invalid. [eFrameworkunifiedStatusErrNoEBADF] -/// - An interrupt is generated by the system call (signal) when receiving message. [eFrameworkunifiedStatusErrNoEINTR] -/// - Size of buffer for receiving message is invalid. [eFrameworkunifiedStatusInvldBufSize] -/// - Received message is storaged in shared memory, but data size of shared memory is 0. [eFrameworkunifiedStatusErrOther] -/// - Failed to create buffer(calloc) to storage date getted from shared memory. [eFrameworkunifiedStatusFail] -/// - Failed to access(shm_open/fstat/mmap) the shared memory for receiving message data. [eFrameworkunifiedStatusErrOther] -/// - Data size of received message specified by argument(receivedLength) is NULL. [eFrameworkunifiedStatusInvldParam] -/// - Sending data size specified in the argument (msgLength) is out of range. [eFrameworkunifiedStatusInvldParam] -/// \~english @par Detail -/// It provides synchronous communication for message queue between sender and receiver specified in the -/// argument. \n -/// As it is a synchronous function, after sending a message, the sender will wait until getting response form -/// receiver. -/// After receiving the response, set responseData with the received data and return. -/// \~english @par -/// This API provides the inter-process communication function by the message queue for the application -/// which does not use the inter-process communication by NS Framework Dispatcher. -/// \~english @par -/// When data larger than the receive message storage buffer size (resposeLength) is received, -/// the write size to the receive message storage buffer (responseData) does not exceed the specified size, -/// but the receive size is set in the receive message data length (recievedLength) as is. -/// \~english @par -/// The caller must guarantee the allocation of the receive message storage buffer (resonseData) area -/// and the consistency of the receive message stoage buffer sizes (resposeLength). -/// \~english @par -/// Please note the following points when using this API for application. -/// - This API stores up to the storage buffer length (responseLength) and returs eFrameworkunifiedStatusOK even -/// if the received reply message is larger than the storage buffer (responseData) size.\n -/// Therefore, the application shoud compare the received message length (recievedLenght) and the storage buffer length (responseLength) even -/// if this API returns eFrameworkunifiedStatusOK, and detect the above. -/// - Specify 0 for the sessionid of argument. -/// If a value other than 0 is specified, no error occurs and the value is used as is. -/// - To communicate with an application that uses NS Framework Dispatcher, use FrameworkunifiedInvokeSync, etc. -/// - The maximum data lenght (msgLength) of sent messages is a theoretical value, -/// and the maximum value that can be actually used is environment-depedent.\n -/// The maximum value is the upper limit of the type (UNIT_MAX) minus the following size.\n -/// Message header section, System information department in messages\n -/// - Operation cannot be guaranteed when the size of the allocated area indicated by the address -/// of the pointer (msgData) to the data buffer does not match the size specified by the size of the data buffer (msgLength). -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McOpenSyncReceiver, FrameworkunifiedInvokeSync -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McInvokeSync(HANDLE hMessage, PCSTR source, UI_32 cmd, UI_32 msgLength, PCVOID msgData, UI_32 sessionid, - HANDLE hRcvMessage, UI_32 responseLength, PVOID responseData, UI_32 *receivedLength); - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McSendSyncResponse -/// \~english @par Brief -/// Sends response to a message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the send message queue, McOpenSyncSender -/// \~english @param[in] source -/// PCSTR - app (You) the sender -/// \~english @param[in] cmd -/// UI_32 - command id aka the message that's being sent -/// \~english @param[in] seq_id -/// UI_32 - response sequence ID -/// \~english @param[in] ret_val -/// EFrameworkunifiedStatus - response status -/// \~english @param[in] length -/// UI_32 - length of the data buffer provided -/// \~english @param[in] data -/// PCVOID - pointer to the data to be sent -/// \~english @retval eFrameworkunifiedStatusOK success -/// \~english @retval eFrameworkunifiedStatusInvldHandle - If handle is NULL or invalid -/// \~english @retval eFrameworkunifiedStatusInvldHndlType -if handle type is invalid -/// \~english @retval eFrameworkunifiedStatusInvldQName - if MQ name is invalid -/// \~english @retval eFrameworkunifiedStatusMsgQFull - if MQ is full -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF - if fd is invalid -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR - if system call(signal) interupt occurs -/// \~english @retval eFrameworkunifiedStatusInvldBufSize -if buffer size is invalid -/// \~english @retval eFrameworkunifiedStatusInvldBuf -if buffer is invalid -/// \~english @retval eFrameworkunifiedStatusFail - any other error -/// \~english @retval eFrameworkunifiedStatusErrOther -other error(memory open/allocate fail) -/// \~english @par Preconditons -/// - The message queue specified by argument hMessage of this API must be allocated -/// in advance by McOpenSender and McOpenSyncSender. -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - sending MQ handle(designated by parameter)is NULL[eFrameworkunifiedStatusInvldHandle] -/// - sending MQ handle(designated by parameter)is invalid[eFrameworkunifiedStatusInvldHandle] -/// - the type of sending MQ handle(designated by parameter)is not sending type[eFrameworkunifiedStatusInvldHndlType] -/// - application name(source,designated by parameter)is NULL[eFrameworkunifiedStatusInvldQName] -/// - the length of application name(designated by parameter)is over 20byte[eFrameworkunifiedStatusInvldQName] -/// - sending data not in accordance with the size of sending data(eg:size is not 0 but data is NULL) -/// [eFrameworkunifiedStatusInvldBuf] -/// - sending data MQ is full [eFrameworkunifiedStatusMsgQFull] -/// - fd of sending data MQ is invalid [eFrameworkunifiedStatusErrNoEBADF] -/// - system call(signal) interupt occurs during MQ receiveing process[eFrameworkunifiedStatusErrNoEINTR] -/// - the size of receiveing MQ buffer is invalid[eFrameworkunifiedStatusInvldBufSize] -/// - error occurs during MQ receiveing process [eFrameworkunifiedStatusFail] -/// - failed to access shared memmory for sending message[eFrameworkunifiedStatusErrOther] -/// - failed to allocate buffer for data retriving from shared memmory[eFrameworkunifiedStatusFail] -/// \~english @par Detail -/// set the response data to buffer and call this API -/// when need to response to synchronous message get from synchronous communication(McInvokeSync) -/// \~english @par -/// This API applies communication function(using message queue)between processes to the application which do not -/// use -/// Dispatcher of NS Framework -/// \~english @par -/// cautions when using this API -/// - Use FrameworkunifiedSetSyncResponseData if communacate with application which use the Dispatcher of NS Framework\n -/// - the limit of size for sending data is according to system -/// but the total size of SSystemMsgHeader and ResponseHeader shared memmory header is 48byte -/// size limit should be(UINT_MAX-48byte) -/// - operation is not guaranteed if the size which shown in data buffer pointer(data) is not in -/// accordance with the length set in data buffer -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McOpenSyncReceiver, McInvokeSync, FrameworkunifiedSetSyncResponseData -////////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McSendSyncResponse(HANDLE hMessage, PCSTR source, UI_32 cmd, UI_32 seq_id, EFrameworkunifiedStatus ret_val, UI_32 length, - PCVOID data); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McCreateInvokerName -/// \~english @par Brief -/// Create synchronous invoke response MQ name. -/// \~english @param[in] source -/// PCSTR - source service name -/// \~english @param[in] sessionid -/// UI_32 - session id -/// \~english @param[in] invokerName -/// PSTR - create invoker name buffer -/// \~english @param[in] size -/// UI_32 - InvokerName buffer size -/// \~english @retval EFrameworkunifiedStatus indicates if the close was successfully -/// \~english @retval eFrameworkunifiedStatusOK -/// \~english @retval eFrameworkunifiedStatusInvldParam -if parameter is invalid -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - sender application name(source,designated by parameter) is NULL[eFrameworkunifiedStatusInvldParam] -/// - synchronous communication MQ name(invokerName,designated by parameter) is NULL[eFrameworkunifiedStatusInvldParam] -/// - the size of synchronous communication MQ name buffer(designated by parameter)is NULL[eFrameworkunifiedStatusInvldParam] -/// \~english @par Detail -/// This API will add specific letters to the end of sender application name and return it as synchronous -/// communication MQ name -/// This name will be used when application create the MQ through McOpenSyncReceiver -/// \~english @par -/// cautions when using this API: -/// - the synchronous communication MQ name(invokerName) buffer size should be larger than the length of source -/// application -/// name(at least 4byte larger) -/// - source application name(designated by parameter) should be less than 15byte(according to NS framework -/// spec,error occurs -/// if message name length is over 20byte -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSyncReceiver -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McCreateInvokerName(PCSTR source, UI_32 sessionid, PSTR invokerName, UI_32 size); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McClose -/// \~english @par Brief -/// Close a connection to a Receiver message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle that will be closed -/// \~english @retval EFrameworkunifiedStatus indicates if the close was successfully -/// \~english @retval eFrameworkunifiedStatusOK success -/// \~english @retval eFrameworkunifiedStatusInvldHandle - If hMessage is NULL or invalid -/// \~english @retval eFrameworkunifiedStatusInvldHndlType - if hMessage is invalid -/// \~english @par Preconditons -/// message queue(McOpenSender, McOpenReceiver) is created in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(hMessage,designated by parameter) is NULL[eFrameworkunifiedStatusInvldHandle] -/// - handle(hMessage,designated by parameter) is invalid[eFrameworkunifiedStatusInvldHandle] -/// - the type of handle(designated by parameter) is neither sending or receiveing[eFrameworkunifiedStatusInvldHndlType] -/// - fail to close the message queue(mq_close)[eFrameworkunifiedStatusInvldHandle] -/// \~english @par Detail -/// close the message sending or receiveing message queue which is designated by parameter\n -/// Application can call this API to close the message queue which is created by McOpenSender -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McOpenReceiver, McOpenSyncReceiver -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McClose(HANDLE hMessage); - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetDataUSID -/// \~english @par Brief -/// Get the USID is the Unique Shared Memory ID.e. from the message that was received. -/// \~english @param[in] pData -/// void* - pointer to the data was received from the McReceive Call -/// \~english @retval TMemID Type of memory buffer identifiers(unsigned int). -/// \~english @retval NoneZero(Success) -/// \~english @retval Zero(Failed) -/// \~english @par Preconditons -/// none -/// \~english @par Change of internal status -/// - The internal state is not changed. -/// \~english @par Conditions of processing failure -/// - Function pointer specified by the argument is NULL. -/// - It is an incorrect value(pData) or pData is NULL. -/// \~english @par Detail -/// Invoke callback function with arguments to get the USID from the message that was received.\n -/// If callback function is null and expectedCalls is '0', using default function 'McGetDataUSID' to get the USID -/// from the message that was received.\n -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see -// FrameworkunifiedGetDataUSID, FrameworkunifiedForwardMessage -////////////////////////////////////////////////////////////////////////////////////////////// -TMemID McGetDataUSID(PVOID pData); - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetMsgSrc -/// \~english @par Brief -/// Gets the constant pointer to source message queue. -/// \~english @param[in] data -/// PVOID - pointer to the data to be received -/// \~english @retval PCSTR message queue's address -/// CONST char* - constant pointer to source message queue -/// \~english @retval NotNull(Success) -/// \~english @retval Null(Failed) -/// \~english @par Preconditons -/// none -/// \~english @par Change of internal status -/// - The internal state is not changed. -/// \~english @par Conditions of processing failure -/// - Function pointer specified by the argument is NULL. -/// - It is an incorrect value(data) or data is NULL. -/// \~english @par Detail -/// Invoke callback function with arguments to get the constant pointer to source message queue.\n -/// If callback function is null and expectedCalls is '0', using default function 'McGetMsgSrc' to the constant -/// pointer to source message queue.\n -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see -// frameworkunifiedSendSyncResponse, frameworkunifiedProcessSyncResponse -////////////////////////////////////////////////////////////////////////////////////////////// -PCSTR McGetMsgSrc(PVOID data); - - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McForward -/// \~english @par Brief -/// Forward a Message to indicate that there is a Shared Memory -/// \~english @param[in] hMessage -/// HANDLE - handle to the send message queue, McOpenSender -/// \~english @param[in] source -/// PCSTR - the sender of this forwarding message. -/// \~english @param[in] iCmd -/// UI_32 - Command Id message to forward -/// \~english @param[in] USID -/// UI_32 - Unique Shared memory Id -/// \~english @retval EFrameworkunifiedStatus indicates if the close was successfully -/// CONST char* - constant pointer to source message queue -/// \~english @retval Success(eFrameworkunifiedStatusOK) -/// \~english @retval Failed(anything else) -/// \~english @par Preconditons -/// none -/// \~english @par Change of internal status -/// - The internal state is not changed. -/// \~english @par Conditions of processing failure -/// - Function pointer specified by the argument is NULL. -/// - It is an incorrect value(hMessage) or hMessage is NULL. -/// - It is an incorrect value(source) or source is NULL. -/// - It is an incorrect value(iCmd). -/// - It is an incorrect value(USID). -/// \~english @par Detail -/// Invoke callback function with arguments to forward a Message.\n -/// If callback function is null and expectedCalls is '0', using default function 'McForward' to forward a -/// Message. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see -// FrameworkunifiedForwardMessage -////////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McForward(HANDLE hMessage, PCSTR source, UI_32 iCmd, TMemID USID); - - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McFlushReceiver -/// \~english @par Brief -/// Flush's all data on HANDLE's Receiver message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle to the recvMessage queue that will be flushed -/// \~english @retval void -/// \~english @par Preconditons -/// message queue(McOpenReceiver)is created in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(hMessage,designated by parameter) is NULL -/// - handle(hMessage,designated by parameter) is invalid [-1] -/// - the type of handle(designated by parameter) is neither sending or receiveing[-1] -/// \~english @par Detail -/// message will not be flushed if process failed -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenSender, McOpenReceiver, McOpenSyncReceiver -//////////////////////////////////////////////////////////////////////////////////////////// -void McFlushReceiver(HANDLE hMessage); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetQueueName -/// \~english @par Brief -/// Gets the name of the message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle of the message queue, -/// (handle created with McOpenReceiver or McOpenSender) -/// \~english @retval PCSTR name - name of the message queue if handle is valid else NULL -/// \~english @par Preconditons -/// Dispatcher for application should be created and initilized(FrameworkunifiedCreateDispatcherWithoutLoop)in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(hMessage,designated by parameter) is NULL -/// - handle(hMessage,designated by parameter) is invalid [-1] -/// - the type of handle(designated by parameter) is neither sending or receiveing[-1] -/// \~english @par Detail -/// return the name of specific message queue -/// this APL is used for application to supervize message queue -/// \~english @par -/// This API applies communication function(using message queue)between processes to the application which do not -/// use -/// Dispatcher of NS Framework -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenReceiver, McOpenSender -//////////////////////////////////////////////////////////////////////////////////////////// -PCSTR McGetQueueName(HANDLE hMessage); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McGetQueueFD -/// \~english @par Brief -/// Gets the fd of the message queue. -/// \~english @param[in] hMessage -/// HANDLE - handle of the message queue.(handle created with McOpenReceiver or McOpenSender) -/// \~english @retval int fd - fd of the message queue if handle is valid else -1 -/// \~english @par Preconditons -/// - Dispatcher for application is created and initialized(FrameworkunifiedCreateDispatcherWithoutLoop) in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(hMessage,designated by parameter) is NULL -/// - handle(hMessage,designated by parameter) is invalid [-1] -/// - the type of handle(designated by parameter) is neither sending or receiveing[-1] -/// \~english @par Detail -/// return the fd of specific message queue -/// this APL is used for application to supervize message queue -/// \~english @par -/// This API applies communication function(using message queue)between processes to the application which do not -/// use -/// Dispatcher of NS Framework -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McOpenReceiver, McOpenSender -//////////////////////////////////////////////////////////////////////////////////////////// -int McGetQueueFD(HANDLE hMessage); - -////////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McTranslateError -/// \~english @par Brief -/// Translates global error variables into FW EFrameworkunifiedStatus -/// \~english @param[in] error -/// int - error variable -/// \~english @retval EFrameworkunifiedStatus indicates frameworkunified error type -/// \~english @par -/// EFrameworkunifiedStatus Enum -/// \~english @code -/// typedef enum eFrameworkunifiedStatus { -/// eFrameworkunifiedStatusEmptyMediaList = -10, ///< Empty media list -/// eFrameworkunifiedStatusSessionLimitMaxedOut = -9, ///< Maximum session limit reached -/// eFrameworkunifiedStatusDbRecNotFound = -8, ///< Database record not found -/// eFrameworkunifiedStatusDbResultError = -7, ///< Database result error -/// eFrameworkunifiedStatusDbExecuteFail = -6, ///< Database execute fail -/// eFrameworkunifiedStatusSemCloseFail = -5, ///< Semaphore close failed -/// eFrameworkunifiedStatusSemUnlockFail = -4, ///< Semaphore unlock failed -/// eFrameworkunifiedStatusSemLockFail = -3, ///< Semaphore lock failed -/// eFrameworkunifiedStatusFail = -2, ///< Failed -/// eFrameworkunifiedStatusErrOther = -1, ///< Unknown error -/// eFrameworkunifiedStatusOK = 0, ///< Success / Pass / OK -/// eFrameworkunifiedStatusInvldBuf = 1, ///< Invalid buffer -/// eFrameworkunifiedStatusInvldHandle = 2, ///< Invalid handle -/// eFrameworkunifiedStatusInvldHndlType = 3, ///< Invalid handle type -/// eFrameworkunifiedStatusInvldQName = 4, ///< Invalid messasge queue name -/// eFrameworkunifiedStatusMsgQFull = 5, ///< Message queue full -/// eFrameworkunifiedStatusInvldNotification = 6,///< The Notification event not present -/// eFrameworkunifiedStatusInvldParam = 7, ///< Invalid parameter -/// eFrameworkunifiedStatusInvldBufSize = 8, ///< Buf size too small -/// eFrameworkunifiedStatusInvldID = 9, ///< Unrecognized ID -/// eFrameworkunifiedStatusCannotRelease = 10, ///< Cannot release resource -/// eFrameworkunifiedStatusBadConnection = 11, ///< Could not locate resource -/// eFrameworkunifiedStatusExit = 12, ///< Normal application termination -/// eFrameworkunifiedStatusNotImplemented = 13, ///< incomplete feature -/// eFrameworkunifiedStatusThreadBusy = 14, ///< Joined thread is already being joined -/// eFrameworkunifiedStatusThreadSelfJoin = 15, ///< Thread is joining itself -/// eFrameworkunifiedStatusThreadInvalidVal = 16, ///< Invalid value passed -/// eFrameworkunifiedStatusThreadNotExist = 17, ///< The thread does not exist -/// eFrameworkunifiedStatusFault = 18, ///< A fault occurred while attempting to make call -/// eFrameworkunifiedStatusServNotFound = 19, ///< Service not present in serv dir -/// eFrameworkunifiedStatusServerInUse = 20, ///< Service already processing 1 client request -/// eFrameworkunifiedStatusDbIndexing = 21, ///< Database Indexing in progress -/// eFrameworkunifiedStatusNullPointer = 22, -/// eFrameworkunifiedStatusMsgNotProcessed = 23, -/// eFrameworkunifiedStatusFileLoadSuccess = 24, ///< File Load Success -/// eFrameworkunifiedStatusFileLoadError = 25, ///< File Load Error -/// eFrameworkunifiedStatusAccessError = 26, ///< Error when accessing resource -/// eFrameworkunifiedStatusDuplicate = 27, ///< Duplicate entry -/// eFrameworkunifiedStatusMsgQEmpty = 28, ///< Message queue empty -/// eFrameworkunifiedStatusThreadAlreadyRunning = 29, -/// eFrameworkunifiedStatusErrNoEBADF = 30, ///< Bad file descriptor -/// eFrameworkunifiedStatusErrNoEAGAIN = 31, ///< Resource unavailable, try again -/// eFrameworkunifiedStatusErrNoEINTR = 32, ///< Interrupted system call -/// eFrameworkunifiedStatusSessionErr = 33, ///< Error in session handling -/// eFrameworkunifiedStatusDBCorrupt = 34, ///< Database corrupt -/// eFrameworkunifiedStatusDBFileNotFound = 35 ///< Database file not found -/// } EFrameworkunifiedStatus, *PEFrameworkunifiedStatus; -/// @endcode -/// \~english @par Preconditons -/// none -/// \~english @par Change of internal status -/// - The internal state is not changed. -/// \~english @par Conditions of processing failure -/// - Function pointer specified by the argument is NULL. -/// - It is an incorrect value(error). -/// \~english @par Detail -/// Invoke callback function with arguments to translates global error variables.\n -/// If callback function is null and expectedCalls is '0', using default function 'McTranslateError' to translates -/// global error variables. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see -// none -////////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McTranslateError(int error); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McZcSetParam -/// \~english @par Brief -/// set variable parameter to messeg-sending header -/// \~english @param[in] handle -/// HANDLE - handle to the send message queue, McZcOpenSender -/// \~english @param[in] cmd -/// UI_32 -cmd for sending(ID to identify protocol of service) -/// \~english @param[in] length -/// UI_32 -size of buffer for message-sending -/// \~english @retval EFrameworkunifiedStatus indicates if the message was set successfully -/// \~english @retval eFrameworkunifiedStatusOK sucess -/// \~english @retval eFrameworkunifiedStatusInvldHandle - If hMessage is NULL or invalid -/// \~english @retval eFrameworkunifiedStatusInvldBuf - invalid buffer -/// \~english @retval eFrameworkunifiedStatusInvldBufSize - invalid buffer size -/// \~english @par Preconditons -/// message queue is created by McZcOpenSender in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(designated by parameter) is NULL[NULL] -/// - handle(designated by parameter) is invalid [NULL] -/// - the buffer for sending in handle(designated by parameter) is NULL[NULL] -/// - the size of data for sending(designated by parameter)(except header) is larger than the size of -/// sending-buffer[eFrameworkunifiedStatusInvldBufSize] -/// \~english @par Detail -/// set the variable sending cmd and sending data length in sending buffer of message-sending handle -/// This API will only do the initialization of message header.detail setting of data for sending will be done\n -/// Application can use McZcGetBuf to do data setting -/// \~english @par -/// CMD ID should be in (PROTOCOL_FRAMEWORKUNIFIED_BASE_CMD(0x10) to PROTOCOL_FRAMEWORKUNIFIED_MAX_CMD(0xFFFFFFF0)) -/// \~english @par -/// cautions when using this API -/// - detail data sending size should be in accordance with the data sending size which is set in this API -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McZcGetBuf, McZcSend -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McZcSetParam(HANDLE handle, UI_32 cmd, UI_32 length); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McZcGetBuf -/// \~english @par Brief -/// get the fist address of buffer for sending -/// \~english @param[in] handle -/// HANDLE - handle to the send message queue, McZcOpenSender -/// \~english @retval PVOID the first address of buffer for data-sending -/// \~english @retval NULL NULL pointer(fail to get) -/// \~english @par Preconditons -/// message queue is created by McZcOpenSender in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(designated by parameter) is NULL[NULL] -/// - handle(designated by parameter) is invalid [NULL] -/// - the buffer for sending in handle(designated by parameter) is NULL[NULL] -/// \~english @par Detail -/// get the first address of data(excpet the message-header)from sending-buffer in message-sending handle -/// application will set the address got as sending message -/// \~english @par -/// cautions When using the application -/// - result will not be guaranteed if the handle set is different from message-sending queue handle -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McZcGetBuf -//////////////////////////////////////////////////////////////////////////////////////////// -PVOID McZcGetBuf(HANDLE handle); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McZcSend -/// \~english @par Brief -/// send message -/// \~english @param[in] hMessage -/// HANDLE - handle to the sendMessage, McZcOpenSender -/// \~english @retval EFrameworkunifiedStatus indicates if the message was sent successfully -/// \~english @retval eFrameworkunifiedStatusOK success -/// \~english @retval eFrameworkunifiedStatusInvldHandle - If hMessage is NULL or invalid -/// \~english @retval eFrameworkunifiedStatusInvldBuf - buffer is invalid -/// \~english @retval eFrameworkunifiedStatusInvldHndlType -handle type is invalid -/// \~english @retval eFrameworkunifiedStatusMsgQFull - message queue is full -/// \~english @retval eFrameworkunifiedStatusErrNoEBADF - file descriptor invalid -/// \~english @retval eFrameworkunifiedStatusErrNoEINTR -system call(signal) interupt -/// \~english @retval eFrameworkunifiedStatusInvldBufSize -invalid buffer size -/// \~english @par Preconditons -/// message queuqe is created by McZcOpenSender -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - handle(hMessage,designated by parameter)is NULL[eFrameworkunifiedStatusInvldHandle] -/// - handle(hMessage,designated by parameter)is invalid[eFrameworkunifiedStatusInvldHandle] -/// - the sending-buffer in handle(hMessage,designated by parameter)is NULL[eFrameworkunifiedStatusInvldBuf] -/// - the type of message queue in handle(hMessage,designated by parameter)is not sending -/// type[eFrameworkunifiedStatusInvldHndlType] -/// - message-sending queue is full[eFrameworkunifiedStatusMsgQFull] -/// - file descriptor of message-sending queue is invalid[eFrameworkunifiedStatusErrNoEBADF] -/// - system call(singal) interupts during the message sending process[eFrameworkunifiedStatusErrNoEINTR] -/// - the size of buffer for message-sending is invalid[eFrameworkunifiedStatusInvldBufSize] -/// \~english @par Detail -/// send message using specific message-sending handle.\n -/// data for sending should be set to message-sending handle(hMessage)beforhead using McZcSetParam, McZcGetBuf -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Method -/// \~english @see McZcOpenSender, McZcSetParam, McZcGetBuf -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McZcSend(HANDLE hMessage); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McZcOpenSender -/// \~english @par Brief -/// create message-sending queuqe -/// \~english @param[in] source -/// PCSTR - app (You) the sender -/// \~english @retval Handle for sending messages to a queue (If INVALID_HANDLE is returned its an error) -/// \~english @retval NULL NULL pointer(fail to get) -/// \~english @par Preconditons -/// - none -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - message queue name(designated by parameter)is NULL[NULL] -/// - the length of message queue name(designated by parameter)(source) is over 20byte[NULL] -/// - fail to get memmory for restoring formated message queue name [NULL] -/// - length of formated message queue name is over 15byte or 16byte(when initial letter is'/')[NULL] -/// - fail to get message queue(mq_open)[NULL] -/// - fail to get memmory for message queue info managment(malloc)[NULL] -/// - fail to get memory for sending buffer[NULL] -/// \~english @par Detail -/// create message queuqe and return the handle -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McZcSetParam, McZcGetBuf, McZcSend, McZcClose -//////////////////////////////////////////////////////////////////////////////////////////// -HANDLE McZcOpenSender(PCSTR source); - -//////////////////////////////////////////////////////////////////////////////////////////// -/// \ingroup McZcClose -/// \~english @par Brief -/// close the handle to message queue -/// \~english @param[in] handle -/// HANDLE - handle to the send message queue, handle got through McZcOpenSender -/// \~english @retval EFrameworkunifiedStatus indicates if the message was close successfully -/// \~english @retval eFrameworkunifiedStatusOK -/// \~english @retval eFrameworkunifiedStatusInvldHandle - If hMessage is NULL or invalid -/// \~english @retval eFrameworkunifiedStatusInvldHndlType If handle type is invalid -/// \~english @par Preconditons -/// - message queue is created by McZcOpenSender in advance -/// \~english @par Change of internal status -/// - none -/// \~english @par Conditions of processing failure -/// - message handle(designated by parameters) is NULL[eFrameworkunifiedStatusInvldHandle] -/// - message handle(designated by parameters) is invalid [eFrameworkunifiedStatusInvldHandle] -/// - message handle type(designated by parameters) is not match(neither send or receive)[eFrameworkunifiedStatusInvldHndlType] -/// - fail to close message queue(mq_close)[eFrameworkunifiedStatusInvldHandle] -/// \~english @par Detail -/// Close message-sending or message-receiving handle(designated by parameters)\n -/// application call this function to close message queue which is created by McZcOpenSender. -/// \~english @par Classification -/// Public -/// \~english @par Type -/// Sync only -/// \~english @see McZcOpenSender -//////////////////////////////////////////////////////////////////////////////////////////// -EFrameworkunifiedStatus McZcClose(HANDLE handle); - -#ifdef __cplusplus -} -#endif -#endif /* __NATIVESERVICES_MESSAGE_CENTER_IF_H__ */ // NOLINT (build/header_guard) -/** @}*/ -/** @}*/ -/** @}*/ -/** @}*/ -//@} |