Skip to content

Commit

Permalink
Move basic types from app to core (#10925)
Browse files Browse the repository at this point in the history
We have a lot of low level types (e.g. FabricIndex) defined in
app/util/basic-types.h. These need to be used by other modules outside
of app (e.g. messaging, access control) which are lower level than app.

Right now the best low level place for these types is in lib/core. So,
moving them there for now, in a header called DataModelTypes.h. If we
need a more intermediate level (above core, below the other modules) in
the future, we can refactor then.

Issue #10924
  • Loading branch information
mlepage-google authored and pull[bot] committed Dec 10, 2021
1 parent 03ec4d5 commit 9ef9dc5
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 18 deletions.
22 changes: 4 additions & 18 deletions src/app/util/basic-types.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,32 +23,18 @@

#pragma once

#include <stdint.h>
#include <cstdint>

#include <lib/core/GroupId.h>
#include <lib/core/NodeId.h>

// Pull in VendorId
// Pull in other core types
#include <lib/core/CHIPVendorIdentifiers.hpp>
#include <lib/core/DataModelTypes.h>

namespace chip {
typedef uint8_t ActionId;
typedef uint32_t AttributeId;
typedef uint32_t ClusterId;
typedef uint8_t ClusterStatus;
typedef uint32_t CommandId;
typedef uint32_t DataVersion;
typedef uint32_t DeviceTypeId;
typedef uint16_t EndpointId;
typedef uint32_t EventId;
typedef uint64_t EventNumber;
typedef uint64_t FabricId;
typedef uint8_t FabricIndex;
typedef uint32_t FieldId;
typedef uint16_t ListIndex;
typedef uint32_t TransactionId;

typedef uint8_t Percent;
typedef uint16_t Percent100ths;

static constexpr FabricIndex kUndefinedFabricIndex = 0;
} // namespace chip
1 change: 1 addition & 0 deletions src/lib/core/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ static_library("core") {
"CHIPTLVUpdater.cpp",
"CHIPTLVUtilities.cpp",
"CHIPTLVWriter.cpp",
"DataModelTypes.h",
"GroupId.h",
"NodeId.h",
"PeerId.h",
Expand Down
42 changes: 42 additions & 0 deletions src/lib/core/DataModelTypes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
*
* Copyright (c) 2021 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#pragma once

#include <cstdint>

namespace chip {

typedef uint8_t ActionId;
typedef uint32_t AttributeId;
typedef uint32_t ClusterId;
typedef uint8_t ClusterStatus;
typedef uint32_t CommandId;
typedef uint32_t DataVersion;
typedef uint32_t DeviceTypeId;
typedef uint16_t EndpointId;
typedef uint32_t EventId;
typedef uint64_t EventNumber;
typedef uint64_t FabricId;
typedef uint8_t FabricIndex;
typedef uint32_t FieldId;
typedef uint16_t ListIndex;
typedef uint32_t TransactionId;

static constexpr FabricIndex kUndefinedFabricIndex = 0;

} // namespace chip

0 comments on commit 9ef9dc5

Please sign in to comment.