Line data Source code
1 : /* 2 : * Copyright (c) 2021 Project CHIP Authors 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 : #pragma once 18 : 19 : #include <transport/Session.h> 20 : #include <transport/raw/MessageHeader.h> 21 : 22 : namespace chip { 23 : 24 : /** 25 : * @brief 26 : * This class provides a skeleton for the callback functions. The functions will be 27 : * called by SecureSssionMgrBase object on specific events. If the user of SessionManager 28 : * is interested in receiving these callbacks, they can specialize this class and handle 29 : * each trigger in their implementation of this class. 30 : */ 31 : class DLL_EXPORT SessionMessageDelegate 32 : { 33 : public: 34 0 : virtual ~SessionMessageDelegate() {} 35 : 36 : enum class DuplicateMessage : uint8_t 37 : { 38 : Yes, 39 : No, 40 : }; 41 : 42 : /** 43 : * @brief 44 : * Called when a new message is received. The function must internally release the 45 : * msgBuf after processing it. 46 : * 47 : * @param packetHeader The message header 48 : * @param payloadHeader The payload header 49 : * @param session The handle to the secure session 50 : * @param isDuplicate The message is a duplicate of previously received message 51 : * @param msgBuf The received message 52 : */ 53 : virtual void OnMessageReceived(const PacketHeader & packetHeader, const PayloadHeader & payloadHeader, 54 : const SessionHandle & session, DuplicateMessage isDuplicate, 55 : System::PacketBufferHandle && msgBuf) = 0; 56 : }; 57 : 58 : } // namespace chip