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/SomeIpConstants.h"
14 : #include "someip/SubscriptionEndpoint.h"
15 :
16 : namespace someip
17 : {
18 : class SubscribedEventGroup
19 : {
20 : public:
21 : SubscribedEventGroup();
22 : SubscribedEventGroup(
23 : service_id::type serviceId,
24 : major_version::type majorVersion,
25 : instance_id::type instanceId,
26 : eventgroup_id::type eventgroup);
27 :
28 : SubscribedEventGroup(SubscribedEventGroup const& rhs) = delete;
29 : SubscribedEventGroup(SubscribedEventGroup const&& rhs) = delete;
30 : SubscribedEventGroup& operator=(SubscribedEventGroup&& rhs) = delete;
31 : SubscribedEventGroup& operator=(SubscribedEventGroup const& rhs) = delete;
32 :
33 : bool operator==(SubscribedEventGroup const& rhs) const;
34 :
35 : void clear();
36 :
37 : SubscriptionEndpointList& getEndpoints();
38 :
39 : service_id::type getServiceId() const;
40 : instance_id::type getInstanceId() const;
41 : eventgroup_id::type getEventgroupId() const;
42 : major_version::type getMajorVersion() const;
43 :
44 : private:
45 : SubscriptionEndpointList _endpoints;
46 :
47 : service_id::type _serviceId;
48 : instance_id::type _instanceId;
49 : eventgroup_id::type _eventgroup;
50 : major_version::type _majorVersion;
51 : };
52 :
53 : /*
54 : * inline implementation
55 : */
56 247 : inline SubscriptionEndpointList& SubscribedEventGroup::getEndpoints() { return _endpoints; }
57 :
58 2345 : inline service_id::type SubscribedEventGroup::getServiceId() const { return _serviceId; }
59 :
60 3449 : inline instance_id::type SubscribedEventGroup::getInstanceId() const { return _instanceId; }
61 :
62 1251 : inline eventgroup_id::type SubscribedEventGroup::getEventgroupId() const { return _eventgroup; }
63 :
64 1231 : inline major_version::type SubscribedEventGroup::getMajorVersion() const { return _majorVersion; }
65 :
66 : } // namespace someip
|