Line data Source code
1 : /********************************************************************************
2 : * Copyright (c) 2026 Accenture
3 : *
4 : * This program and the accompanying materials are made available under the
5 : * terms of the Apache License Version 2.0 which is available at
6 : * https://www.apache.org/licenses/LICENSE-2.0
7 : *
8 : * SPDX-License-Identifier: Apache-2.0
9 : ********************************************************************************/
10 :
11 : #pragma once
12 :
13 : #include "someip/SomeIpMessage.h"
14 :
15 : #include <ip/IPEndpoint.h>
16 :
17 : #include <etl/delegate.h>
18 : #include <etl/optional.h>
19 :
20 : namespace someip
21 : {
22 : class ISdMessageParser
23 : {
24 : protected:
25 35 : ISdMessageParser() = default;
26 :
27 : public:
28 : using AdditionalSDCheck = ::etl::optional<::etl::delegate<bool(::ip::IPEndpoint const&)>>;
29 :
30 : ISdMessageParser(ISdMessageParser const&) = delete;
31 : ISdMessageParser& operator=(ISdMessageParser const&) = delete;
32 :
33 35 : virtual ~ISdMessageParser() = default;
34 :
35 : /**
36 : * Pure virtual function that handles SomeIpMessages.
37 : */
38 : virtual void handleMessage(
39 : SomeIpMessage const& message, ::ip::IPEndpoint const& sourceEndpoint, bool isMulticast)
40 : = 0;
41 : };
42 : } // namespace someip
|