2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Contact: Jan Olszak <j.olszak@samsung.com>
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License
21 * @author Jan Olszak (j.olszak@samsung.com)
22 * @brief Types definitions
25 #ifndef COMMON_IPC_HANDLERS_HPP
26 #define COMMON_IPC_HANDLERS_HPP
28 #include "ipc/exception.hpp"
34 namespace security_containers {
37 typedef int FileDescriptor;
38 typedef unsigned int MethodID;
39 typedef unsigned int MessageID;
41 typedef std::function<void(FileDescriptor)> PeerCallback;
43 enum class Status : int {
54 std::string toString(const Status status);
55 void throwOnError(const Status status);
57 template<typename SentDataType, typename ReceivedDataType>
58 struct MethodHandler {
59 typedef std::function<std::shared_ptr<SentDataType>(FileDescriptor peerFD,
60 std::shared_ptr<ReceivedDataType>& data)> type;
63 template<typename ReceivedDataType>
64 struct SignalHandler {
65 typedef std::function<void(FileDescriptor peerFD,
66 std::shared_ptr<ReceivedDataType>& data)> type;
69 template <typename ReceivedDataType>
70 struct ResultHandler {
71 typedef std::function<void(Status status,
72 std::shared_ptr<ReceivedDataType>& resultData)> type;
76 } // namespace security_containers
78 #endif // COMMON_IPC_HANDLERS_HPP