blob: 5020aa0ba6d2c01f10c14b15ecf2e3c3d6b1d55f [file] [log] [blame]
Boris Zbarskye72e2c32021-10-04 22:58:09 -04001/*
2 *
3 * Copyright (c) 2021 Project CHIP Authors
4 * All rights reserved.
5 *
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
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
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.
17 */
18
19#pragma once
20
Boris Zbarsky1afe0062022-02-09 02:12:13 -050021#include <app/ConcreteClusterPath.h>
Boris Zbarskye72e2c32021-10-04 22:58:09 -040022#include <app/util/basic-types.h>
Boris Zbarskye72e2c32021-10-04 22:58:09 -040023
24namespace chip {
25namespace app {
26
27/**
28 * A representation of a concrete invoke path.
29 */
Boris Zbarsky1afe0062022-02-09 02:12:13 -050030struct ConcreteCommandPath : public ConcreteClusterPath
Boris Zbarskye72e2c32021-10-04 22:58:09 -040031{
32 ConcreteCommandPath(EndpointId aEndpointId, ClusterId aClusterId, CommandId aCommandId) :
Boris Zbarsky1afe0062022-02-09 02:12:13 -050033 ConcreteClusterPath(aEndpointId, aClusterId), mCommandId(aCommandId)
Boris Zbarskye72e2c32021-10-04 22:58:09 -040034 {}
35
Boris Zbarsky1afe0062022-02-09 02:12:13 -050036 bool operator==(const ConcreteCommandPath & aOther) const
Vivien Nicolas5ab45332021-10-20 18:21:59 +020037 {
Boris Zbarsky1afe0062022-02-09 02:12:13 -050038 return ConcreteClusterPath::operator==(aOther) && (mCommandId == aOther.mCommandId);
Vivien Nicolas5ab45332021-10-20 18:21:59 +020039 }
40
Boris Zbarsky1afe0062022-02-09 02:12:13 -050041 bool operator!=(const ConcreteCommandPath & aOther) const { return !(*this == aOther); }
42
43 CommandId mCommandId = 0;
Boris Zbarskye72e2c32021-10-04 22:58:09 -040044};
45} // namespace app
46} // namespace chip