aws / aws-iot-device-sdk-cpp-v2
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 20% duplication:
    • 14,322 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,892 duplicated lines
  • 2,071 duplicates
system20% (2,892 lines)
Duplication per Extension
cpp21% (1,969 lines)
h16% (871 lines)
cmake77% (52 lines)
Duplication per Component (primary)
greengrass_ipc12% (998 lines)
shadow43% (811 lines)
jobs31% (520 lines)
identity41% (311 lines)
secure_tunneling29% (135 lines)
eventstream_rpc6% (89 lines)
devicedefender11% (20 lines)
iotdevicecommon30% (8 lines)
discovery0% (0 lines)
utils0% (0 lines)
docsrc0% (0 lines)

Duplication Between Components (50+ lines)

G jobs jobs shadow shadow jobs--shadow 1037 secure_tunneling secure_tunneling jobs--secure_tunneling 300 identity identity identity--jobs 493 identity--shadow 657 identity--secure_tunneling 133 secure_tunneling--shadow 442

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 2,071 duplicates...
Size#FoldersFilesLinesCode
31 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
49:87 (3%)
791:829 (3%)
view
31 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
49:87 (3%)
525:563 (3%)
view
31 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
525:563 (3%)
791:829 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
473:509 (3%)
525:561 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
473:509 (3%)
791:827 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
473:509 (3%)
845:881 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
421:457 (3%)
791:827 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
421:457 (3%)
845:881 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
421:457 (3%)
525:561 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
421:457 (3%)
473:509 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
103:139 (3%)
633:669 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
579:615 (3%)
685:721 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
209:245 (3%)
315:351 (3%)
view
29 x 2 jobs/source
jobs/source
IotJobsClient.cpp
IotJobsClient.cpp
200:236 (5%)
252:288 (5%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
49:85 (3%)
845:881 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
791:827 (3%)
845:881 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
49:85 (3%)
421:457 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
49:85 (3%)
473:509 (3%)
view
29 x 2 shadow/source
shadow/source
IotShadowClient.cpp
IotShadowClient.cpp
157:193 (3%)
737:773 (3%)
view
29 x 2 jobs/source
jobs/source
IotJobsClient.cpp
IotJobsClient.cpp
96:132 (5%)
354:390 (5%)
view
Duplicated Units
The list of top 17 duplicated units.
See data for all 17 unit duplicates...
Size#FoldersFilesLinesCode
24 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
5055:5079 
5303:5327 
view
19 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
175:194 
4038:4057 
view
14 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
569:583 
945:959 
view
13 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
2170:2183 
3119:3132 
view
13 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
2185:2199 
3134:3148 
view
12 x 2 shadow/source
shadow/source
ShadowState.cpp
ShadowMetadata.cpp
13:27 
13:27 
view
11 x 2 shadow/source
shadow/source
ShadowState.cpp
ShadowMetadata.cpp
29:42 
29:42 
view
10 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
3672:3682 
4258:4268 
view
10 x 2 greengrass_ipc/include/aws/greengrass
greengrass_ipc/include/aws/greengrass
GreengrassCoreIpcModel.h
GreengrassCoreIpcModel.h
370:380 
619:629 
view
10 x 2 greengrass_ipc/include/aws/greengrass
greengrass_ipc/include/aws/greengrass
GreengrassCoreIpcModel.h
GreengrassCoreIpcModel.h
386:396 
635:645 
view
9 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
1474:1483 
3619:3628 
view
8 x 4 shadow/source
shadow/source
shadow/source
shadow/source
DeleteNamedShadowRequest.cpp
GetNamedShadowRequest.cpp
GetShadowRequest.cpp
DeleteShadowRequest.cpp
13:22 
13:22 
13:22 
13:22 
view
7 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
6682:6689 
6999:7006 
view
7 x 5 jobs/source
shadow/source
shadow/source
shadow/source
shadow/source
GetPendingJobExecutionsRequest.cpp
DeleteNamedShadowRequest.cpp
GetNamedShadowRequest.cpp
GetShadowRequest.cpp
DeleteShadowRequest.cpp
26:34 
24:32 
24:32 
24:32 
24:32 
view
6 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
245:251 
3934:3940 
view
6 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
1333:1339 
1710:1716 
view
6 x 2 greengrass_ipc/source
greengrass_ipc/source
GreengrassCoreIpcModel.cpp
GreengrassCoreIpcModel.cpp
2522:2528 
2710:2716 
view