It is recommended to use the CppDepend interactive UI capabilities
to make the most of CppDepend by mastering all aspects of your code.
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
Quality Gates summary
812
can be stopped upon quality gate
failure. Online documentation.

be run on the baseline. Hence they
have blank trend and baseline status.
Name | Trend | Baseline Value | Value | Group | |||
---|---|---|---|---|---|---|---|
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates |
Rules summary
248243- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
- Number of Rules violated: 27

VisualCppDepend.
Online documentation.

run on the baseline. Hence they
have blank # Issues Fixed or Added.
Name | # Issues | Added | Fixed | Elements | Group | |||
---|---|---|---|---|---|---|---|---|
| 50 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 105 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 11 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 389 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 96 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 67 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 991 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 598 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 9 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 4 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 115 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 24 | 0 | 0 | methods | Project Rules \ Object Oriented Design | |||
| 19 | 0 | 0 | fields | Project Rules \ Object Oriented Design | |||
| 21 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 143 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 1 | 0 | 0 | project | Project Rules \ Object Oriented Design | |||
| 55 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 144 | 0 | 0 | methods | Project Rules \ CWE Rules | |||
| 55 | 0 | 0 | types | Project Rules \ Dead Code | |||
| 570 | 0 | 0 | methods | Project Rules \ Dead Code | |||
| 44 | 0 | 0 | fields | Project Rules \ Dead Code | |||
| 10 | 0 | 0 | fields | Project Rules \ Naming Conventions | |||
| 10 | 0 | 0 | fields | Project Rules \ Naming Conventions | |||
| 1 | 0 | 0 | type | Project Rules \ Naming Conventions | |||
| 10 | 0 | 0 | types | Project Rules \ Naming Conventions | |||
| 18 | 0 | 0 | methods | Project Rules \ Naming Conventions | |||
| 7 | 0 | 0 | fields | Project Rules \ Naming Conventions |
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | interfaces | 0 | 0 | -1 properties on |
Methods on interfaces | interfaces | 0 | 0 | -1 methods on |
Arguments on methods on interfaces | methods | 0 | 0 | -1 arguments on |
Public properties on classes | 948 Classes | 0.18 | 3.88 | 87 public properties on __Globals |
Public methods on classes | 948 classes | 11.48 | 17.4 | 332 public methods on __Globals |
Arguments on public methods on classes | 10,879 methods | 1.02 | 1.33 | 15 arguments on __Globals.compile_regex(int,pcre_uchar**,constpcre_uchar**,int*,BOOL,BOOL,int,int,pcre_uint32*,pcre_int32*,pcre_uint32*,pcre_int32*,branch_chain*,compile_data*,int*) |
IL instructions in non-abstract methods | 12,557 methods | 0.09 | 0.45 | 24 IL instructions in __Globals.match(constpcre_uchar*,constpcre_uchar*,constpcre_uchar*,int,match_data*,eptrblock*,unsignedint) |
Cyclomatic complexity on non abstract Methods | 12,557 Methods | 0.62 | 1.88 | CC = 50 for StringTokenizerTest.testStringTokenizer() |
Projects Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Projects | # lines of code | # IL instruction | # Types | # Abstract Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling | Relational Cohesion | Instability | Abstractness | Distance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Foundation v1.0.0.0 | 30944 | 457 | 455 | 15 | 11495 | 27,08594 | - | 301 | 117 | 2.35 | 0.28 | 0.03 | 0.49 |
TestLibrary v1.0.0.0 | 12 | 0 | 4 | 0 | 0 | 0 | - | 0 | 11 | 0.57 | 1 | 0.14 | 0.1 |
TestSuite v1.0.0.0 | 19388 | 156 | 190 | 0 | 549 | 2,753674 | - | 0 | 325 | 1.02 | 1 | 0.01 | 0 |
TestApp v1.0.0.0 | 25 | 1 | 0 | 0 | 0 | 0 | - | 0 | 3 | 0.33 | 1 | 0 | 0 |
JSON v1.0.0.0 | 1337 | 32 | 32 | 1 | 416 | 23,73075 | - | 0 | 72 | 1.6 | 1 | 0.06 | 0.04 |
Net v1.0.0.0 | 7149 | 116 | 247 | 12 | 3739 | 34,34056 | - | 0 | 190 | 2.48 | 1 | 0.05 | 0.04 |
Crypto v1.0.0.0 | 533 | 7 | 36 | 1 | 339 | 38,87615 | - | 0 | 39 | 1.63 | 1 | 0.05 | 0.03 |
Data v1.0.0.0 | 2311 | 46 | 65 | 9 | 1309 | 36,16022 | - | 0 | 88 | 2.1 | 1 | 0.14 | 0.1 |
XML v1.0.0.0 | 14623 | 280 | 130 | 18 | 2684 | 15,50818 | - | 0 | 53 | 3.38 | 1 | 0.14 | 0.1 |
Types Metrics
If the code base analyzed has too many types, CppDepend doesn't list Types Metrics to avoid a too big report. The section Types Metrics can be activated by unchecking the option: CppDepend Project Properties > Report > Avoid too big report for large code base > Hide section Types Metrics if... It is recommended to use the CppDepend interactive UI capabilities to browse large applications. |
Namespaces Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces | # lines of code | # IL instruction | # Types | # lines of comment | % Comment | % Coverage | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|---|
Foundation::GlobalNamespace | 15331 | 202 | 45 | 0 | 0 | - | 1 | 5 |
Foundation::Poco | 12846 | 219 | 377 | 0 | 0 | - | 45 | 9 |
Foundation::Poco.Impl | 21 | 0 | 1 | 0 | 0 | - | 1 | 1 |
Foundation::Poco .anonymous_namespace{format.cpp} | 188 | 4 | 0 | 0 | 0 | - | 0 | 4 |
Foundation::Poco .anonymous_namespace{nesteddiagnosticcon text.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco.Dynamic | 1451 | 7 | 26 | 0 | 0 | - | 7 | 5 |
Foundation::Poco.Dynamic.Impl | 49 | 2 | 0 | 0 | 0 | - | 0 | 3 |
Foundation::Poco .anonymous_namespace{base32decoder.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{base64decoder.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{activedispatcher .cpp} | 2 | 0 | 2 | 0 | 0 | - | 1 | 2 |
Foundation::Poco .anonymous_namespace{thread.cpp} | 5 | 0 | 2 | 0 | 0 | - | 1 | 1 |
Foundation::Poco .anonymous_namespace{threadlocal.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{threadpool.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{logger.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{loggingfactory.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{loggingregistry .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{patternformatter .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{notificationcenter .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{notificationqueue .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{prioritynotificatio nqueue.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{temporaryfile.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{uuid.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{uuidgenerator.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{textencoding.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{utf8string.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::Poco .anonymous_namespace{uristreamopener .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::double_conversion | 984 | 21 | 2 | 0 | 0 | - | 1 | 2 |
Foundation::anonymous_namespace{numerics tring.cpp} | 49 | 1 | 0 | 0 | 0 | - | 0 | 2 |
Foundation::std | 1 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::anonymous_namespace{process .cpp} | 16 | 1 | 0 | 0 | 0 | - | 0 | 1 |
Foundation::anonymous_namespace{textconv erter.cpp} | 1 | 0 | 0 | 0 | 0 | - | 0 | 0 |
TestLibrary::GlobalNamespace | 12 | 0 | 4 | 0 | 0 | - | 0 | 4 |
TestSuite::GlobalNamespace | 19236 | 154 | 162 | 0 | 0 | - | 0 | 26 |
TestSuite::anonymous_namespace{autoptrte st.cpp} | 8 | 0 | 1 | 0 | 0 | - | 1 | 0 |
TestSuite::anonymous_namespace{autorelea sepooltest.cpp} | 8 | 0 | 1 | 0 | 0 | - | 1 | 0 |
TestSuite::anonymous_namespace{coretest .cpp} | 6 | 1 | 1 | 0 | 0 | - | 1 | 1 |
TestSuite::anonymous_namespace{dynamicfa ctorytest.cpp} | 0 | 0 | 3 | 0 | 0 | - | 1 | 0 |
TestSuite::anonymous_namespace{sharedptr test.cpp} | 7 | 0 | 2 | 0 | 0 | - | 1 | 1 |
TestSuite::anonymous_namespace{notificat ionqueuetest.cpp} | 2 | 0 | 1 | 0 | 0 | - | 1 | 2 |
TestSuite::anonymous_namespace{priorityn otificationqueuetest.cpp} | 2 | 0 | 1 | 0 | 0 | - | 1 | 2 |
TestSuite::anonymous_namespace{timednoti ficationqueuetest.cpp} | 2 | 0 | 1 | 0 | 0 | - | 1 | 2 |
TestSuite::anonymous_namespace{activedis patchertest.cpp} | 15 | 0 | 1 | 0 | 0 | - | 1 | 3 |
TestSuite::anonymous_namespace{activemet hodtest.cpp} | 15 | 0 | 1 | 0 | 0 | - | 1 | 3 |
TestSuite::anonymous_namespace{activityt est.cpp} | 6 | 1 | 1 | 0 | 0 | - | 1 | 1 |
TestSuite::anonymous_namespace{condition test.cpp} | 16 | 0 | 2 | 0 | 0 | - | 1 | 1 |
TestSuite::anonymous_namespace{loggingfa ctorytest.cpp} | 0 | 0 | 2 | 0 | 0 | - | 1 | 2 |
TestSuite::anonymous_namespace{uristream openertest.cpp} | 1 | 0 | 1 | 0 | 0 | - | 1 | 2 |
TestSuite::anonymous_namespace{namedeven ttest.cpp} | 3 | 0 | 1 | 0 | 0 | - | 1 | 1 |
TestSuite::anonymous_namespace{namedmute xtest.cpp} | 9 | 0 | 2 | 0 | 0 | - | 1 | 1 |
TestSuite::anonymous_namespace{taskmanag ertest.cpp} | 42 | 0 | 5 | 0 | 0 | - | 1 | 2 |
TestSuite::anonymous_namespace{tasktest .cpp} | 10 | 0 | 1 | 0 | 0 | - | 1 | 2 |
TestApp::GlobalNamespace | 25 | 1 | 0 | 0 | 0 | - | 0 | 1 |
JSON::GlobalNamespace | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 |
JSON::Poco.JSON | 1229 | 32 | 28 | 0 | 0 | - | 1 | 6 |
JSON::Poco.Dynamic | 108 | 0 | 4 | 0 | 0 | - | 0 | 6 |
Net::GlobalNamespace | 13 | 1 | 1 | 0 | 0 | - | 0 | 3 |
Net::Poco.Net | 6741 | 107 | 237 | 0 | 0 | - | 5 | 6 |
Net::Poco.Net.Impl | 264 | 4 | 7 | 0 | 0 | - | 1 | 5 |
Net::Poco.Net .anonymous_namespace{httpcookie.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Net::Poco.Net .anonymous_namespace{httpsessionfactory .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Net::Poco.Net .anonymous_namespace{mailmessage.cpp} | 52 | 2 | 2 | 0 | 0 | - | 1 | 4 |
Net::Poco.Net .anonymous_namespace{networkinterface .cpp} | 46 | 1 | 0 | 0 | 0 | - | 0 | 4 |
Net::Poco.Net .anonymous_namespace{partsource.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Net::Poco.Net .anonymous_namespace{socketnotifier.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Net::Poco.Net .anonymous_namespace{tcpserverdispatcher .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Net::anonymous_namespace{httpauthenticat ionparams.cpp} | 9 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Net::anonymous_namespace{httpdigestcrede ntials.cpp} | 16 | 0 | 0 | 0 | 0 | - | 0 | 2 |
Net::anonymous_namespace{ipaddressimpl .cpp} | 8 | 1 | 0 | 0 | 0 | - | 0 | 0 |
Crypto::GlobalNamespace | 0 | 0 | 2 | 0 | 0 | - | 2 | 1 |
Crypto::Poco.Crypto | 413 | 5 | 30 | 0 | 0 | - | 2 | 5 |
Crypto::Poco.Crypto .anonymous_namespace{cipherfactory.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Crypto::Poco.Crypto .anonymous_namespace{cipherimpl.cpp} | 18 | 0 | 2 | 0 | 0 | - | 0 | 3 |
Crypto::Poco.Crypto .anonymous_namespace{rsacipherimpl.cpp} | 102 | 2 | 2 | 0 | 0 | - | 1 | 4 |
Crypto::Poco.Crypto .anonymous_namespace{rsakey.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
Data::GlobalNamespace | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 |
Data::Poco.Dynamic | 26 | 0 | 2 | 0 | 0 | - | 0 | 7 |
Data::Poco.Data | 2258 | 46 | 63 | 0 | 0 | - | 3 | 7 |
Data::Poco.Data.Keywords | 23 | 0 | 0 | 0 | 0 | - | 0 | 3 |
Data::std | 4 | 0 | 0 | 0 | 0 | - | 0 | 1 |
XML::GlobalNamespace | 11158 | 168 | 43 | 0 | 0 | - | 1 | 1 |
XML::Poco.XML | 3462 | 112 | 86 | 0 | 0 | - | 1 | 6 |
XML::Poco.XML .anonymous_namespace{domimplementation .cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
XML::Poco.XML .anonymous_namespace{elementsbytagnameli st.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
XML::Poco.XML .anonymous_namespace{parserengine.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
XML::Poco.XML .anonymous_namespace{xmlwriter.cpp} | 0 | 0 | 0 | 0 | 0 | - | 0 | 1 |
XML::anonymous_namespace{eventdispatcher .cpp} | 3 | 0 | 1 | 0 | 0 | - | 1 | 0 |
Project Rules | 812 |
Quality Gates | 812 |
|
![]() | Quality Gate Pass: Percentage Code Coverage |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Blocker Issues |
No issue matched
![]() | Quality Gate Warn: Critical Issues |
4 issues matched
4 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: VarTest | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: __Globals .compile_branch(int*,pcre_uchar** ,constpcre_uchar**,int*,pcre_uint32* ,pcre_int32*,pcre_uint32*,pcre_int32* ,branch_chain*,int,compile_data*,int*) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: __Globals .internal_dfa_exec(dfa_match_data* ,constpcre_uchar*,constpcre_uchar*,int ,int*,int,int*,int,int) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: __Globals.match (constpcre_uchar*,constpcre_uchar* ,constpcre_uchar*,int,match_data* ,eptrblock*,unsignedint) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 3d 4h | 1d 0h |
Average: | - | 7h 0min | 2h 0min |
Minimum: | - | 6h 0min | 2h 0min |
Maximum: | - | 1d 2h | 2h 0min |
Standard deviation: | - | 1h 43min | 0min 0s |
Variance: | - | 1 350d | 0min 0s |
![]() | Quality Gate Pass: New Blocker / Critical / High Issues |
No issue matched
![]() | Quality Gate Fail: Critical Rules Violated |
3 rules matched
3 rules | issues | Full Name |
---|---|---|
Avoid types too big | 50 issues | Rule |
Avoid methods too big, too complex | 389 issues | Rule |
Avoid methods with too many parameters | 96 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 535 |
Average: | 178.33 |
Minimum: | 50 |
Maximum: | 389 |
Standard deviation: | 150.14 |
Variance: | 22 543 |
![]() | Quality Gate Pass: Percentage Debt |
Scalar Result: 9.44 %
![]() | Quality Gate Pass: New Debt since Baseline |
Scalar Result: 0 man-days
![]() | Quality Gate Fail: Debt Rating per Namespace |
2 namespaces matched
2 namespaces | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues | Full Name |
---|---|---|---|---|---|---|
Poco.Dynamic | D | 21.63 | 4d 0h | 7h 8min | 76 issues | Poco.Dynamic |
anonymous_namespace{httpdigestcredential s.cpp} | D | 36.55 | 2h 44min | 1h 0min | 1 issue | anonymous_namespace{httpdigestcredential s.cpp} |
Statistics
Stat | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues |
---|---|---|---|---|---|
Sum: | - | 58.18 | 4d 3h | 1d 0h | 77 |
Average: | - | 29.09 | 2d 1h | 4h 4min | 38.5 |
Minimum: | - | 21.63 | 2h 44min | 1h 0min | 1 |
Maximum: | - | 36.55 | 4d 0h | 7h 8min | 76 |
Standard deviation: | - | 7.46 | 1d 7h | 3h 4min | 37.5 |
Variance: | - | 55.64 | 102 876d | 4 232d | 1 406 |
![]() | Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: 0 man-days
Project Rules | 248243 |
Code Smells | 063 |
|
![]() | Critical Rule Violated: Avoid types too big |
• How to Fix Issues: Types with many lines of code should be split in a group of smaller types. To refactor a God Class you'll need patience, and you might even need to recreate everything from scratch. Here are a few refactoring advices: • The logic in the God Class must be splitted in smaller classes. These smaller classes can eventually become private classes nested in the original God Class, whose instances objects become composed of instances of smaller nested classes. • Smaller classes partitioning should be driven by the multiple responsibilities handled by the God Class. To identify these responsibilities it often helps to look for subsets of methods strongly coupled with subsets of fields. • If the God Class contains way more logic than states, a good option can be to define one or several static classes that contains no static field but only pure static methods. A pure static method is a function that computes a result only from inputs parameters, it doesn't read nor assign any static or instance field. The main advantage of pure static methods is that they are easily testable. • Try to maintain the interface of the God Class at first and delegate calls to the new extracted classes. In the end the God Class should be a pure facade without its own logic. Then you can keep it for convenience or throw it away and start to use the new classes only. • Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a 200 lines of code type, up to 10 hours for a type with 2.000 or more lines of code. In Debt and Interest computation, this rule takes account of the fact that static types with no mutable fields are just a collection of static methods that can be easily splitted and moved from one type to another.
50 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
50 types | locJustMyCode | Methods | Fields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
VarTest | 2 184 | 57 methods | no field | 1d 2h | 2h 0min | VarTest |
PathTest | 1 270 | 33 methods | no field | 6h 21min | 1h 12min | PathTest |
NamedTuplesTest | 1 045 | 25 methods | no field | 5h 13min | 57min | NamedTuplesTest |
CoreTest | 805 | 19 methods | 4 fields | 4h 1min | 41min | CoreTest |
StringTest | 776 | 33 methods | no field | 3h 52min | 39min | StringTest |
URITest | 643 | 16 methods | no field | 3h 12min | 31min | URITest |
DateTimeParserTest | 599 | 18 methods | no field | 2h 59min | 28min | DateTimeParserTest |
XMLWriter | 581 | 59 methods | 41 fields | 2h 54min | 26min | Poco.XML.XMLWriter |
SHA1Engine | 573 | 8 methods | 2 fields | 2h 51min | 26min | Poco.SHA1Engine |
Path | 527 | 69 methods | 6 fields | 2h 38min | 23min | Poco.Path |
URI | 481 | 57 methods | 12 fields | 2h 24min | 20min | Poco.URI |
Windows1251Encoding | 472 | 9 methods | 2 fields | 2h 21min | 19min | Poco.Windows1251Encoding |
ParserEngine | 445 | 67 methods | 19 fields | 2h 13min | 18min | Poco.XML.ParserEngine |
DateTimeTest | 438 | 22 methods | no field | 2h 11min | 17min | DateTimeTest |
Parser | 437 | 33 methods | 20 fields | 2h 11min | 17min | Poco.JSON.Parser |
SocketImpl | 409 | 72 methods | 2 fields | 2h 2min | 15min | Poco.Net.SocketImpl |
Var | 377 | 90 methods | 1 field | 1h 53min | 13min | Poco.Dynamic.Var |
GlobTest | 375 | 15 methods | no field | 1h 52min | 13min | GlobTest |
FileChannelTest | 353 | 25 methods | no field | 1h 45min | 12min | FileChannelTest |
TuplesTest | 340 | 28 methods | no field | 1h 42min | 11min | TuplesTest |
FTPClientSession | 331 | 49 methods | 10 fields | 1h 39min | 10min | Poco.Net.FTPClientSession |
StatementImpl | 317 | 67 methods | 18 fields | 1h 35min | 9min | Poco.Data.StatementImpl |
MD5Engine | 313 | 9 methods | 2 fields | 1h 33min | 9min | Poco.MD5Engine |
Windows1250Encoding | 312 | 9 methods | 2 fields | 1h 33min | 9min | Poco.Windows1250Encoding |
AbstractContainerNode | 305 | 22 methods | 1 field | 1h 31min | 8min | Poco.XML.AbstractContainerNode |
StringTokenizerTest | 300 | 7 methods | no field | 1h 30min | 8min | StringTokenizerTest |
Logger | 295 | 141 methods | 6 fields | 1h 28min | 8min | Poco.Logger |
FileTest | 282 | 19 methods | no field | 1h 24min | 7min | FileTest |
LocalDateTimeTest | 277 | 16 methods | no field | 1h 23min | 7min | LocalDateTimeTest |
PriorityEventTest | 276 | 32 methods | 8 fields | 1h 22min | 6min | PriorityEventTest |
MemoryStreamTest | 269 | 12 methods | no field | 1h 20min | 6min | MemoryStreamTest |
NumberFormatter | 264 | 75 methods | 2 fields | 1h 19min | 6min | Poco.NumberFormatter |
MailMessage | 258 | 39 methods | 23 fields | 1h 17min | 5min | Poco.Net.MailMessage |
RecordSet | 254 | 51 methods | 7 fields | 1h 16min | 5min | Poco.Data.RecordSet |
Latin2Encoding | 247 | 9 methods | 2 fields | 1h 14min | 5min | Poco.Latin2Encoding |
DateTime | 246 | 46 methods | 9 fields | 1h 13min | 5min | Poco.DateTime |
FormatTest | 237 | 14 methods | no field | 1h 11min | 4min 25s | FormatTest |
DateTimeParser | 234 | 10 methods | no field | 1h 10min | 4min 13s | Poco.DateTimeParser |
FileImpl | 231 | 28 methods | 2 fields | 1h 9min | 4min 1s | Poco.FileImpl |
FileChannel | 228 | 22 methods | 23 fields | 1h 8min | 3min 50s | Poco.FileChannel |
BasicEventTest | 227 | 31 methods | 8 fields | 1h 8min | 3min 46s | BasicEventTest |
FIFOEventTest | 225 | 27 methods | 8 fields | 1h 7min | 3min 38s | FIFOEventTest |
SMTPClientSession | 220 | 31 methods | 2 fields | 1h 6min | 3min 18s | Poco.Net.SMTPClientSession |
HTMLForm | 213 | 24 methods | 8 fields | 1h 3min | 2min 51s | Poco.Net.HTMLForm |
TextConverterTest | 210 | 15 methods | no field | 1h 3min | 2min 39s | TextConverterTest |
NetworkInterface | 210 | 39 methods | 4 fields | 1h 3min | 2min 39s | Poco.Net.NetworkInterface |
RemoteSyslogChannel | 209 | 9 methods | 16 fields | 1h 2min | 2min 35s | Poco.Net.RemoteSyslogChannel |
IPAddress | 204 | 50 methods | 2 fields | 1h 1min | 2min 15s | Poco.Net.IPAddress |
MD4Engine | 201 | 9 methods | 2 fields | 1h 0min | 2min 3s | Poco.MD4Engine |
UUID | 201 | 29 methods | 5 fields | 1h 0min | 2min 3s | Poco.UUID |
![]() | Rule Violated: Avoid types with too many methods |
• How to Fix Issues: To refactor properly a God Class please read HowToFix advices from the default rule Types to Big. // The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 20 methods, up to 10 hours for a type with 200 or more methods. In Debt and Interest computation, this rule takes account of the fact that static types with no mutable fields are just a collection of static methods that can be easily splitted and moved from one type to another.
105 types matched
- The following list of types is truncated and contains only the first 100 types of the 105 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
105 types | nbMethods | instanceMethods | staticMethods | # lines of code (LOC) | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
Logger | 141 | 120 methods | 21 methods | 295 | 7h 3min | 1h 21min | Poco.Logger |
AbstractPreparator | 94 | 94 methods | no method | 73 | 4h 42min | 50min | Poco.Data.AbstractPreparator |
AbstractBinder | 92 | 90 methods | 2 methods | 152 | 4h 36min | 49min | Poco.Data.AbstractBinder |
AbstractExtractor | 92 | 92 methods | no method | 67 | 4h 36min | 49min | Poco.Data.AbstractExtractor |
Var | 90 | 82 methods | 8 methods | 377 | 4h 30min | 47min | Poco.Dynamic.Var |
NumberFormatter | 75 | no method | 75 methods | 264 | 3h 45min | 38min | Poco.NumberFormatter |
SocketImpl | 72 | 67 methods | 5 methods | 409 | 3h 36min | 36min | Poco.Net.SocketImpl |
Statement | 70 | 70 methods | no method | 197 | 3h 30min | 34min | Poco.Data.Statement |
Path | 69 | 56 methods | 13 methods | 527 | 3h 27min | 34min | Poco.Path |
StatementImpl | 67 | 67 methods | no method | 317 | 3h 21min | 32min | Poco.Data.StatementImpl |
ParserEngine | 66 | 45 methods | 21 methods | 445 | 3h 18min | 32min | Poco.XML.ParserEngine |
XMLWriter | 58 | 57 methods | 1 method | 581 | 2h 54min | 26min | Poco.XML.XMLWriter |
URI | 57 | 54 methods | 3 methods | 481 | 2h 51min | 26min | Poco.URI |
VarTest | 56 | 55 methods | 1 method | 2 184 | 2h 48min | 25min | VarTest |
Socket | 52 | 49 methods | 3 methods | 130 | 2h 36min | 22min | Poco.Net.Socket |
IPAddress | 50 | 46 methods | 4 methods | 204 | 2h 30min | 21min | Poco.Net.IPAddress |
RecordSet | 50 | 50 methods | no method | 254 | 2h 30min | 21min | Poco.Data.RecordSet |
FTPClientSession | 49 | 44 methods | 5 methods | 331 | 2h 27min | 21min | Poco.Net.FTPClientSession |
DateTime | 46 | 40 methods | 6 methods | 246 | 2h 18min | 19min | Poco.DateTime |
AbstractNode | 44 | 44 methods | no method | 93 | 2h 12min | 17min | Poco.XML.AbstractNode |
VarHolder | 43 | 43 methods | no method | 86 | 2h 9min | 17min | Poco.Dynamic.VarHolder |
File | 41 | 40 methods | 1 method | 104 | 2h 3min | 15min | Poco.File |
LocalDateTime | 41 | 41 methods | no method | 105 | 2h 3min | 15min | Poco.LocalDateTime |
MailMessage | 39 | 35 methods | 4 methods | 258 | 1h 57min | 14min | Poco.Net.MailMessage |
NetworkInterface | 39 | 33 methods | 6 methods | 210 | 1h 57min | 14min | Poco.Net.NetworkInterface |
AttributesImpl | 39 | 39 methods | no method | 147 | 1h 57min | 14min | Poco.XML.AttributesImpl |
XMLFilterImpl | 39 | 39 methods | no method | 90 | 1h 57min | 14min | Poco.XML.XMLFilterImpl |
Timespan | 38 | 38 methods | no method | 50 | 1h 54min | 13min | Poco.Timespan |
NetworkInterfaceImpl | 38 | 38 methods | no method | 136 | 1h 54min | 13min | Poco.Net.NetworkInterfaceImpl |
Document | 36 | 36 methods | no method | 83 | 1h 48min | 12min | Poco.XML.Document |
HTTPClientSession | 35 | 33 methods | 2 methods | 195 | 1h 45min | 11min | Poco.Net.HTTPClientSession |
Row | 35 | 35 methods | no method | 164 | 1h 45min | 11min | Poco.Data.Row |
Element | 34 | 34 methods | no method | 193 | 1h 42min | 11min | Poco.XML.Element |
Parser | 33 | 32 methods | 1 method | 437 | 1h 39min | 10min | Poco.JSON.Parser |
Thread | 32 | 24 methods | 8 methods | 52 | 1h 36min | 9min | Poco.Thread |
StringTest | 32 | 31 methods | 1 method | 776 | 1h 36min | 9min | StringTest |
PathTest | 32 | 31 methods | 1 method | 1 270 | 1h 36min | 9min | PathTest |
Timestamp | 31 | 27 methods | 4 methods | 65 | 1h 33min | 9min | Poco.Timestamp |
PriorityEventTest | 31 | 26 methods | 5 methods | 276 | 1h 33min | 9min | PriorityEventTest |
IPv4AddressImpl | 31 | 30 methods | 1 method | 71 | 1h 33min | 9min | Poco.Net.Impl.IPv4AddressImpl |
IPv6AddressImpl | 31 | 30 methods | 1 method | 163 | 1h 33min | 9min | Poco.Net.Impl.IPv6AddressImpl |
BinaryReader | 30 | 30 methods | no method | 130 | 1h 30min | 8min | Poco.BinaryReader |
BasicEventTest | 30 | 25 methods | 5 methods | 227 | 1h 30min | 8min | BasicEventTest |
Object | 30 | 29 methods | 1 method | 132 | 1h 30min | 8min | Poco.JSON.Object |
SMTPClientSession | 30 | 26 methods | 4 methods | 220 | 1h 30min | 8min | Poco.Net.SMTPClientSession |
Session | 30 | 29 methods | 1 method | 42 | 1h 30min | 8min | Poco.Data.Session |
DOMSerializer | 30 | 30 methods | no method | 122 | 1h 30min | 8min | Poco.XML.DOMSerializer |
BinaryWriter | 29 | 29 methods | no method | 133 | 1h 27min | 7min | Poco.BinaryWriter |
UUID | 29 | 20 methods | 9 methods | 201 | 1h 27min | 7min | Poco.UUID |
SessionImpl | 29 | 28 methods | 1 method | 12 | 1h 27min | 7min | Poco.Data.SessionImpl |
Node | 29 | 29 methods | no method | 1 | 1h 27min | 7min | Poco.XML.Node |
Message | 28 | 28 methods | no method | 113 | 1h 24min | 7min | Poco.Message |
VarHolderImpl<longlong> | 28 | 28 methods | no method | 29 | 1h 24min | 7min | Poco.Dynamic.VarHolderImpl<longlong> |
VarHolderImpl<unsignedlonglong> | 28 | 28 methods | no method | 35 | 1h 24min | 7min | Poco.Dynamic.VarHolderImpl <unsignedlonglong> |
RowFilter | 28 | 18 methods | 10 methods | 135 | 1h 24min | 7min | Poco.Data.RowFilter |
FileImpl | 27 | 25 methods | 2 methods | 231 | 1h 21min | 6min | Poco.FileImpl |
VarHolderImpl<std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>> | 27 | 27 methods | no method | 59 | 1h 21min | 6min | Poco.Dynamic.VarHolderImpl <std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>> |
TuplesTest | 27 | 26 methods | 1 method | 340 | 1h 21min | 6min | TuplesTest |
WebSocketImpl | 27 | 27 methods | no method | 148 | 1h 21min | 6min | Poco.Net.WebSocketImpl |
VarHolderImpl<signedchar> | 26 | 26 methods | no method | 26 | 1h 18min | 5min | Poco.Dynamic.VarHolderImpl<signedchar> |
VarHolderImpl<std::basic_string<char ,std::char_traits<char>,std::allocator <char>>> | 26 | 26 methods | no method | 53 | 1h 18min | 5min | Poco.Dynamic.VarHolderImpl <std::basic_string<char,std::char_traits <char>,std::allocator<char>>> |
FIFOEventTest | 26 | 25 methods | 1 method | 225 | 1h 18min | 5min | FIFOEventTest |
HTTPSession | 26 | 26 methods | no method | 93 | 1h 18min | 5min | Poco.Net.HTTPSession |
SessionPool | 26 | 25 methods | 1 method | 143 | 1h 18min | 5min | Poco.Data.SessionPool |
DOMBuilder | 26 | 26 methods | no method | 106 | 1h 18min | 5min | Poco.XML.DOMBuilder |
VarHolderImpl<short> | 25 | 25 methods | no method | 27 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<short> |
VarHolderImpl<int> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<int> |
VarHolderImpl<unsignedchar> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<unsignedchar> |
VarHolderImpl<unsignedshort> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<unsignedshort > |
VarHolderImpl<unsignedint> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<unsignedint> |
VarHolderImpl<bool> | 25 | 25 methods | no method | 24 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<bool> |
VarHolderImpl<float> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<float> |
VarHolderImpl<double> | 25 | 25 methods | no method | 32 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<double> |
VarHolderImpl<char> | 25 | 25 methods | no method | 24 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<char> |
VarHolderImpl<long> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<long> |
VarHolderImpl<unsignedlong> | 25 | 25 methods | no method | 26 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl<unsignedlong> |
VarHolderImpl<Poco::SharedPtr <Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> > | 25 | 25 methods | no method | 27 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> > |
VarHolderImpl<Poco::JSON::Array> | 25 | 25 methods | no method | 27 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl <Poco::JSON::Array> |
VarHolderImpl<Poco::SharedPtr <Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >> | 25 | 25 methods | no method | 27 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >> |
VarHolderImpl<Poco::JSON::Object> | 25 | 25 methods | no method | 27 | 1h 15min | 5min | Poco.Dynamic.VarHolderImpl <Poco::JSON::Object> |
HTTPCookie | 25 | 23 methods | 2 methods | 148 | 1h 15min | 5min | Poco.Net.HTTPCookie |
IPAddressImpl | 25 | 25 methods | no method | 0 | 1h 15min | 5min | Poco.Net.Impl.IPAddressImpl |
NamedTuplesTest | 24 | 23 methods | 1 method | 1 045 | 1h 12min | 4min 37s | NamedTuplesTest |
FileChannelTest | 24 | 23 methods | 1 method | 353 | 1h 12min | 4min 37s | FileChannelTest |
HTMLForm | 24 | 24 methods | no method | 213 | 1h 12min | 4min 37s | Poco.Net.HTMLForm |
OAuth10Credentials | 24 | 23 methods | 1 method | 173 | 1h 12min | 4min 37s | Poco.Net.OAuth10Credentials |
Clock | 23 | 20 methods | 3 methods | 43 | 1h 9min | 3min 58s | Poco.Clock |
Array | 23 | 22 methods | 1 method | 92 | 1h 9min | 3min 58s | Poco.JSON.Array |
SocketAddress | 23 | 23 methods | no method | 105 | 1h 9min | 3min 58s | Poco.Net.SocketAddress |
AbstractExtraction | 23 | 23 methods | no method | 26 | 1h 9min | 3min 58s | Poco.Data.AbstractExtraction |
PooledSessionImpl | 23 | 23 methods | no method | 38 | 1h 9min | 3min 58s | Poco.Data.PooledSessionImpl |
PrintHandler | 22 | 22 methods | no method | 80 | 1h 6min | 3min 18s | Poco.JSON.PrintHandler |
SAXParser | 22 | 22 methods | no method | 86 | 1h 6min | 3min 18s | Poco.XML.SAXParser |
ThreadImpl | 21 | 14 methods | 7 methods | 70 | 1h 3min | 2min 39s | Poco.ThreadImpl |
ThreadPool | 21 | 20 methods | 1 method | 117 | 1h 3min | 2min 39s | Poco.ThreadPool |
FileChannel | 21 | 21 methods | no method | 228 | 1h 3min | 2min 39s | Poco.FileChannel |
UnicodeConverter | 21 | no method | 21 methods | 71 | 1h 3min | 2min 39s | Poco.UnicodeConverter |
VarHolderImpl<Poco::DateTime> | 21 | 21 methods | no method | 20 | 1h 3min | 2min 39s | Poco.Dynamic.VarHolderImpl <Poco::DateTime> |
DateTimeTest | 21 | 20 methods | 1 method | 438 | 1h 3min | 2min 39s | DateTimeTest |
DialogSocket | 21 | 21 methods | no method | 127 | 1h 3min | 2min 39s | Poco.Net.DialogSocket |
![]() | Rule Violated: Avoid types with too many fields |
• How to Fix Issues: To refactor such type and increase code quality and maintainability, certainly you'll have to group subsets of fields into smaller types and dispatch the logic implemented into the methods into these smaller types. More refactoring advices can be found in the default rule Types to Big, HowToFix section. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 15 fields, to up to 10 hours for a type with 200 or more fields.
11 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
11 types | instanceFields | staticFields | methodsAssigningFields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
XML_ParserStruct | 90 fields | no field | 297 methods | 4h 38min | 49min | XML_ParserStruct |
internal_state | 59 fields | no field | 198 methods | 3h 8min | 30min | internal_state |
match_data | 46 fields | no field | 68 methods | 2h 30min | 21min | match_data |
compile_data | 36 fields | no field | 92 methods | 2h 1min | 15min | compile_data |
real_pcre8_or_16 | 20 fields | no field | 48 methods | 1h 14min | 5min | real_pcre8_or_16 |
DTD | 19 fields | no field | 51 methods | 1h 11min | 4min 33s | DTD |
XMLWriter | 19 fields | no field | 86 methods | 1h 11min | 4min 33s | Poco.XML.XMLWriter |
real_pcre32 | 18 fields | no field | no method | 1h 8min | 3min 54s | real_pcre32 |
SQLChannel | 17 fields | no field | 24 methods | 1h 5min | 3min 16s | Poco.Data.SQLChannel |
ParserEngine | 17 fields | no field | 46 methods | 1h 5min | 3min 16s | Poco.XML.ParserEngine |
encoding | 16 fields | no field | 33 methods | 1h 2min | 2min 38s | encoding |
![]() | Critical Rule Violated: Avoid methods too big, too complex |
• How to Fix Issues: A large and complex method should be split in smaller methods, or even one or several classes can be created for that. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). Large switch…case structures might be refactored through the help of a set of types that implement a common interface, the interface polymorphism playing the role of the switch cases tests. Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies from 40 minutes to 8 hours, linearly from a weighted complexity score.
389 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 389 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
389 methods | # lines of code (LOC) | Cyclomatic Complexity (CC) | complexityScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
match(constpcre_uchar*,constpcre_uchar* ,constpcre_uchar*,int,match_data* ,eptrblock*,unsignedint) | 3 430 | 1 683 | 3 398 | 1d 0h | 40min | __Globals.match(constpcre_uchar* ,constpcre_uchar*,constpcre_uchar*,int ,match_data*,eptrblock*,unsignedint) |
internal_dfa_exec(dfa_match_data* ,constpcre_uchar*,constpcre_uchar*,int ,int*,int,int*,int,int) | 1 765 | 848 | 1 730 | 1d 0h | 40min | __Globals.internal_dfa_exec (dfa_match_data*,constpcre_uchar* ,constpcre_uchar*,int,int*,int,int*,int ,int) |
compile_branch(int*,pcre_uchar** ,constpcre_uchar**,int*,pcre_uint32* ,pcre_int32*,pcre_uint32*,pcre_int32* ,branch_chain*,int,compile_data*,int*) | 1 684 | 832 | 1 674 | 1d 0h | 40min | __Globals.compile_branch(int* ,pcre_uchar**,constpcre_uchar**,int* ,pcre_uint32*,pcre_int32*,pcre_uint32* ,pcre_int32*,branch_chain*,int ,compile_data*,int*) |
doProlog(XML_Parser,constENCODING* ,constchar*,constchar*,int,constchar* ,constchar**,XML_Bool) | 667 | 292 | 625 | 1d 0h | 40min | __Globals.doProlog(XML_Parser ,constENCODING*,constchar*,constchar* ,int,constchar*,constchar**,XML_Bool) |
convert(int,unsignedchar*,int) | 460 | 346 | 576 | 1d 0h | 40min | Poco.Windows1251Encoding.convert(int ,unsignedchar*,int) |
inflate(z_streamp,int) | 538 | 203 | 472 | 1d 0h | 40min | __Globals.inflate(z_streamp,int) |
find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) | 371 | 225 | 410 | 1d 0h | 40min | __Globals.find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) |
set_start_bits(constpcre_uchar* ,pcre_uint8*,BOOL,compile_data*) | 378 | 206 | 395 | 7h 54min | 40min | __Globals.set_start_bits (constpcre_uchar*,pcre_uint8*,BOOL ,compile_data*) |
convert(int,unsignedchar*,int) | 300 | 226 | 376 | 7h 31min | 40min | Poco.Windows1250Encoding.convert(int ,unsignedchar*,int) |
compare_opcodes(constpcre_uchar*,BOOL ,constcompile_data*,constpcre_uint32* ,constpcre_uchar*,int*) | 330 | 195 | 360 | 7h 12min | 40min | __Globals.compare_opcodes (constpcre_uchar*,BOOL ,constcompile_data*,constpcre_uint32* ,constpcre_uchar*,int*) |
pcre_exec(constpcre*,constpcre_extra* ,constchar*,int,int,int,int*,int) | 335 | 167 | 334 | 6h 41min | 40min | __Globals.pcre_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int) |
find_fixedlength(pcre_uchar*,BOOL,BOOL ,compile_data*,recurse_check*) | 253 | 185 | 311 | 6h 14min | 40min | __Globals.find_fixedlength(pcre_uchar* ,BOOL,BOOL,compile_data*,recurse_check*) |
convert(int,unsignedchar*,int) | 235 | 178 | 295 | 5h 55min | 40min | Poco.Latin2Encoding.convert(int ,unsignedchar*,int) |
little2_prologTok(constENCODING* ,constchar*,constchar*,constchar**) | 296 | 136 | 284 | 5h 42min | 40min | __Globals.little2_prologTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_prologTok(constENCODING*,constchar* ,constchar*,constchar**) | 296 | 136 | 284 | 5h 42min | 40min | __Globals.big2_prologTok(constENCODING* ,constchar*,constchar*,constchar**) |
pcre_compile2(constchar*,int,int* ,constchar**,int*,constunsignedchar*) | 342 | 112 | 283 | 5h 40min | 40min | __Globals.pcre_compile2(constchar*,int ,int*,constchar**,int* ,constunsignedchar*) |
doContent(XML_Parser,int,constENCODING* ,constchar*,constchar*,constchar** ,XML_Bool) | 326 | 114 | 277 | 5h 33min | 40min | __Globals.doContent(XML_Parser,int ,constENCODING*,constchar*,constchar* ,constchar**,XML_Bool) |
normal_prologTok(constENCODING* ,constchar*,constchar*,constchar**) | 296 | 128 | 276 | 5h 32min | 40min | __Globals.normal_prologTok (constENCODING*,constchar*,constchar* ,constchar**) |
could_be_empty_branch(constpcre_uchar* ,constpcre_uchar*,BOOL,compile_data* ,recurse_check*) | 219 | 165 | 274 | 5h 30min | 40min | __Globals.could_be_empty_branch (constpcre_uchar*,constpcre_uchar*,BOOL ,compile_data*,recurse_check*) |
transform() | 520 | 2 | 262 | 5h 15min | 40min | Poco.SHA1Engine.transform() |
check_escape(constpcre_uchar** ,pcre_uint32*,int*,int,int,BOOL) | 226 | 133 | 246 | 4h 56min | 40min | __Globals.check_escape(constpcre_uchar** ,pcre_uint32*,int*,int,int,BOOL) |
little2_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) | 247 | 116 | 239 | 4h 48min | 40min | __Globals.little2_scanAtts (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanAtts(constENCODING*,constchar* ,constchar*,constchar**) | 247 | 116 | 239 | 4h 48min | 40min | __Globals.big2_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) |
normal_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) | 247 | 108 | 231 | 4h 39min | 40min | __Globals.normal_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) |
pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) | 196 | 120 | 218 | 4h 23min | 40min | __Globals.pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) |
StringToIeee(constchar*,int,int*,bool) | 195 | 114 | 211 | 4h 15min | 40min | __Globals.StringToIeee(constchar*,int ,int*,bool) |
inflateBack(z_streamp,in_func,void* ,out_func,void*) | 282 | 68 | 209 | 4h 12min | 40min | __Globals.inflateBack(z_streamp,in_func ,void*,out_func,void*) |
little2_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 213 | 93 | 199 | 4h 0min | 39min | __Globals.little2_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 213 | 93 | 199 | 4h 0min | 39min | __Globals.big2_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
auto_possessify(pcre_uchar*,BOOL ,constcompile_data*) | 160 | 115 | 195 | 3h 56min | 38min | __Globals.auto_possessify(pcre_uchar* ,BOOL,constcompile_data*) |
normal_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 213 | 87 | 193 | 3h 53min | 38min | __Globals.normal_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
storeAtts(XML_Parser,constENCODING* ,constchar*,TAG_NAME*,BINDING**) | 224 | 78 | 190 | 3h 50min | 37min | __Globals.storeAtts(XML_Parser ,constENCODING*,constchar*,TAG_NAME* ,BINDING**) |
parseChar<S>(CharIntType,S&) | 216 | 66 | 174 | 3h 31min | 34min | Poco.JSON.Parser.parseChar<S> (CharIntType,S&) |
deflate(z_streamp,int) | 197 | 71 | 169 | 3h 25min | 33min | __Globals.deflate(z_streamp,int) |
testFIFOBufferChar() | 294 | 9 | 156 | 3h 9min | 30min | CoreTest.testFIFOBufferChar() |
convert(int,unsignedchar*,int) | 116 | 88 | 146 | 2h 57min | 27min | Poco.Windows1252Encoding.convert(int ,unsignedchar*,int) |
_pcre_find_bracket(constpcre_uchar*,BOOL ,int) | 101 | 90 | 140 | 2h 50min | 26min | __Globals._pcre_find_bracket (constpcre_uchar*,BOOL,int) |
little2_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 144 | 64 | 136 | 2h 46min | 25min | __Globals.little2_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 144 | 64 | 136 | 2h 46min | 25min | __Globals.big2_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
transform(UInt32*,constunsignedchar*) | 263 | 1 | 132 | 2h 41min | 24min | Poco.MD5Engine.transform(UInt32* ,constunsignedchar*) |
find_recurse(constpcre_uchar*,BOOL) | 94 | 84 | 131 | 2h 40min | 24min | __Globals.find_recurse(constpcre_uchar* ,BOOL) |
normal_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 144 | 59 | 131 | 2h 40min | 24min | __Globals.normal_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
testParse() | 248 | 1 | 125 | 2h 32min | 23min | URITest.testParse() |
get_chr_property_list(constpcre_uchar* ,BOOL,constpcre_uint8*,pcre_uint32*) | 122 | 63 | 124 | 2h 31min | 23min | __Globals.get_chr_property_list (constpcre_uchar*,BOOL,constpcre_uint8* ,pcre_uint32*) |
inflate_fast(z_streamp,unsignedint) | 181 | 32 | 122 | 2h 29min | 22min | __Globals.inflate_fast(z_streamp ,unsignedint) |
testStringTokenizer() | 242 | 1 | 122 | 2h 29min | 22min | StringTokenizerTest.testStringTokenizer( ) |
format(constPoco::Message&,std::string&) | 134 | 51 | 118 | 2h 24min | 21min | Poco.PatternFormatter.format (constPoco::Message&,std::string&) |
little2_contentTok(constENCODING* ,constchar*,constchar*,constchar**) | 116 | 59 | 117 | 2h 23min | 21min | __Globals.little2_contentTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_contentTok(constENCODING* ,constchar*,constchar*,constchar**) | 116 | 59 | 117 | 2h 23min | 21min | __Globals.big2_contentTok(constENCODING* ,constchar*,constchar*,constchar**) |
inflate_table(codetype,unsignedshort* ,unsignedint,code**,unsignedint* ,unsignedshort*) | 140 | 42 | 112 | 2h 17min | 20min | __Globals.inflate_table(codetype ,unsignedshort*,unsignedint,code** ,unsignedint*,unsignedshort*) |
_pcre_xclass(pcre_uint32 ,constpcre_uchar*,BOOL) | 101 | 61 | 111 | 2h 16min | 20min | __Globals._pcre_xclass(pcre_uint32 ,constpcre_uchar*,BOOL) |
normal_contentTok(constENCODING* ,constchar*,constchar*,constchar**) | 116 | 52 | 110 | 2h 15min | 19min | __Globals.normal_contentTok (constENCODING*,constchar*,constchar* ,constchar**) |
parse(conststd::string& ,conststd::string&,Poco::DateTime&,int&) | 120 | 48 | 108 | 2h 12min | 19min | Poco.DateTimeParser.parse (conststd::string&,conststd::string& ,Poco::DateTime&,int&) |
storeEntityValue(XML_Parser ,constENCODING*,constchar*,constchar*) | 108 | 53 | 107 | 2h 11min | 19min | __Globals.storeEntityValue(XML_Parser ,constENCODING*,constchar*,constchar*) |
parseVMS(conststd::string&) | 93 | 60 | 106 | 2h 10min | 18min | Poco.Path.parseVMS(conststd::string&) |
strToInt<I>(constchar*,I&,short,char) | 92 | 56 | 102 | 2h 5min | 18min | Poco.__Globals.strToInt<I>(constchar*,I& ,short,char) |
little2_cdataSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 103 | 49 | 100 | 2h 3min | 17min | __Globals.little2_cdataSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_cdataSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 103 | 49 | 100 | 2h 3min | 17min | __Globals.big2_cdataSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
pcre_fullinfo(constpcre* ,constpcre_extra*,int,void*) | 96 | 51 | 99 | 2h 2min | 17min | __Globals.pcre_fullinfo(constpcre* ,constpcre_extra*,int,void*) |
little2_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) | 102 | 48 | 99 | 2h 2min | 17min | __Globals.little2_scanEndTag (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) | 102 | 48 | 99 | 2h 2min | 17min | __Globals.big2_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) |
compile_regex(int,pcre_uchar** ,constpcre_uchar**,int*,BOOL,BOOL,int ,int,pcre_uint32*,pcre_int32* ,pcre_uint32*,pcre_int32*,branch_chain* ,compile_data*,int*) | 126 | 34 | 97 | 1h 59min | 16min | __Globals.compile_regex(int,pcre_uchar** ,constpcre_uchar**,int*,BOOL,BOOL,int ,int,pcre_uint32*,pcre_int32* ,pcre_uint32*,pcre_int32*,branch_chain* ,compile_data*,int*) |
normal_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) | 102 | 45 | 96 | 1h 58min | 16min | __Globals.normal_scanEndTag (constENCODING*,constchar*,constchar* ,constchar**) |
normal_cdataSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 103 | 44 | 95 | 1h 57min | 16min | __Globals.normal_cdataSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
appendAttributeValue(XML_Parser ,constENCODING*,XML_Bool,constchar* ,constchar*,STRING_POOL*) | 95 | 47 | 94 | 1h 56min | 16min | __Globals.appendAttributeValue (XML_Parser,constENCODING*,XML_Bool ,constchar*,constchar*,STRING_POOL*) |
close() | 102 | 42 | 93 | 1h 54min | 16min | Poco.Base32EncoderBuf.close() |
little2_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) | 85 | 50 | 92 | 1h 53min | 15min | __Globals.little2_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) |
big2_getAtts(constENCODING*,constchar* ,int,ATTRIBUTE*) | 85 | 50 | 92 | 1h 53min | 15min | __Globals.big2_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) |
map(bool,bool) | 101 | 41 | 91 | 1h 52min | 15min | Poco.Net.NetworkInterface.map(bool,bool) |
parse(std::istream&) | 109 | 35 | 89 | 1h 50min | 15min | Poco.JSON.Template.parse(std::istream&) |
normal_getAtts(constENCODING*,constchar* ,int,ATTRIBUTE*) | 85 | 46 | 88 | 1h 48min | 14min | __Globals.normal_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) |
testTypeList() | 174 | 1 | 88 | 1h 48min | 14min | TypeListTest.testTypeList() |
little2_scanPoundName(constENCODING* ,constchar*,constchar*,constchar**) | 89 | 43 | 87 | 1h 47min | 14min | __Globals.little2_scanPoundName (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanPoundName(constENCODING* ,constchar*,constchar*,constchar**) | 89 | 43 | 87 | 1h 47min | 14min | __Globals.big2_scanPoundName (constENCODING*,constchar*,constchar* ,constchar**) |
_pcre_valid_utf(constpcre_uchar*,int ,int*) | 90 | 41 | 86 | 1h 46min | 14min | __Globals._pcre_valid_utf (constpcre_uchar*,int,int*) |
normal_scanPoundName(constENCODING* ,constchar*,constchar*,constchar**) | 89 | 41 | 85 | 1h 45min | 14min | __Globals.normal_scanPoundName (constENCODING*,constchar*,constchar* ,constchar**) |
little2_scanPercent(constENCODING* ,constchar*,constchar*,constchar**) | 89 | 41 | 85 | 1h 45min | 14min | __Globals.little2_scanPercent (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanPercent(constENCODING* ,constchar*,constchar*,constchar**) | 89 | 41 | 85 | 1h 45min | 14min | __Globals.big2_scanPercent (constENCODING*,constchar*,constchar* ,constchar**) |
handleError(int) | 85 | 42 | 84 | 1h 44min | 14min | Poco.XML.ParserEngine.handleError(int) |
deflate_stored(deflate_state*,int) | 86 | 41 | 84 | 1h 44min | 14min | __Globals.deflate_stored(deflate_state* ,int) |
getReasonForStatus (Poco::Net::HTTPResponse::HTTPStatus) | 83 | 42 | 83 | 1h 43min | 13min | Poco.Net.HTTPResponse.getReasonForStatus (Poco::Net::HTTPResponse::HTTPStatus) |
normal_scanPercent(constENCODING* ,constchar*,constchar*,constchar**) | 89 | 39 | 83 | 1h 43min | 13min | __Globals.normal_scanPercent (constENCODING*,constchar*,constchar* ,constchar**) |
little2_scanRef(constENCODING* ,constchar*,constchar*,constchar**) | 85 | 38 | 80 | 1h 39min | 13min | __Globals.little2_scanRef(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanRef(constENCODING*,constchar* ,constchar*,constchar**) | 85 | 38 | 80 | 1h 39min | 13min | __Globals.big2_scanRef(constENCODING* ,constchar*,constchar*,constchar**) |
normal_scanRef(constENCODING*,constchar* ,constchar*,constchar**) | 85 | 36 | 78 | 1h 37min | 12min | __Globals.normal_scanRef(constENCODING* ,constchar*,constchar*,constchar**) |
formatOne(std::string& ,std::string::const_iterator& ,conststd::string::const_iterator& ,std::vector<Any>::const_iterator&) | 87 | 33 | 76 | 1h 34min | 12min | Poco.anonymous_namespace{format.cpp} .__Globals.formatOne(std::string& ,std::string::const_iterator& ,conststd::string::const_iterator& ,std::vector<Any>::const_iterator&) |
transform(UInt32*,constunsignedchar*) | 151 | 1 | 76 | 1h 34min | 12min | Poco.MD4Engine.transform(UInt32* ,constunsignedchar*) |
error(int,conststd::string&) | 74 | 38 | 75 | 1h 33min | 12min | Poco.Net.SocketImpl.error(int ,conststd::string&) |
append(std::string&,constPoco::DateTime& ,conststd::string&,int) | 85 | 31 | 73 | 1h 31min | 11min | Poco.DateTimeFormatter.append (std::string&,constPoco::DateTime& ,conststd::string&,int) |
testFIFOBufferInt() | 131 | 7 | 72 | 1h 29min | 11min | CoreTest.testFIFOBufferInt() |
getContext(XML_Parser) | 50 | 45 | 70 | 1h 27min | 10min | __Globals.getContext(XML_Parser) |
little2_ignoreSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 72 | 33 | 69 | 1h 26min | 10min | __Globals.little2_ignoreSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_ignoreSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 72 | 33 | 69 | 1h 26min | 10min | __Globals.big2_ignoreSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
setProperty(conststd::string& ,conststd::string&) | 68 | 34 | 68 | 1h 25min | 10min | Poco.Net.RemoteSyslogChannel.setProperty (conststd::string&,conststd::string&) |
testArithmeticOperators() | 115 | 11 | 68 | 1h 25min | 10min | VarTest.testArithmeticOperators() |
addBinding(XML_Parser,PREFIX* ,constATTRIBUTE_ID*,constXML_Char* ,BINDING**) | 63 | 36 | 67 | 1h 24min | 10min | __Globals.addBinding(XML_Parser,PREFIX* ,constATTRIBUTE_ID*,constXML_Char* ,BINDING**) |
find_firstassertedchar(constpcre_uchar* ,pcre_int32*,BOOL) | 62 | 35 | 66 | 1h 22min | 10min | __Globals.find_firstassertedchar (constpcre_uchar*,pcre_int32*,BOOL) |
initScan(constENCODING*const* ,constINIT_ENCODING*,int,constchar* ,constchar*,constchar**) | 64 | 33 | 65 | 1h 21min | 9min | __Globals.initScan(constENCODING*const* ,constINIT_ENCODING*,int,constchar* ,constchar*,constchar**) |
testStringToDouble() | 119 | 6 | 65 | 1h 21min | 9min | StringTest.testStringToDouble() |
getProperty(conststd::string&) | 64 | 32 | 64 | 1h 20min | 9min | Poco.Net.RemoteSyslogChannel.getProperty (conststd::string&) |
![]() | Critical Rule Violated: Avoid methods with too many parameters |
• How to Fix Issues: More properties/fields can be added to the declaring type to handle numerous states. An alternative is to provide a class or a structure dedicated to handle arguments passing. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a method with 7 parameters, up to 6 hours for a methods with 40 or more parameters.
96 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
96 methods | # Parameters | Debt | Annual Interest | Full Name |
---|---|---|---|---|
compile_regex(int,pcre_uchar** ,constpcre_uchar**,int*,BOOL,BOOL,int ,int,pcre_uint32*,pcre_int32* ,pcre_uint32*,pcre_int32*,branch_chain* ,compile_data*,int*) | 15 | 2h 12min | 30min | __Globals.compile_regex(int,pcre_uchar** ,constpcre_uchar**,int*,BOOL,BOOL,int ,int,pcre_uint32*,pcre_int32* ,pcre_uint32*,pcre_int32*,branch_chain* ,compile_data*,int*) |
compile_branch(int*,pcre_uchar** ,constpcre_uchar**,int*,pcre_uint32* ,pcre_int32*,pcre_uint32*,pcre_int32* ,branch_chain*,int,compile_data*,int*) | 12 | 1h 45min | 19min | __Globals.compile_branch(int* ,pcre_uchar**,constpcre_uchar**,int* ,pcre_uint32*,pcre_int32*,pcre_uint32* ,pcre_int32*,branch_chain*,int ,compile_data*,int*) |
format(std::string&,conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 12 | 1h 45min | 19min | Poco.__Globals.format(std::string& ,conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
format(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.__Globals.format(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
format(std::string&,conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.__Globals.format(std::string& ,conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
fatal(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.fatal(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
error(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.error(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
notice(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.notice(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
information(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.information (conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
debug(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.debug(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
trace(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 11 | 1h 36min | 16min | Poco.Logger.trace(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
doParseXmlDecl(constENCODING*(*) (constENCODING*,constchar*,constchar*) ,int,constENCODING*,constchar* ,constchar*,constchar**,constchar** ,constchar**,constchar**,constENCODING** ,int*) | 11 | 1h 36min | 16min | __Globals.doParseXmlDecl(constENCODING* (*)(constENCODING*,constchar*,constchar* ),int,constENCODING*,constchar* ,constchar*,constchar**,constchar** ,constchar**,constchar**,constENCODING** ,int*) |
pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) | 10 | 1h 27min | 12min | __Globals.pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) |
format(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.__Globals.format(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
format(std::string&,conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.__Globals.format(std::string& ,conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
fatal(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.fatal(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
error(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.error(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
notice(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.notice(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
information(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.information (conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
debug(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.debug(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
trace(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 10 | 1h 27min | 12min | Poco.Logger.trace(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
XmlParseXmlDecl(int,constENCODING* ,constchar*,constchar*,constchar** ,constchar**,constchar**,constchar** ,constENCODING**,int*) | 10 | 1h 27min | 12min | __Globals.XmlParseXmlDecl(int ,constENCODING*,constchar*,constchar* ,constchar**,constchar**,constchar** ,constchar**,constENCODING**,int*) |
XmlParseXmlDeclNS(int,constENCODING* ,constchar*,constchar*,constchar** ,constchar**,constchar**,constchar** ,constENCODING**,int*) | 10 | 1h 27min | 12min | __Globals.XmlParseXmlDeclNS(int ,constENCODING*,constchar*,constchar* ,constchar**,constchar**,constchar** ,constchar**,constENCODING**,int*) |
MutationEvent(Poco::XML::Document* ,constXMLString&,Poco::XML::EventTarget* ,bool,bool,Poco::XML::Node* ,constXMLString&,constXMLString& ,constXMLString& ,Poco::XML::MutationEvent::AttrChangeTyp e) | 10 | 1h 27min | 12min | Poco.XML.MutationEvent.MutationEvent (Poco::XML::Document*,constXMLString& ,Poco::XML::EventTarget*,bool,bool ,Poco::XML::Node*,constXMLString& ,constXMLString&,constXMLString& ,Poco::XML::MutationEvent::AttrChangeTyp e) |
dataElement(constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&) | 10 | 1h 27min | 12min | Poco.XML.XMLWriter.dataElement (constXMLString&,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,constXMLString&) |
internal_dfa_exec(dfa_match_data* ,constpcre_uchar*,constpcre_uchar*,int ,int*,int,int*,int,int) | 9 | 1h 18min | 9min | __Globals.internal_dfa_exec (dfa_match_data*,constpcre_uchar* ,constpcre_uchar*,int,int*,int,int*,int ,int) |
format(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.__Globals.format(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
format(std::string&,conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.__Globals.format(std::string& ,conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
fatal(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.fatal(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
error(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.error(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
notice(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.notice(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
information(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.information (conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
debug(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.debug(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
trace(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 9 | 1h 18min | 9min | Poco.Logger.trace(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
LocalDateTime(int,int,int,int,int,int ,int,int,int) | 9 | 1h 18min | 9min | Poco.LocalDateTime.LocalDateTime(int,int ,int,int,int,int,int,int,int) |
assign(int,int,int,int,int,int,int,int ,int) | 9 | 1h 18min | 9min | Poco.LocalDateTime.assign(int,int,int ,int,int,int,int,int,int) |
InitialScaledStartValues(uint64_t,int ,bool,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | 9 | 1h 18min | 9min | double_conversion.__Globals .InitialScaledStartValues(uint64_t,int ,bool,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
handleEntityDecl(void*,constXML_Char* ,int,constXML_Char*,int,constXML_Char* ,constXML_Char*,constXML_Char* ,constXML_Char*) | 9 | 1h 18min | 9min | Poco.XML.ParserEngine.handleEntityDecl (void*,constXML_Char*,int,constXML_Char* ,int,constXML_Char*,constXML_Char* ,constXML_Char*,constXML_Char*) |
DoubleToAscii(double ,double_conversion::DoubleToStringConver ter::DtoaMode,int,char*,int,bool*,int* ,int*) | 8 | 1h 9min | 5min | __Globals.DoubleToAscii(double ,double_conversion::DoubleToStringConver ter::DtoaMode,int,char*,int,bool*,int* ,int*) |
deflateInit2_(z_streamp,int,int,int,int ,int,constchar*,int) | 8 | 1h 9min | 5min | __Globals.deflateInit2_(z_streamp,int ,int,int,int,int,constchar*,int) |
pcre_exec(constpcre*,constpcre_extra* ,constchar*,int,int,int,int*,int) | 8 | 1h 9min | 5min | __Globals.pcre_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int) |
format(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.__Globals.format(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
format(std::string&,conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.__Globals.format(std::string& ,conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
intToStr<T>(T,unsignedshort,char* ,std::size_t&,bool,int,char,char) | 8 | 1h 9min | 5min | Poco.__Globals.intToStr<T>(T ,unsignedshort,char*,std::size_t&,bool ,int,char,char) |
uIntToStr<T>(T,unsignedshort,char* ,std::size_t&,bool,int,char,char) | 8 | 1h 9min | 5min | Poco.__Globals.uIntToStr<T>(T ,unsignedshort,char*,std::size_t&,bool ,int,char,char) |
fatal(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.fatal(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
error(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.error(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
notice(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.notice(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
information(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.information (conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
debug(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.debug(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
trace(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 8 | 1h 9min | 5min | Poco.Logger.trace(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
DateTime(int,int,int,int,int,int,int,int ) | 8 | 1h 9min | 5min | Poco.DateTime.DateTime(int,int,int,int ,int,int,int,int) |
assign(int,int,int,int,int,int,int,int) | 8 | 1h 9min | 5min | Poco.DateTime.assign(int,int,int,int,int ,int,int,int) |
isValid(int,int,int,int,int,int,int,int) | 8 | 1h 9min | 5min | Poco.DateTime.isValid(int,int,int,int ,int,int,int,int) |
toJulianDay(int,int,int,int,int,int,int ,int) | 8 | 1h 9min | 5min | Poco.DateTime.toJulianDay(int,int,int ,int,int,int,int,int) |
LocalDateTime(int,int,int,int,int,int ,int,int) | 8 | 1h 9min | 5min | Poco.LocalDateTime.LocalDateTime(int,int ,int,int,int,int,int,int) |
assign(int,int,int,int,int,int,int,int) | 8 | 1h 9min | 5min | Poco.LocalDateTime.assign(int,int,int ,int,int,int,int,int) |
InitialScaledStartValuesPositiveExponent (uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | 8 | 1h 9min | 5min | double_conversion.__Globals .InitialScaledStartValuesPositiveExponen t(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
InitialScaledStartValuesNegativeExponent PositivePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | 8 | 1h 9min | 5min | double_conversion.__Globals .InitialScaledStartValuesNegativeExponen tPositivePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
InitialScaledStartValuesNegativeExponent NegativePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | 8 | 1h 9min | 5min | double_conversion.__Globals .InitialScaledStartValuesNegativeExponen tNegativePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
NetworkInterface(conststd::string& ,conststd::string&,conststd::string& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress&,unsignedint ,MACAddress*) | 8 | 1h 9min | 5min | Poco.Net.NetworkInterface .NetworkInterface(conststd::string& ,conststd::string&,conststd::string& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress&,unsignedint ,MACAddress*) |
NetworkInterfaceImpl(conststd::string& ,conststd::string&,conststd::string& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress&,unsignedint ,NetworkInterface::MACAddress*) | 8 | 1h 9min | 5min | Poco.Net.NetworkInterfaceImpl .NetworkInterfaceImpl(conststd::string& ,conststd::string&,conststd::string& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress& ,constPoco::Net::IPAddress&,unsignedint ,NetworkInterface::MACAddress*) |
doProlog(XML_Parser,constENCODING* ,constchar*,constchar*,int,constchar* ,constchar**,XML_Bool) | 8 | 1h 9min | 5min | __Globals.doProlog(XML_Parser ,constENCODING*,constchar*,constchar* ,int,constchar*,constchar**,XML_Bool) |
initMutationEvent(constXMLString&,bool ,bool,Poco::XML::Node*,constXMLString& ,constXMLString&,constXMLString& ,Poco::XML::MutationEvent::AttrChangeTyp e) | 8 | 1h 9min | 5min | Poco.XML.MutationEvent.initMutationEvent (constXMLString&,bool,bool ,Poco::XML::Node*,constXMLString& ,constXMLString&,constXMLString& ,Poco::XML::MutationEvent::AttrChangeTyp e) |
pcre_copy_named_substring(constpcre* ,constchar*,int*,int,constchar*,char* ,int) | 7 | 1h 0min | 2min 0s | __Globals.pcre_copy_named_substring (constpcre*,constchar*,int*,int ,constchar*,char*,int) |
match(constpcre_uchar*,constpcre_uchar* ,constpcre_uchar*,int,match_data* ,eptrblock*,unsignedint) | 7 | 1h 0min | 2min 0s | __Globals.match(constpcre_uchar* ,constpcre_uchar*,constpcre_uchar*,int ,match_data*,eptrblock*,unsignedint) |
format(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.__Globals.format(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
format(std::string&,conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.__Globals.format(std::string& ,conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
intToStr<T>(T,unsignedshort,std::string& ,bool,int,char,char) | 7 | 1h 0min | 2min 0s | Poco.__Globals.intToStr<T>(T ,unsignedshort,std::string&,bool,int ,char,char) |
uIntToStr<T>(T,unsignedshort ,std::string&,bool,int,char,char) | 7 | 1h 0min | 2min 0s | Poco.__Globals.uIntToStr<T>(T ,unsignedshort,std::string&,bool,int ,char,char) |
fatal(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.fatal(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.critical(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
error(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.error(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.warning(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
notice(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.notice(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
information(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.information (conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) |
debug(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.debug(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
trace(conststd::string&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&) | 7 | 1h 0min | 2min 0s | Poco.Logger.trace(conststd::string& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any& ,constPoco::Any&,constPoco::Any&) |
launchImpl(conststd::string& ,constArgsImpl&,conststd::string& ,Poco::Pipe*,Poco::Pipe*,Poco::Pipe* ,constEnvImpl&) | 7 | 1h 0min | 2min 0s | Poco.ProcessImpl.launchImpl (conststd::string&,constArgsImpl& ,conststd::string&,Poco::Pipe* ,Poco::Pipe*,Poco::Pipe*,constEnvImpl&) |
launch(conststd::string&,constArgs& ,conststd::string&,Poco::Pipe* ,Poco::Pipe*,Poco::Pipe*,constEnv&) | 7 | 1h 0min | 2min 0s | Poco.Process.launch(conststd::string& ,constArgs&,conststd::string& ,Poco::Pipe*,Poco::Pipe*,Poco::Pipe* ,constEnv&) |
FixupMultiply10(int,bool,int* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | 7 | 1h 0min | 2min 0s | double_conversion.__Globals .FixupMultiply10(int,bool,int* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
GenerateShortestDigits (double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*,bool,Vector <char>,int*) | 7 | 1h 0min | 2min 0s | double_conversion.__Globals .GenerateShortestDigits (double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*,bool,Vector <char>,int*) |
RoundWeed(Vector<char>,int,uint64_t ,uint64_t,uint64_t,uint64_t,uint64_t) | 7 | 1h 0min | 2min 0s | double_conversion.__Globals.RoundWeed (Vector<char>,int,uint64_t,uint64_t ,uint64_t,uint64_t,uint64_t) |
RadixStringToIeee<radix_log_2> (constchar*,constchar*,bool,bool,double ,bool,constchar**) | 7 | 1h 0min | 2min 0s | double_conversion.__Globals .RadixStringToIeee<radix_log_2> (constchar*,constchar*,bool,bool,double ,bool,constchar**) |
digest(Poco::DigestEngine& ,conststd::string&,conststd::string& ,conststd::string&,conststd::string& ,conststd::string&,conststd::string&) | 7 | 1h 0min | 2min 0s | anonymous_namespace{httpdigestcredential s.cpp}.__Globals.digest (Poco::DigestEngine&,conststd::string& ,conststd::string&,conststd::string& ,conststd::string&,conststd::string& ,conststd::string&) |
doContent(XML_Parser,int,constENCODING* ,constchar*,constchar*,constchar** ,XML_Bool) | 7 | 1h 0min | 2min 0s | __Globals.doContent(XML_Parser,int ,constENCODING*,constchar*,constchar* ,constchar**,XML_Bool) |
parsePseudoAttribute(constENCODING* ,constchar*,constchar*,constchar** ,constchar**,constchar**,constchar**) | 7 | 1h 0min | 2min 0s | __Globals.parsePseudoAttribute (constENCODING*,constchar*,constchar* ,constchar**,constchar**,constchar** ,constchar**) |
Attr(Poco::XML::Document* ,Poco::XML::Element*,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,bool) | 7 | 1h 0min | 2min 0s | Poco.XML.Attr.Attr(Poco::XML::Document* ,Poco::XML::Element*,constXMLString& ,constXMLString&,constXMLString& ,constXMLString&,bool) |
![]() | Rule Violated: Avoid methods with too many local variables |
• How to Fix Issues: To refactor such method and increase code quality and maintainability, certainly you'll have to split the method into several smaller methods or even create one or several classes to implement the logic. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). The estimated Debt, which means the effort to fix such issue, varies linearly from 10 minutes for a method with 15 variables, up to 2 hours for a methods with 80 or more variables.
67 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
67 methods | # Variables | Debt | Annual Interest | Full Name |
---|---|---|---|---|
compile_branch(int*,pcre_uchar** ,constpcre_uchar**,int*,pcre_uint32* ,pcre_int32*,pcre_uint32*,pcre_int32* ,branch_chain*,int,compile_data*,int*) | 145 | 6h 0min | 2h 0min | __Globals.compile_branch(int* ,pcre_uchar**,constpcre_uchar**,int* ,pcre_uint32*,pcre_int32*,pcre_uint32* ,pcre_int32*,branch_chain*,int ,compile_data*,int*) |
internal_dfa_exec(dfa_match_data* ,constpcre_uchar*,constpcre_uchar*,int ,int*,int,int*,int,int) | 136 | 6h 0min | 2h 0min | __Globals.internal_dfa_exec (dfa_match_data*,constpcre_uchar* ,constpcre_uchar*,int,int*,int,int*,int ,int) |
match(constpcre_uchar*,constpcre_uchar* ,constpcre_uchar*,int,match_data* ,eptrblock*,unsignedint) | 132 | 6h 0min | 2h 0min | __Globals.match(constpcre_uchar* ,constpcre_uchar*,constpcre_uchar*,int ,match_data*,eptrblock*,unsignedint) |
testStringTokenizer() | 50 | 3h 41min | 1h 5min | StringTokenizerTest.testStringTokenizer( ) |
doProlog(XML_Parser,constENCODING* ,constchar*,constchar*,int,constchar* ,constchar**,XML_Bool) | 49 | 3h 36min | 1h 3min | __Globals.doProlog(XML_Parser ,constENCODING*,constchar*,constchar* ,int,constchar*,constchar**,XML_Bool) |
doContent(XML_Parser,int,constENCODING* ,constchar*,constchar*,constchar** ,XML_Bool) | 41 | 3h 0min | 49min | __Globals.doContent(XML_Parser,int ,constENCODING*,constchar*,constchar* ,constchar**,XML_Bool) |
pcre_exec(constpcre*,constpcre_extra* ,constchar*,int,int,int,int*,int) | 38 | 2h 46min | 43min | __Globals.pcre_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int) |
storeAtts(XML_Parser,constENCODING* ,constchar*,TAG_NAME*,BINDING**) | 38 | 2h 46min | 43min | __Globals.storeAtts(XML_Parser ,constENCODING*,constchar*,TAG_NAME* ,BINDING**) |
pcre_compile2(constchar*,int,int* ,constchar**,int*,constunsignedchar*) | 37 | 2h 41min | 41min | __Globals.pcre_compile2(constchar*,int ,int*,constchar**,int* ,constunsignedchar*) |
testIsStruct() | 36 | 2h 36min | 40min | VarTest.testIsStruct() |
testIsArray() | 35 | 2h 32min | 38min | VarTest.testIsArray() |
testArrayIdxOperator() | 34 | 2h 27min | 36min | VarTest.testArrayIdxOperator() |
XML_ExternalEntityParserCreate (XML_Parser,constXML_Char* ,constXML_Char*) | 33 | 2h 23min | 34min | __Globals.XML_ExternalEntityParserCreate (XML_Parser,constXML_Char* ,constXML_Char*) |
testTypeList() | 31 | 2h 13min | 31min | TypeListTest.testTypeList() |
pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) | 28 | 2h 0min | 25min | __Globals.pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) |
testIncrementDecrement() | 27 | 1h 55min | 23min | DateTimeTest.testIncrementDecrement() |
StringToIeee(constchar*,int,int*,bool) | 26 | 1h 50min | 21min | __Globals.StringToIeee(constchar*,int ,int*,bool) |
map(bool,bool) | 26 | 1h 50min | 21min | Poco.Net.NetworkInterface.map(bool,bool) |
inflate_table(codetype,unsignedshort* ,unsignedint,code**,unsignedint* ,unsignedshort*) | 25 | 1h 46min | 20min | __Globals.inflate_table(codetype ,unsignedshort*,unsignedint,code** ,unsignedint*,unsignedshort*) |
testDouble() | 25 | 1h 46min | 20min | VarTest.testDouble() |
testByteOrderBigEndian() | 24 | 1h 41min | 18min | ByteOrderTest.testByteOrderBigEndian() |
testByteOrderLittleEndian() | 24 | 1h 41min | 18min | ByteOrderTest.testByteOrderLittleEndian( ) |
testByteOrderNetwork() | 24 | 1h 41min | 18min | ByteOrderTest.testByteOrderNetwork() |
testFloat() | 24 | 1h 41min | 18min | VarTest.testFloat() |
testSetYearDay() | 24 | 1h 41min | 18min | DateTimeTest.testSetYearDay() |
compile_regex(int,pcre_uchar** ,constpcre_uchar**,int*,BOOL,BOOL,int ,int,pcre_uint32*,pcre_int32* ,pcre_uint32*,pcre_int32*,branch_chain* ,compile_data*,int*) | 23 | 1h 36min | 16min | __Globals.compile_regex(int,pcre_uchar** ,constpcre_uchar**,int*,BOOL,BOOL,int ,int,pcre_uint32*,pcre_int32* ,pcre_uint32*,pcre_int32*,branch_chain* ,compile_data*,int*) |
compare_opcodes(constpcre_uchar*,BOOL ,constcompile_data*,constpcre_uint32* ,constpcre_uchar*,int*) | 23 | 1h 36min | 16min | __Globals.compare_opcodes (constpcre_uchar*,BOOL ,constcompile_data*,constpcre_uint32* ,constpcre_uchar*,int*) |
DiyFpStrtod(Vector<constchar>,int ,double*) | 22 | 1h 32min | 14min | double_conversion.__Globals.DiyFpStrtod (Vector<constchar>,int,double*) |
testInt8() | 22 | 1h 32min | 14min | VarTest.testInt8() |
testInt16() | 22 | 1h 32min | 14min | VarTest.testInt16() |
testInt32() | 22 | 1h 32min | 14min | VarTest.testInt32() |
testInt64() | 22 | 1h 32min | 14min | VarTest.testInt64() |
testUInt8() | 22 | 1h 32min | 14min | VarTest.testUInt8() |
testUInt16() | 22 | 1h 32min | 14min | VarTest.testUInt16() |
testUInt32() | 22 | 1h 32min | 14min | VarTest.testUInt32() |
testUInt64() | 22 | 1h 32min | 14min | VarTest.testUInt64() |
testLong() | 22 | 1h 32min | 14min | VarTest.testLong() |
testULong() | 22 | 1h 32min | 14min | VarTest.testULong() |
testString() | 22 | 1h 32min | 14min | VarTest.testString() |
inflate_fast(z_streamp,unsignedint) | 21 | 1h 27min | 12min | __Globals.inflate_fast(z_streamp ,unsignedint) |
testBool() | 21 | 1h 27min | 12min | VarTest.testBool() |
testChar() | 21 | 1h 27min | 12min | VarTest.testChar() |
testJSONDeserializePrimitives() | 21 | 1h 27min | 12min | VarTest.testJSONDeserializePrimitives() |
testCopyDirectory() | 21 | 1h 27min | 12min | FileTest.testCopyDirectory() |
benchmarkStrToFloat() | 20 | 1h 23min | 11min | StringTest.benchmarkStrToFloat() |
testBufferedCopy() | 20 | 1h 23min | 11min | StreamCopierTest.testBufferedCopy() |
testBufferedCopy64() | 20 | 1h 23min | 11min | StreamCopierTest.testBufferedCopy64() |
testIdentityUTF8In() | 20 | 1h 23min | 11min | StreamConverterTest.testIdentityUTF8In() |
testDecoder() | 19 | 1h 18min | 9min | HexBinaryTest.testDecoder() |
testIdentityUTF8() | 19 | 1h 18min | 9min | TextConverterTest.testIdentityUTF8() |
parse(std::istream&) | 19 | 1h 18min | 9min | Poco.JSON.Template.parse(std::istream&) |
select(SocketList&,SocketList& ,SocketList&,constPoco::Timespan&) | 19 | 1h 18min | 9min | Poco.Net.Socket.select(SocketList& ,SocketList&,SocketList& ,constPoco::Timespan&) |
Strtof(Vector<constchar>,int) | 18 | 1h 13min | 7min | double_conversion.__Globals.Strtof (Vector<constchar>,int) |
inflate(z_streamp,int) | 17 | 1h 9min | 5min | __Globals.inflate(z_streamp,int) |
find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) | 17 | 1h 9min | 5min | __Globals.find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) |
testBuffer() | 17 | 1h 9min | 5min | CoreTest.testBuffer() |
list(bool,bool) | 17 | 1h 9min | 5min | Poco.Net.NetworkInterface.list(bool,bool ) |
parseBSD(conststd::string& ,RemoteSyslogChannel::Severity ,RemoteSyslogChannel::Facility ,std::size_t&,Poco::Message&) | 17 | 1h 9min | 5min | Poco.Net.SyslogParser.parseBSD (conststd::string& ,RemoteSyslogChannel::Severity ,RemoteSyslogChannel::Facility ,std::size_t&,Poco::Message&) |
declareNamespaces(constXMLString& ,constXMLString&,constXMLString& ,constPoco::XML::Attributes&) | 17 | 1h 9min | 5min | Poco.XML.XMLWriter.declareNamespaces (constXMLString&,constXMLString& ,constXMLString& ,constPoco::XML::Attributes&) |
MultiplyByPowerOfTen(int) | 16 | 1h 4min | 3min 48s | __Globals.MultiplyByPowerOfTen(int) |
check_escape(constpcre_uchar** ,pcre_uint32*,int*,int,int,BOOL) | 16 | 1h 4min | 3min 48s | __Globals.check_escape(constpcre_uchar** ,pcre_uint32*,int*,int,int,BOOL) |
launchImpl(conststd::string& ,constArgsImpl&,conststd::string& ,Poco::Pipe*,Poco::Pipe*,Poco::Pipe* ,constEnvImpl&) | 16 | 1h 4min | 3min 48s | Poco.ProcessImpl.launchImpl (conststd::string&,constArgsImpl& ,conststd::string&,Poco::Pipe* ,Poco::Pipe*,Poco::Pipe*,constEnvImpl&) |
benchmarkStrToInt() | 16 | 1h 4min | 3min 48s | StringTest.benchmarkStrToInt() |
benchmarkFloatToStr() | 16 | 1h 4min | 3min 48s | StringTest.benchmarkFloatToStr() |
testTupleOrder() | 16 | 1h 4min | 3min 48s | TuplesTest.testTupleOrder() |
testMatchRange() | 16 | 1h 4min | 3min 48s | GlobTest.testMatchRange() |
receiveBytes(void*,int,int) | 16 | 1h 4min | 3min 48s | Poco.Net.WebSocketImpl.receiveBytes (void*,int,int) |
![]() | Rule Violated: Avoid methods with too many overloads |
• How to Fix Issues: Typically the too many overloads phenomenon appears when an algorithm takes a various set of in-parameters. Each overload is presented as a facility to provide a various set of in-parameters. In such situation, the C# and VB.NET language feature named Named and Optional arguments should be used. The too many overloads phenomenon can also be a consequence of the usage of the visitor design pattern http://en.wikipedia.org/wiki/Visitor_pattern since a method named Visit() must be provided for each sub type. In such situation there is no need for fix. Sometime too many overloads phenomenon is not the symptom of a problem, for example when a numeric to something conversion method applies to all numeric and nullable numeric types. The estimated Debt, which means the effort to fix such issue, is of 2 minutes per method overload.
991 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 991 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
991 methods | overloads | Debt | Severity | Full Name |
---|---|---|---|---|
extract(std::size_t,Poco::Int8&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Int8&) |
extract(std::size_t,std::vector <Poco::Int8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::Int8>&) |
extract(std::size_t,std::deque <Poco::Int8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::Int8>&) |
extract(std::size_t,std::list<Poco::Int8 >&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::Int8>&) |
extract(std::size_t,Poco::UInt8&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::UInt8&) |
extract(std::size_t,std::vector <Poco::UInt8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::UInt8>&) |
extract(std::size_t,std::deque <Poco::UInt8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::UInt8>&) |
extract(std::size_t,std::list <Poco::UInt8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::UInt8>&) |
extract(std::size_t,Poco::Int16&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Int16&) |
extract(std::size_t,std::vector <Poco::Int16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::Int16>&) |
extract(std::size_t,std::deque <Poco::Int16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::Int16>&) |
extract(std::size_t,std::list <Poco::Int16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::Int16>&) |
extract(std::size_t,Poco::UInt16&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::UInt16&) |
extract(std::size_t,std::vector <Poco::UInt16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::UInt16>&) |
extract(std::size_t,std::deque <Poco::UInt16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::UInt16>&) |
extract(std::size_t,std::list <Poco::UInt16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::UInt16>&) |
extract(std::size_t,Poco::Int32&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Int32&) |
extract(std::size_t,std::vector <Poco::Int32>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::Int32>&) |
extract(std::size_t,std::deque <Poco::Int32>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::Int32>&) |
extract(std::size_t,std::list <Poco::Int32>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::Int32>&) |
extract(std::size_t,Poco::UInt32&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::UInt32&) |
extract(std::size_t,std::vector <Poco::UInt32>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::UInt32>&) |
extract(std::size_t,std::deque <Poco::UInt32>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::UInt32>&) |
extract(std::size_t,std::list <Poco::UInt32>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::UInt32>&) |
extract(std::size_t,Poco::Int64&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Int64&) |
extract(std::size_t,std::vector <Poco::Int64>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::Int64>&) |
extract(std::size_t,std::deque <Poco::Int64>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::Int64>&) |
extract(std::size_t,std::list <Poco::Int64>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::Int64>&) |
extract(std::size_t,Poco::UInt64&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::UInt64&) |
extract(std::size_t,std::vector <Poco::UInt64>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Poco::UInt64>&) |
extract(std::size_t,std::deque <Poco::UInt64>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Poco::UInt64>&) |
extract(std::size_t,std::list <Poco::UInt64>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Poco::UInt64>&) |
extract(std::size_t,long&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,long&) |
extract(std::size_t,unsignedlong&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,unsignedlong&) |
extract(std::size_t,std::vector<long>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<long>&) |
extract(std::size_t,std::deque<long>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<long>&) |
extract(std::size_t,std::list<long>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<long>&) |
extract(std::size_t,bool&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,bool&) |
extract(std::size_t,std::vector<bool>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<bool>&) |
extract(std::size_t,std::deque<bool>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<bool>&) |
extract(std::size_t,std::list<bool>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<bool>&) |
extract(std::size_t,float&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,float&) |
extract(std::size_t,std::vector<float>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<float>&) |
extract(std::size_t,std::deque<float>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<float>&) |
extract(std::size_t,std::list<float>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<float>&) |
extract(std::size_t,double&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,double&) |
extract(std::size_t,std::vector<double>& ) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<double>&) |
extract(std::size_t,std::deque<double>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<double>&) |
extract(std::size_t,std::list<double>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<double>&) |
extract(std::size_t,char&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,char&) |
extract(std::size_t,std::vector<char>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<char>&) |
extract(std::size_t,std::deque<char>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<char>&) |
extract(std::size_t,std::list<char>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<char>&) |
extract(std::size_t,std::string&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::string&) |
extract(std::size_t,std::vector <std::string>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<std::string>&) |
extract(std::size_t,std::deque <std::string>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<std::string>&) |
extract(std::size_t,std::list <std::string>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<std::string>&) |
extract(std::size_t,UTF16String&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,UTF16String&) |
extract(std::size_t,std::vector <UTF16String>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<UTF16String>&) |
extract(std::size_t,std::deque <UTF16String>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<UTF16String>&) |
extract(std::size_t,std::list <UTF16String>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<UTF16String>&) |
extract(std::size_t,BLOB&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,BLOB&) |
extract(std::size_t,CLOB&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,CLOB&) |
extract(std::size_t,std::vector<BLOB>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<BLOB>&) |
extract(std::size_t,std::deque<BLOB>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<BLOB>&) |
extract(std::size_t,std::list<BLOB>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<BLOB>&) |
extract(std::size_t,std::vector<CLOB>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<CLOB>&) |
extract(std::size_t,std::deque<CLOB>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<CLOB>&) |
extract(std::size_t,std::list<CLOB>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<CLOB>&) |
extract(std::size_t,Poco::DateTime&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::DateTime&) |
extract(std::size_t,std::vector<DateTime >&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<DateTime>&) |
extract(std::size_t,std::deque<DateTime >&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<DateTime>&) |
extract(std::size_t,std::list<DateTime>& ) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<DateTime>&) |
extract(std::size_t,Poco::Data::Date&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Data::Date&) |
extract(std::size_t,std::vector<Date>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Date>&) |
extract(std::size_t,std::deque<Date>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Date>&) |
extract(std::size_t,std::list<Date>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Date>&) |
extract(std::size_t,Poco::Data::Time&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Data::Time&) |
extract(std::size_t,std::vector<Time>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Time>&) |
extract(std::size_t,std::deque<Time>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Time>&) |
extract(std::size_t,std::list<Time>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Time>&) |
extract(std::size_t,Poco::Any&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Any&) |
extract(std::size_t,std::vector<Any>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector<Any>&) |
extract(std::size_t,std::deque<Any>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque<Any>&) |
extract(std::size_t,std::list<Any>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list<Any>&) |
extract(std::size_t,Poco::Dynamic::Var&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,Poco::Dynamic::Var&) |
extract(std::size_t,std::vector <Poco::Dynamic::Var>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::vector <Poco::Dynamic::Var>&) |
extract(std::size_t,std::deque <Poco::Dynamic::Var>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::deque <Poco::Dynamic::Var>&) |
extract(std::size_t,std::list <Poco::Dynamic::Var>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractExtractor.extract (std::size_t,std::list <Poco::Dynamic::Var>&) |
prepare(std::size_t,constPoco::Int8&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,constPoco::Int8&) |
prepare(std::size_t,conststd::vector <Poco::Int8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::vector<Poco::Int8 >&) |
prepare(std::size_t,conststd::deque <Poco::Int8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::deque<Poco::Int8 >&) |
prepare(std::size_t,conststd::list <Poco::Int8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::list<Poco::Int8>& ) |
prepare(std::size_t,constPoco::UInt8&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,constPoco::UInt8&) |
prepare(std::size_t,conststd::vector <Poco::UInt8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::vector <Poco::UInt8>&) |
prepare(std::size_t,conststd::deque <Poco::UInt8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::deque<Poco::UInt8 >&) |
prepare(std::size_t,conststd::list <Poco::UInt8>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::list<Poco::UInt8 >&) |
prepare(std::size_t,constPoco::Int16&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,constPoco::Int16&) |
prepare(std::size_t,conststd::vector <Poco::Int16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::vector <Poco::Int16>&) |
prepare(std::size_t,conststd::deque <Poco::Int16>&) | 89 methods | 2min 0s | Medium | Poco.Data.AbstractPreparator.prepare (std::size_t,conststd::deque<Poco::Int16 >&) |
![]() | Rule Violated: Avoid methods potentially poorly commented |
• How to Fix Issues: Typically add more comment. But code commenting is subject to controversy. While poorly written and designed code would needs a lot of comment to be understood, clean code doesn't need that much comment, especially if variables and methods are properly named and convey enough information. Unit-Test code can also play the role of code commenting. However, even when writing clean and well-tested code, one will have to write hacks at a point, usually to circumvent some API limitations or bugs. A hack is a non-trivial piece of code, that doesn't make sense at first glance, and that took time and web research to be found. In such situation comments must absolutely be used to express the intention, the need for the hacks and the source where the solution has been found. The estimated Debt, which means the effort to comment such method, varies linearly from 2 minutes for 10 lines of code not commented, up to 20 minutes for 200 or more, lines of code not commented.
598 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 598 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
598 methods | Percentage Comment | # lines of code (LOC) | # lines of comment | nbLinesOfCodeNotCommented | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
match(constpcre_uchar*,constpcre_uchar* ,constpcre_uchar*,int,match_data* ,eptrblock*,unsignedint) | 19.58 | 3 430 | 835 | 2 595 | 20min | 2min 17s | __Globals.match(constpcre_uchar* ,constpcre_uchar*,constpcre_uchar*,int ,match_data*,eptrblock*,unsignedint) |
internal_dfa_exec(dfa_match_data* ,constpcre_uchar*,constpcre_uchar*,int ,int*,int,int*,int,int) | 19.66 | 1 765 | 432 | 1 333 | 20min | 2min 14s | __Globals.internal_dfa_exec (dfa_match_data*,constpcre_uchar* ,constpcre_uchar*,int,int*,int,int*,int ,int) |
doProlog(XML_Parser,constENCODING* ,constchar*,constchar*,int,constchar* ,constchar**,XML_Bool) | 8.5 | 667 | 62 | 605 | 20min | 10min | __Globals.doProlog(XML_Parser ,constENCODING*,constchar*,constchar* ,int,constchar*,constchar**,XML_Bool) |
transform() | 0.95 | 520 | 5 | 515 | 20min | 15min | Poco.SHA1Engine.transform() |
convert(int,unsignedchar*,int) | 0 | 460 | 0 | 460 | 20min | 16min | Poco.Windows1251Encoding.convert(int ,unsignedchar*,int) |
convert(int,unsignedchar*,int) | 0 | 300 | 0 | 300 | 20min | 16min | Poco.Windows1250Encoding.convert(int ,unsignedchar*,int) |
normal_prologTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 296 | 0 | 296 | 20min | 16min | __Globals.normal_prologTok (constENCODING*,constchar*,constchar* ,constchar**) |
little2_prologTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 296 | 0 | 296 | 20min | 16min | __Globals.little2_prologTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_prologTok(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 296 | 0 | 296 | 20min | 16min | __Globals.big2_prologTok(constENCODING* ,constchar*,constchar*,constchar**) |
testFIFOBufferChar() | 0 | 294 | 0 | 294 | 20min | 16min | CoreTest.testFIFOBufferChar() |
doContent(XML_Parser,int,constENCODING* ,constchar*,constchar*,constchar** ,XML_Bool) | 8.94 | 326 | 32 | 294 | 20min | 9min | __Globals.doContent(XML_Parser,int ,constENCODING*,constchar*,constchar* ,constchar**,XML_Bool) |
find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) | 19.52 | 371 | 90 | 281 | 20min | 2min 20s | __Globals.find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) |
testParse() | 0.4 | 248 | 1 | 247 | 20min | 15min | URITest.testParse() |
normal_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 247 | 0 | 247 | 20min | 16min | __Globals.normal_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) |
little2_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 247 | 0 | 247 | 20min | 16min | __Globals.little2_scanAtts (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanAtts(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 247 | 0 | 247 | 20min | 16min | __Globals.big2_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) |
testStringTokenizer() | 0 | 242 | 0 | 242 | 20min | 16min | StringTokenizerTest.testStringTokenizer( ) |
convert(int,unsignedchar*,int) | 0 | 235 | 0 | 235 | 20min | 16min | Poco.Latin2Encoding.convert(int ,unsignedchar*,int) |
normal_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 213 | 0 | 213 | 20min | 16min | __Globals.normal_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
little2_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 213 | 0 | 213 | 20min | 16min | __Globals.little2_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 213 | 0 | 213 | 20min | 16min | __Globals.big2_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
inflateBack(z_streamp,in_func,void* ,out_func,void*) | 19.89 | 282 | 70 | 212 | 20min | 2min 4s | __Globals.inflateBack(z_streamp,in_func ,void*,out_func,void*) |
StringToIeee(constchar*,int,int*,bool) | 0 | 195 | 0 | 195 | 19min | 16min | __Globals.StringToIeee(constchar*,int ,int*,bool) |
find_fixedlength(pcre_uchar*,BOOL,BOOL ,compile_data*,recurse_check*) | 19.68 | 253 | 62 | 191 | 19min | 2min 13s | __Globals.find_fixedlength(pcre_uchar* ,BOOL,BOOL,compile_data*,recurse_check*) |
parseChar<S>(CharIntType,S&) | 12.55 | 216 | 31 | 185 | 18min | 7min | Poco.JSON.Parser.parseChar<S> (CharIntType,S&) |
testTypeList() | 0 | 174 | 0 | 174 | 17min | 16min | TypeListTest.testTypeList() |
normal_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 144 | 0 | 144 | 14min | 16min | __Globals.normal_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
little2_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 144 | 0 | 144 | 14min | 16min | __Globals.little2_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 144 | 0 | 144 | 14min | 16min | __Globals.big2_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
auto_possessify(pcre_uchar*,BOOL ,constcompile_data*) | 13.04 | 160 | 24 | 136 | 13min | 6min | __Globals.auto_possessify(pcre_uchar* ,BOOL,constcompile_data*) |
format(constPoco::Message&,std::string&) | 2.19 | 134 | 3 | 131 | 13min | 14min | Poco.PatternFormatter.format (constPoco::Message&,std::string&) |
testFIFOBufferInt() | 0 | 131 | 0 | 131 | 13min | 16min | CoreTest.testFIFOBufferInt() |
testParseWindows3() | 0 | 125 | 0 | 125 | 12min | 16min | PathTest.testParseWindows3() |
testParseVMS4() | 0 | 124 | 0 | 124 | 12min | 16min | PathTest.testParseVMS4() |
testParseVMS2() | 0 | 122 | 0 | 122 | 12min | 16min | PathTest.testParseVMS2() |
testISO8601Frac() | 0 | 121 | 0 | 121 | 12min | 16min | DateTimeParserTest.testISO8601Frac() |
parse(conststd::string& ,conststd::string&,Poco::DateTime&,int&) | 0 | 120 | 0 | 120 | 12min | 16min | Poco.DateTimeParser.parse (conststd::string&,conststd::string& ,Poco::DateTime&,int&) |
testParseWindows2() | 0 | 120 | 0 | 120 | 12min | 16min | PathTest.testParseWindows2() |
testStringToDouble() | 0 | 119 | 0 | 119 | 11min | 16min | StringTest.testStringToDouble() |
convert(int,unsignedchar*,int) | 0 | 116 | 0 | 116 | 11min | 16min | Poco.Windows1252Encoding.convert(int ,unsignedchar*,int) |
normal_contentTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 116 | 0 | 116 | 11min | 16min | __Globals.normal_contentTok (constENCODING*,constchar*,constchar* ,constchar**) |
little2_contentTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 116 | 0 | 116 | 11min | 16min | __Globals.little2_contentTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_contentTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 116 | 0 | 116 | 11min | 16min | __Globals.big2_contentTok(constENCODING* ,constchar*,constchar*,constchar**) |
testArithmeticOperators() | 0 | 115 | 0 | 115 | 11min | 16min | VarTest.testArithmeticOperators() |
testGuess() | 0 | 115 | 0 | 115 | 11min | 16min | DateTimeParserTest.testGuess() |
testLogger() | 0 | 110 | 0 | 110 | 11min | 16min | LoggerTest.testLogger() |
testConstruction() | 0 | 108 | 0 | 108 | 10min | 16min | URITest.testConstruction() |
testComparisonOperators() | 0 | 104 | 0 | 104 | 10min | 16min | VarTest.testComparisonOperators() |
parse(std::istream&) | 4.39 | 109 | 5 | 104 | 10min | 12min | Poco.JSON.Template.parse(std::istream&) |
normal_cdataSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 103 | 0 | 103 | 10min | 16min | __Globals.normal_cdataSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
little2_cdataSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 103 | 0 | 103 | 10min | 16min | __Globals.little2_cdataSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_cdataSectionTok(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 103 | 0 | 103 | 10min | 16min | __Globals.big2_cdataSectionTok (constENCODING*,constchar*,constchar* ,constchar**) |
close() | 0 | 102 | 0 | 102 | 10min | 16min | Poco.Base32EncoderBuf.close() |
normal_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 102 | 0 | 102 | 10min | 16min | __Globals.normal_scanEndTag (constENCODING*,constchar*,constchar* ,constchar**) |
little2_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 102 | 0 | 102 | 10min | 16min | __Globals.little2_scanEndTag (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 102 | 0 | 102 | 10min | 16min | __Globals.big2_scanEndTag(constENCODING* ,constchar*,constchar*,constchar**) |
testInt() | 0 | 99 | 0 | 99 | 9min | 16min | FormatTest.testInt() |
testParseWindows4() | 0 | 99 | 0 | 99 | 9min | 16min | PathTest.testParseWindows4() |
get_chr_property_list(constpcre_uchar* ,BOOL,constpcre_uint8*,pcre_uint32*) | 18.67 | 122 | 28 | 94 | 9min | 2min 56s | __Globals.get_chr_property_list (constpcre_uchar*,BOOL,constpcre_uint8* ,pcre_uint32*) |
parseVMS(conststd::string&) | 0 | 93 | 0 | 93 | 9min | 16min | Poco.Path.parseVMS(conststd::string&) |
storeEntityValue(XML_Parser ,constENCODING*,constchar*,constchar*) | 12.9 | 108 | 16 | 92 | 9min | 6min | __Globals.storeEntityValue(XML_Parser ,constENCODING*,constchar*,constchar*) |
testParse() | 0 | 90 | 0 | 90 | 9min | 16min | NumberParserTest.testParse() |
normal_scanPercent(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 89 | 0 | 89 | 8min | 16min | __Globals.normal_scanPercent (constENCODING*,constchar*,constchar* ,constchar**) |
normal_scanPoundName(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 89 | 0 | 89 | 8min | 16min | __Globals.normal_scanPoundName (constENCODING*,constchar*,constchar* ,constchar**) |
little2_scanPercent(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 89 | 0 | 89 | 8min | 16min | __Globals.little2_scanPercent (constENCODING*,constchar*,constchar* ,constchar**) |
little2_scanPoundName(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 89 | 0 | 89 | 8min | 16min | __Globals.little2_scanPoundName (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanPercent(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 89 | 0 | 89 | 8min | 16min | __Globals.big2_scanPercent (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanPoundName(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 89 | 0 | 89 | 8min | 16min | __Globals.big2_scanPoundName (constENCODING*,constchar*,constchar* ,constchar**) |
pcre_fullinfo(constpcre* ,constpcre_extra*,int,void*) | 8.57 | 96 | 9 | 87 | 8min | 10min | __Globals.pcre_fullinfo(constpcre* ,constpcre_extra*,int,void*) |
formatOne(std::string& ,std::string::const_iterator& ,conststd::string::const_iterator& ,std::vector<Any>::const_iterator&) | 0 | 87 | 0 | 87 | 8min | 16min | Poco.anonymous_namespace{format.cpp} .__Globals.formatOne(std::string& ,std::string::const_iterator& ,conststd::string::const_iterator& ,std::vector<Any>::const_iterator&) |
testFIFOBufferEOFAndError() | 0 | 86 | 0 | 86 | 8min | 16min | CoreTest.testFIFOBufferEOFAndError() |
testParseUnix4() | 0 | 85 | 0 | 85 | 8min | 16min | PathTest.testParseUnix4() |
normal_scanRef(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 85 | 0 | 85 | 8min | 16min | __Globals.normal_scanRef(constENCODING* ,constchar*,constchar*,constchar**) |
normal_getAtts(constENCODING*,constchar* ,int,ATTRIBUTE*) | 0 | 85 | 0 | 85 | 8min | 16min | __Globals.normal_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) |
little2_scanRef(constENCODING* ,constchar*,constchar*,constchar**) | 0 | 85 | 0 | 85 | 8min | 16min | __Globals.little2_scanRef(constENCODING* ,constchar*,constchar*,constchar**) |
little2_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) | 0 | 85 | 0 | 85 | 8min | 16min | __Globals.little2_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) |
big2_scanRef(constENCODING*,constchar* ,constchar*,constchar**) | 0 | 85 | 0 | 85 | 8min | 16min | __Globals.big2_scanRef(constENCODING* ,constchar*,constchar*,constchar**) |
big2_getAtts(constENCODING*,constchar* ,int,ATTRIBUTE*) | 0 | 85 | 0 | 85 | 8min | 16min | __Globals.big2_getAtts(constENCODING* ,constchar*,int,ATTRIBUTE*) |
strToInt<I>(constchar*,I&,short,char) | 8 | 92 | 8 | 84 | 8min | 10min | Poco.__Globals.strToInt<I>(constchar*,I& ,short,char) |
testCalcs() | 7.14 | 91 | 7 | 84 | 8min | 11min | DateTimeTest.testCalcs() |
testCalcs() | 7.14 | 91 | 7 | 84 | 8min | 11min | LocalDateTimeTest.testCalcs() |
handleError(int) | 1.16 | 85 | 1 | 84 | 8min | 15min | Poco.XML.ParserEngine.handleError(int) |
append(std::string&,constPoco::DateTime& ,conststd::string&,int) | 3.41 | 85 | 3 | 82 | 8min | 13min | Poco.DateTimeFormatter.append (std::string&,constPoco::DateTime& ,conststd::string&,int) |
testMatchRange() | 0 | 82 | 0 | 82 | 8min | 16min | GlobTest.testMatchRange() |
testParseUnix3() | 0 | 81 | 0 | 81 | 8min | 16min | PathTest.testParseUnix3() |
launchImpl(conststd::string& ,constArgsImpl&,conststd::string& ,Poco::Pipe*,Poco::Pipe*,Poco::Pipe* ,constEnvImpl&) | 0 | 79 | 0 | 79 | 7min | 16min | Poco.ProcessImpl.launchImpl (conststd::string&,constArgsImpl& ,conststd::string&,Poco::Pipe* ,Poco::Pipe*,Poco::Pipe*,constEnvImpl&) |
testBuffer() | 0 | 79 | 0 | 79 | 7min | 16min | CoreTest.testBuffer() |
getReasonForStatus (Poco::Net::HTTPResponse::HTTPStatus) | 4.6 | 83 | 4 | 79 | 7min | 12min | Poco.Net.HTTPResponse.getReasonForStatus (Poco::Net::HTTPResponse::HTTPStatus) |
testDouble() | 0 | 78 | 0 | 78 | 7min | 16min | VarTest.testDouble() |
testNamedTuple20() | 0 | 77 | 0 | 77 | 7min | 16min | NamedTuplesTest.testNamedTuple20() |
testFloat() | 0 | 77 | 0 | 77 | 7min | 16min | VarTest.testFloat() |
read(Poco::BinaryReader&) | 0 | 76 | 0 | 76 | 7min | 16min | BinaryReaderWriterTest.read (Poco::BinaryReader&) |
testStringToFloat() | 0 | 75 | 0 | 75 | 7min | 16min | StringTest.testStringToFloat() |
testInt8() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testInt8() |
testInt16() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testInt16() |
testInt32() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testInt32() |
testInt64() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testInt64() |
testUInt8() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testUInt8() |
testUInt16() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testUInt16() |
testUInt32() | 0 | 75 | 0 | 75 | 7min | 16min | VarTest.testUInt32() |
![]() | Rule Violated: Avoid types with poor cohesion |
• How to Fix Issues: To refactor a poorly cohesive type and increase code quality and maintainability, certainly you'll have to split the type into several smaller and more cohesive types that together, implement the same logic. The estimated Debt, which means the effort to fix such issue, varies linearly from 5 minutes for a type with a low poorCohesionScore, up to 4 hours for a type with high poorCohesionScore.
9 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
9 types | Lack of Cohesion Of Methods (LCOM) | # Methods | # Fields | poorCohesionScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
MailMessage | 0.89 | 41 | 23 | 8.64 | 24min | 8min | Poco.Net.MailMessage |
ParserEngine | 0.89 | 70 | 19 | 8.53 | 23min | 8min | Poco.XML.ParserEngine |
StatementImpl | 0.89 | 69 | 18 | 8.39 | 22min | 7min | Poco.Data.StatementImpl |
DirectoryWatcher | 0.89 | 16 | 12 | 8.38 | 22min | 7min | Poco.DirectoryWatcher |
NetworkInterfaceImpl | 0.83 | 44 | 14 | 5.66 | 8min | 3min 8s | Poco.Net.NetworkInterfaceImpl |
SessionPool | 0.83 | 28 | 15 | 5.66 | 8min | 3min 8s | Poco.Data.SessionPool |
XMLWriter | 0.82 | 63 | 41 | 5.25 | 6min | 2min 26s | Poco.XML.XMLWriter |
HTTPMessage | 0.81 | 21 | 14 | 4.99 | 5min | 2min 0s | Poco.Net.HTTPMessage |
ICMPv4PacketImpl | 0.8 | 12 | 12 | 4.76 | 5min | 2min 0s | Poco.Net.ICMPv4PacketImpl |
Object Oriented Design | 2480 |
![]() | Rule Violated: Base class should not use derivatives |
• How to Fix Issues: Understand the need for using derivatives, then imagine a new design, and then refactor. Typically an algorithm in the base class needs to access something from derived classes. You can try to encapsulate this access behind an abstract or a virtual method. If you see in the base class some conditions on typeof(DerivedClass) not only urgent refactoring is needed. Such condition can easily be replaced through an abstract or a virtual method. Sometime you'll see a base class that creates instance of some derived classes. In such situation, certainly using the factory method pattern http://en.wikipedia.org/wiki/Factory_method_pattern or the abstract factory pattern http://en.wikipedia.org/wiki/Abstract_factory_pattern will improve the design. The estimated Debt, which means the effort to fix such issue, is equal to 3 minutes per derived class used by the base class + 3 minutes per member of a derived class used by the base class.
4 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
4 types | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity | Full Name |
---|---|---|---|---|---|
AbstractNode | 3 types | 4 methods 1 field | 24min | High | Poco.XML.AbstractNode |
AbstractContainerNode | 2 types | 2 methods | 12min | High | Poco.XML.AbstractContainerNode |
SocketImpl | 1 type | 1 method | 6min | High | Poco.Net.SocketImpl |
Node | 1 type | no member | 3min 0s | High | Poco.XML.Node |
Statistics
Stat | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity |
---|---|---|---|---|
Sum: | 7 | 8 | 45min | - |
Average: | 1.75 | 2 | 11min | - |
Minimum: | 1 | 0 | 3min 0s | - |
Maximum: | 3 | 5 | 24min | - |
Standard deviation: | 0.83 | 1.87 | 8min | - |
Variance: | 0.69 | 3.5 | 8d 0h | - |
![]() | Rule Violated: Class shouldn't be too deep in inheritance tree |
• How to Fix Issues: In Object-Oriented Programming, a well-known motto is Favor Composition over Inheritance. This is because inheritance comes with pitfalls. In general, the implementation of a derived class is very bound up with the base class implementation. Also a base class exposes implementation details to its derived classes, that's why it's often said that inheritance breaks encapsulation. On the other hands, Composition favors binding with interfaces over binding with implementations. Hence, not only the encapsulation is preserved, but the design is clearer, because interfaces make it explicit and less coupled. Hence, to break a long inheritance chain, Composition is often a powerful way to enhance the design of the refactored underlying logic. You can also read: http://en.wikipedia.org/wiki/Composition_over_inheritance and http://stackoverflow.com/questions/49002/prefer-composition-over-inheritance The estimated Debt, which means the effort to fix such issue, depends linearly upon the depth of inheritance.
115 types matched
- The following list of types is truncated and contains only the first 100 types of the 115 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
115 types | baseClasses | Depth of inheritance | Debt | Severity | Full Name |
---|---|---|---|---|---|
WhitespaceFilter | 8 types | 3 | 18min | Medium | Poco.XML.WhitespaceFilter |
Document | 6 types | 5 | 12min | Medium | Poco.XML.Document |
CDATASection | 6 types | 6 | 12min | Medium | Poco.XML.CDATASection |
XMLFilterImpl | 6 types | 2 | 12min | Medium | Poco.XML.XMLFilterImpl |
HTTPServerRequestImpl | 5 types | 5 | 9min | Medium | Poco.Net.HTTPServerRequestImpl |
HTTPServerResponseImpl | 5 types | 5 | 9min | Medium | Poco.Net.HTTPServerResponseImpl |
Element | 5 types | 5 | 9min | Medium | Poco.XML.Element |
Text | 5 types | 5 | 9min | Medium | Poco.XML.Text |
Comment | 5 types | 5 | 9min | Medium | Poco.XML.Comment |
DocumentType | 5 types | 5 | 9min | Medium | Poco.XML.DocumentType |
DocumentFragment | 5 types | 5 | 9min | Medium | Poco.XML.DocumentFragment |
Entity | 5 types | 5 | 9min | Medium | Poco.XML.Entity |
PathSyntaxException | 4 types | 5 | 6min | Medium | Poco.PathSyntaxException |
FileExistsException | 4 types | 5 | 6min | Medium | Poco.FileExistsException |
FileNotFoundException | 4 types | 5 | 6min | Medium | Poco.FileNotFoundException |
PathNotFoundException | 4 types | 5 | 6min | Medium | Poco.PathNotFoundException |
FileReadOnlyException | 4 types | 5 | 6min | Medium | Poco.FileReadOnlyException |
FileAccessDeniedException | 4 types | 5 | 6min | Medium | Poco.FileAccessDeniedException |
CreateFileException | 4 types | 5 | 6min | Medium | Poco.CreateFileException |
OpenFileException | 4 types | 5 | 6min | Medium | Poco.OpenFileException |
WriteFileException | 4 types | 5 | 6min | Medium | Poco.WriteFileException |
ReadFileException | 4 types | 5 | 6min | Medium | Poco.ReadFileException |
DirectoryNotEmptyException | 4 types | 5 | 6min | Medium | Poco.DirectoryNotEmptyException |
URISyntaxException | 4 types | 5 | 6min | Medium | Poco.URISyntaxException |
AsyncChannel | 4 types | 2 | 6min | Medium | Poco.AsyncChannel |
HTTPServerRequest | 4 types | 4 | 6min | Medium | Poco.Net.HTTPServerRequest |
HTTPServerResponse | 4 types | 4 | 6min | Medium | Poco.Net.HTTPServerResponse |
HostNotFoundException | 4 types | 6 | 6min | Medium | Poco.Net.HostNotFoundException |
NoAddressFoundException | 4 types | 6 | 6min | Medium | Poco.Net.NoAddressFoundException |
MultipartException | 4 types | 6 | 6min | Medium | Poco.Net.MultipartException |
NotAuthenticatedException | 4 types | 6 | 6min | Medium | Poco.Net.NotAuthenticatedException |
UnsupportedRedirectException | 4 types | 6 | 6min | Medium | Poco.Net.UnsupportedRedirectException |
AbstractContainerNode | 4 types | 4 | 6min | Medium | Poco.XML.AbstractContainerNode |
Attr | 4 types | 4 | 6min | Medium | Poco.XML.Attr |
CharacterData | 4 types | 4 | 6min | Medium | Poco.XML.CharacterData |
DefaultHandler | 4 types | 1 | 6min | Medium | Poco.XML.DefaultHandler |
ProcessingInstruction | 4 types | 4 | 6min | Medium | Poco.XML.ProcessingInstruction |
EntityReference | 4 types | 4 | 6min | Medium | Poco.XML.EntityReference |
Notation | 4 types | 4 | 6min | Medium | Poco.XML.Notation |
EventChannel | 3 types | 2 | 3min 0s | Medium | Poco.EventChannel |
DataFormatException | 3 types | 4 | 3min 0s | Medium | Poco.DataFormatException |
SyntaxException | 3 types | 4 | 3min 0s | Medium | Poco.SyntaxException |
CircularReferenceException | 3 types | 4 | 3min 0s | Medium | Poco.CircularReferenceException |
ProtocolException | 3 types | 4 | 3min 0s | Medium | Poco.ProtocolException |
FileException | 3 types | 4 | 3min 0s | Medium | Poco.FileException |
ConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.ConsoleChannel |
ColorConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.ColorConsoleChannel |
EventLogChannel | 3 types | 2 | 3min 0s | Medium | Poco.EventLogChannel |
FileChannel | 3 types | 2 | 3min 0s | Medium | Poco.FileChannel |
FormattingChannel | 3 types | 2 | 3min 0s | Medium | Poco.FormattingChannel |
Logger | 3 types | 2 | 3min 0s | Medium | Poco.Logger |
NullChannel | 3 types | 2 | 3min 0s | Medium | Poco.NullChannel |
PatternFormatter | 3 types | 2 | 3min 0s | Medium | Poco.PatternFormatter |
SimpleFileChannel | 3 types | 2 | 3min 0s | Medium | Poco.SimpleFileChannel |
SplitterChannel | 3 types | 2 | 3min 0s | Medium | Poco.SplitterChannel |
StreamChannel | 3 types | 2 | 3min 0s | Medium | Poco.StreamChannel |
WindowsConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.WindowsConsoleChannel |
WindowsColorConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.WindowsColorConsoleChannel |
TaskStartedNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskStartedNotification |
TaskCancelledNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskCancelledNotification |
TaskFinishedNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskFinishedNotification |
TaskFailedNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskFailedNotification |
TaskProgressNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskProgressNotification |
TaskCustomNotification<C> | 3 types | 3 | 3min 0s | Medium | Poco.TaskCustomNotification<C> |
SimpleFormatter | 3 types | 2 | 3min 0s | Medium | SimpleFormatter |
TestChannel | 3 types | 2 | 3min 0s | Medium | TestChannel |
CustomChannel | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{loggingfactorytest .cpp}.CustomChannel |
CustomFormatter | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{loggingfactorytest .cpp}.CustomFormatter |
TestTask | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{taskmanagertest.cpp} .TestTask |
SimpleTask | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{taskmanagertest.cpp} .SimpleTask |
CustomNotificationTask<T> | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{taskmanagertest.cpp} .CustomNotificationTask<T> |
TestTask | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{tasktest.cpp} .TestTask |
HTTPRequest | 3 types | 3 | 3min 0s | Medium | Poco.Net.HTTPRequest |
HTTPResponse | 3 types | 3 | 3min 0s | Medium | Poco.Net.HTTPResponse |
InvalidAddressException | 3 types | 5 | 3min 0s | Medium | Poco.Net.InvalidAddressException |
InvalidSocketException | 3 types | 5 | 3min 0s | Medium | Poco.Net.InvalidSocketException |
ServiceNotFoundException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ServiceNotFoundException |
ConnectionAbortedException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ConnectionAbortedException |
ConnectionResetException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ConnectionResetException |
ConnectionRefusedException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ConnectionRefusedException |
DNSException | 3 types | 5 | 3min 0s | Medium | Poco.Net.DNSException |
InterfaceNotFoundException | 3 types | 5 | 3min 0s | Medium | Poco.Net.InterfaceNotFoundException |
NoMessageException | 3 types | 5 | 3min 0s | Medium | Poco.Net.NoMessageException |
MessageException | 3 types | 5 | 3min 0s | Medium | Poco.Net.MessageException |
HTTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.HTTPException |
FTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.FTPException |
SMTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.SMTPException |
POP3Exception | 3 types | 5 | 3min 0s | Medium | Poco.Net.POP3Exception |
ICMPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ICMPException |
NTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.NTPException |
HTMLFormException | 3 types | 5 | 3min 0s | Medium | Poco.Net.HTMLFormException |
WebSocketException | 3 types | 5 | 3min 0s | Medium | Poco.Net.WebSocketException |
UnsupportedFamilyException | 3 types | 5 | 3min 0s | Medium | Poco.Net.UnsupportedFamilyException |
RemoteSyslogListener | 3 types | 3 | 3min 0s | Medium | Poco.Net.RemoteSyslogListener |
RowDataMissingException | 3 types | 5 | 3min 0s | Medium | Poco.Data.RowDataMissingException |
UnknownDataBaseException | 3 types | 5 | 3min 0s | Medium | Poco.Data.UnknownDataBaseException |
UnknownTypeException | 3 types | 5 | 3min 0s | Medium | Poco.Data.UnknownTypeException |
ExecutionException | 3 types | 5 | 3min 0s | Medium | Poco.Data.ExecutionException |
BindingException | 3 types | 5 | 3min 0s | Medium | Poco.Data.BindingException |
ExtractException | 3 types | 5 | 3min 0s | Medium | Poco.Data.ExtractException |
Statistics
Stat | baseClasses | Depth of inheritance | Debt | Severity |
---|---|---|---|---|
Sum: | 402 | 462 | 1d 0h | - |
Average: | 3.5 | 4.02 | 4min 29s | - |
Minimum: | 3 | 1 | 3min 0s | - |
Maximum: | 8 | 6 | 18min | - |
Standard deviation: | 0.85 | 1.37 | 2min 32s | - |
Variance: | 0.72 | 1.88 | 6h 28min | - |
![]() | Rule Violated: Constructor should not call a virtual methods |
• How to Fix Issues: Violations reported can be solved by re-designing object initialisation or by declaring the parent class as sealed, if possible.
24 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
24 methods | virtualMethodsCalled | DerivedTypes | Debt | Severity | Full Name |
---|---|---|---|---|---|
Exception(conststd::string& ,constPoco::Exception&,int) | 1 method | 117 types | 6min | High | Poco.Exception.Exception (conststd::string&,constPoco::Exception& ,int) |
Exception(constPoco::Exception&) | 1 method | 117 types | 6min | High | Poco.Exception.Exception (constPoco::Exception&) |
LogFileImpl(conststd::string&) | 1 method | 1 type | 6min | High | Poco.LogFileImpl.LogFileImpl (conststd::string&) |
TaskFailedNotification(Poco::Task* ,constPoco::Exception&) | 1 method | no type | 6min | High | Poco.TaskFailedNotification .TaskFailedNotification(Poco::Task* ,constPoco::Exception&) |
Var(constPoco::Dynamic::Var&) | 1 method | no type | 6min | High | Poco.Dynamic.Var.Var (constPoco::Dynamic::Var&) |
ICMPSocketImpl(IPAddress::Family,int,int ,int) | 1 method | no type | 6min | High | Poco.Net.ICMPSocketImpl.ICMPSocketImpl (IPAddress::Family,int,int,int) |
OAuth10Credentials (constPoco::Net::HTTPRequest&) | 1 method | no type | 6min | High | Poco.Net.OAuth10Credentials .OAuth10Credentials (constPoco::Net::HTTPRequest&) |
ServerSocket (constPoco::Net::SocketAddress&,int) | 2 methods | no type | 12min | High | Poco.Net.ServerSocket.ServerSocket (constPoco::Net::SocketAddress&,int) |
ServerSocket(Poco::UInt16,int) | 2 methods | no type | 12min | High | Poco.Net.ServerSocket.ServerSocket (Poco::UInt16,int) |
StreamSocketImpl(IPAddress::Family) | 1 method | 1 type | 6min | High | Poco.Net.StreamSocketImpl .StreamSocketImpl(IPAddress::Family) |
CryptoStreamBuf(std::istream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoStreamBuf .CryptoStreamBuf(std::istream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) |
CryptoStreamBuf(std::ostream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoStreamBuf .CryptoStreamBuf(std::ostream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) |
CryptoInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoInputStream .CryptoInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) |
CryptoOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoOutputStream .CryptoOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) |
DecryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.DecryptingInputStream .DecryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) |
DecryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.DecryptingOutputStream .DecryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) |
EncryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.EncryptingInputStream .EncryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) |
EncryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.EncryptingOutputStream .EncryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) |
SimpleRowFormatter (constPoco::Data::SimpleRowFormatter&) | 2 methods | no type | 12min | High | Poco.Data.SimpleRowFormatter .SimpleRowFormatter (constPoco::Data::SimpleRowFormatter&) |
StatementImpl(Poco::Data::SessionImpl&) | 1 method | no type | 6min | High | Poco.Data.StatementImpl.StatementImpl (Poco::Data::SessionImpl&) |
DOMBuilder(Poco::XML::XMLReader& ,Poco::XML::NamePool*) | 3 methods | no type | 18min | High | Poco.XML.DOMBuilder.DOMBuilder (Poco::XML::XMLReader& ,Poco::XML::NamePool*) |
SAXParseException(conststd::string& ,constPoco::XML::Locator&) | 4 methods | no type | 24min | High | Poco.XML.SAXParseException .SAXParseException(conststd::string& ,constPoco::XML::Locator&) |
SAXParseException(conststd::string& ,constPoco::XML::Locator& ,constPoco::Exception&) | 4 methods | no type | 24min | High | Poco.XML.SAXParseException .SAXParseException(conststd::string& ,constPoco::XML::Locator& ,constPoco::Exception&) |
LocatorImpl(constPoco::XML::Locator&) | 4 methods | no type | 24min | High | Poco.XML.LocatorImpl.LocatorImpl (constPoco::XML::Locator&) |
Statistics
Stat | virtualMethodsCalled | DerivedTypes | Debt | Severity |
---|---|---|---|---|
Sum: | 38 | 236 | 3h 48min | - |
Average: | 1.58 | 9.83 | 9min | - |
Minimum: | 1 | 0 | 6min | - |
Maximum: | 4 | 117 | 24min | - |
Standard deviation: | 1.04 | 32.31 | 6min | - |
Variance: | 1.08 | 1 044 | 4d 6h | - |
![]() | Rule Violated: Don't assign static fields from instance methods |
• How to Fix Issues: If the static field is just assigned once in the program lifetime, make sure to declare it as readonly and assign it inline, or from the static constructor. In Object-Oriented-Programming the natural artifact to hold states that can be modified is instance fields. Hence to fix violations of this rule, make sure to hold assignable states through instance fields, not through static fields.
19 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
19 fields | assignedBy | Debt | Severity | Full Name |
---|---|---|---|---|
real_link_size | 1 method | 5min | Medium | __Globals.real_link_size |
IN_ENCODING | 2 methods | 5min | Medium | Poco.Base32DecoderBuf.IN_ENCODING |
IN_ENCODING_INIT | 1 method | 5min | Medium | Poco.Base32DecoderBuf.IN_ENCODING_INIT |
IN_ENCODING | 2 methods | 5min | Medium | Poco.Base64DecoderBuf.IN_ENCODING |
IN_ENCODING_INIT | 1 method | 5min | Medium | Poco.Base64DecoderBuf.IN_ENCODING_INIT |
SECONDS | 1 method | 5min | Medium | Poco.Timespan.SECONDS |
MINUTES | 2 methods | 5min | Medium | Poco.Timespan.MINUTES |
HOURS | 2 methods | 5min | Medium | Poco.Timespan.HOURS |
DAYS | 2 methods | 5min | Medium | Poco.Timespan.DAYS |
kDoubleSignificandSize | 1 method | 5min | Medium | double_conversion.__Globals .kDoubleSignificandSize |
kMask32 | 1 method | 5min | Medium | double_conversion.UInt128.kMask32 |
i | 2 methods | 5min | Medium | Parent.i |
_staticVar | 4 methods | 5min | Medium | MyRunnable._staticVar |
_asciiClass | 1 method | 5min | Medium | Poco.JSON.Parser._asciiClass |
_stateTransitionTable | 1 method | 5min | Medium | Poco.JSON.Parser._stateTransitionTable |
_pInstance | 2 methods | 5min | Medium | Poco.JSON.TemplateCache._pInstance |
HEADER_CONTENT_TYPE | 1 method | 5min | Medium | Poco.Net.MailMessage.HEADER_CONTENT_TYPE |
latin1_encoding | 1 method | 5min | Medium | __Globals.latin1_encoding |
PARSE_BUFFER_SIZE | 2 methods | 5min | Medium | Poco.XML.ParserEngine.PARSE_BUFFER_SIZE |
Statistics
Stat | assignedBy | Debt | Severity |
---|---|---|---|
Sum: | 30 | 1h 35min | - |
Average: | 1.58 | 5min | - |
Minimum: | 1 | 5min | - |
Maximum: | 4 | 5min | - |
Standard deviation: | 0.75 | 0min 0s | - |
Variance: | 0.56 | 0min 0s | - |
![]() | Rule Violated: Avoid Abstract Classes with too many methods |
• How to Fix Issues: Typically to fix such issue, the interface must be refactored in a grape of smaller single-responsibility interfaces. A classic example is a ISession large interface, responsible for holding states, run commands and offer various accesses and facilities. The classic problem for a large public interface is that it has many clients that consume it. As a consequence splitting it in smaller interfaces has an important impact and it is not always feasible. The estimated Debt, which means the effort to fix such issue, varies linearly from 20 minutes for an interface with 10 methods, up to 7 hours for an interface with 100 or more methods. The Debt is divided by two if the interface is not publicly visible, because in such situation only the current project is impacted by the refactoring.
21 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
21 types | Methods | Debt | Annual Interest | Full Name |
---|---|---|---|---|
AbstractPreparator | 95 methods | 6h 37min | 1h 53min | Poco.Data.AbstractPreparator |
AbstractBinder | 93 methods | 6h 28min | 1h 50min | Poco.Data.AbstractBinder |
AbstractExtractor | 93 methods | 6h 28min | 1h 50min | Poco.Data.AbstractExtractor |
StatementImpl | 67 methods | 4h 33min | 1h 16min | Poco.Data.StatementImpl |
AbstractNode | 45 methods | 2h 55min | 47min | Poco.XML.AbstractNode |
VarHolder | 44 methods | 2h 51min | 46min | Poco.Dynamic.VarHolder |
Node | 30 methods | 1h 48min | 28min | Poco.XML.Node |
SessionImpl | 29 methods | 1h 44min | 26min | Poco.Data.SessionImpl |
IPAddressImpl | 25 methods | 1h 26min | 21min | Poco.Net.Impl.IPAddressImpl |
AbstractExtraction | 24 methods | 1h 22min | 20min | Poco.Data.AbstractExtraction |
Handler | 18 methods | 55min | 12min | Poco.JSON.Handler |
XMLReader | 18 methods | 55min | 12min | Poco.XML.XMLReader |
TextEncoding | 17 methods | 51min | 11min | Poco.TextEncoding |
ArchiveStrategy | 17 methods | 51min | 11min | Poco.Data.ArchiveStrategy |
Task | 16 methods | 46min | 9min | Poco.Task |
ICMPPacketImpl | 16 methods | 46min | 9min | Poco.Net.ICMPPacketImpl |
Attributes | 14 methods | 37min | 7min | Poco.XML.Attributes |
AbstractBinding | 13 methods | 33min | 5min | Poco.Data.AbstractBinding |
ContentHandler | 13 methods | 33min | 5min | Poco.XML.ContentHandler |
DigestEngine | 11 methods | 24min | 3min 18s | Poco.DigestEngine |
NamedNodeMap | 10 methods | 20min | 2min 0s | Poco.XML.NamedNodeMap |
Statistics
Stat | Methods | Debt | Annual Interest |
---|---|---|---|
Sum: | 708 | 5d 3h | 1d 3h |
Average: | 33.71 | 2h 5min | 33min |
Minimum: | 10 | 20min | 2min 0s |
Maximum: | 95 | 6h 37min | 1h 53min |
Standard deviation: | 27.89 | 2h 3min | 36min |
Variance: | 778.01 | 1 921d | 167d |
![]() | Rule Violated: Nested types should not be visible |
• How to Fix Issues: If you do not intend the nested type to be externally visible, change the type's accessibility. Otherwise, remove the nested type from its parent and make it non-nested. If the purpose of the nesting is to group some nested types, use a namespace to create the hierarchy instead. The estimated Debt, which means the effort to fix such issue, is 2 minutes per nested type plus 4 minutes per outter type using such nesting type.
143 types matched
- The following list of types is truncated and contains only the first 100 types of the 143 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
143 types | Visibility | typesUser | Debt | Severity | Full Name |
---|---|---|---|---|---|
POCO_STATIC_ASSERTION_FAILURE<true >+AnonymousEnum | Public | no type | 2min 0s | Medium | POCO_STATIC_ASSERTION_FAILURE<true >+AnonymousEnum |
ct_data_s+Anonymous | Public | no type | 2min 0s | Medium | ct_data_s+Anonymous |
Checksum+Type | Public | no type | 2min 0s | Medium | Poco.Checksum+Type |
DirectoryWatcher+DirectoryEventType | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+DirectoryEventType |
DirectoryWatcher+DirectoryEventMask | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+DirectoryEventMask |
DirectoryWatcher+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+AnonymousEnum |
DirectoryWatcher+DirectoryEvent | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+DirectoryEvent |
DirectoryWatcherStrategy+ItemInfo | Protected | no type | 2min 0s | Medium | Poco.DirectoryWatcherStrategy+ItemInfo |
FPEnvironmentImpl+RoundingModeImpl | Protected | no type | 2min 0s | Medium | Poco.FPEnvironmentImpl+RoundingModeImpl |
FPEnvironmentImpl+FlagImpl | Protected | no type | 2min 0s | Medium | Poco.FPEnvironmentImpl+FlagImpl |
FPEnvironment+RoundingMode | Public | no type | 2min 0s | Medium | Poco.FPEnvironment+RoundingMode |
FPEnvironment+Flag | Public | no type | 2min 0s | Medium | Poco.FPEnvironment+Flag |
NumberFormatter+BoolFormat | Public | no type | 2min 0s | Medium | Poco.NumberFormatter+BoolFormat |
TraverseBase+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.TraverseBase+AnonymousEnum |
StringTokenizer+Options | Public | no type | 2min 0s | Medium | Poco.StringTokenizer+Options |
UTF32Encoding+ByteOrderType | Public | no type | 2min 0s | Medium | Poco.UTF32Encoding+ByteOrderType |
BinaryReader+StreamByteOrder | Public | no type | 2min 0s | Medium | Poco.BinaryReader+StreamByteOrder |
BinaryWriter+StreamByteOrder | Public | no type | 2min 0s | Medium | Poco.BinaryWriter+StreamByteOrder |
DeflatingStreamBuf+StreamType | Public | no type | 2min 0s | Medium | Poco.DeflatingStreamBuf+StreamType |
FileStreamBuf+AnonymousEnum | Protected | no type | 2min 0s | Medium | Poco.FileStreamBuf+AnonymousEnum |
InflatingStreamBuf+StreamType | Public | no type | 2min 0s | Medium | Poco.InflatingStreamBuf+StreamType |
Token+Class | Public | no type | 2min 0s | Medium | Poco.Token+Class |
ThreadImpl+Priority | Public | no type | 2min 0s | Medium | Poco.ThreadImpl+Priority |
ThreadImpl+Policy | Public | no type | 2min 0s | Medium | Poco.ThreadImpl+Policy |
Thread+Priority | Public | no type | 2min 0s | Medium | Poco.Thread+Priority |
Thread+Policy | Public | no type | 2min 0s | Medium | Poco.Thread+Policy |
Thread+FunctorRunnable | Public | no type | 2min 0s | Medium | Poco.Thread+FunctorRunnable |
MD4Engine+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.MD4Engine+AnonymousEnum |
MD5Engine+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.MD5Engine+AnonymousEnum |
Random+Type | Public | no type | 2min 0s | Medium | Poco.Random+Type |
SHA1Engine+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.SHA1Engine+AnonymousEnum |
Manifest<B>+Iterator | Public | no type | 2min 0s | Medium | Poco.Manifest<B>+Iterator |
SharedLibrary+Flags | Public | no type | 2min 0s | Medium | Poco.SharedLibrary+Flags |
RegularExpression+Options | Public | no type | 2min 0s | Medium | Poco.RegularExpression+Options |
RegularExpression+Match | Public | no type | 2min 0s | Medium | Poco.RegularExpression+Match |
ColorConsoleChannel+Color | Protected | no type | 2min 0s | Medium | Poco.ColorConsoleChannel+Color |
Message+Priority | Public | no type | 2min 0s | Medium | Poco.Message+Priority |
WindowsColorConsoleChannel+Color | Protected | no type | 2min 0s | Medium | Poco.WindowsColorConsoleChannel+Color |
Glob+Options | Public | no type | 2min 0s | Medium | Poco.Glob+Options |
Path+Style | Public | no type | 2min 0s | Medium | Poco.Path+Style |
PathImpl+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.PathImpl+AnonymousEnum |
Pipe+CloseMode | Public | no type | 2min 0s | Medium | Poco.Pipe+CloseMode |
SharedMemory+AccessMode | Public | no type | 2min 0s | Medium | Poco.SharedMemory+AccessMode |
UUID+Version | Public | no type | 2min 0s | Medium | Poco.UUID+Version |
DateTime+Months | Public | no type | 2min 0s | Medium | Poco.DateTime+Months |
DateTime+DaysOfWeek | Public | no type | 2min 0s | Medium | Poco.DateTime+DaysOfWeek |
DateTimeFormatter+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.DateTimeFormatter+AnonymousEnum |
TextEncoding+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.TextEncoding+AnonymousEnum |
Unicode+CharacterCategory | Public | no type | 2min 0s | Medium | Poco.Unicode+CharacterCategory |
Unicode+CharacterType | Public | no type | 2min 0s | Medium | Poco.Unicode+CharacterType |
Unicode+Script | Public | no type | 2min 0s | Medium | Poco.Unicode+Script |
Unicode+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Unicode+AnonymousEnum |
Unicode+CharacterProperties | Public | no type | 2min 0s | Medium | Poco.Unicode+CharacterProperties |
UTF16Encoding+ByteOrderType | Public | no type | 2min 0s | Medium | Poco.UTF16Encoding+ByteOrderType |
URIStreamOpener+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.URIStreamOpener+AnonymousEnum |
Task+TaskState | Public | no type | 2min 0s | Medium | Poco.Task+TaskState |
FileChannelTest+TimeRotation | Public | no type | 2min 0s | Medium | FileChannelTest+TimeRotation |
TaskManagerTest+S | Public | no type | 2min 0s | Medium | TaskManagerTest+S |
Parser+Classes | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Classes |
Parser+States | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+States |
Parser+Modes | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Modes |
Parser+Actions | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Actions |
Parser+JSONType | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+JSONType |
Parser+Source | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Source |
DialogSocket+TelnetCodes | Public | no type | 2min 0s | Medium | Poco.Net.DialogSocket+TelnetCodes |
DNS+HintFlag | Public | no type | 2min 0s | Medium | Poco.Net.DNS+HintFlag |
FTPClientSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+AnonymousEnum |
FTPClientSession+FileType | Public | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+FileType |
FTPClientSession+StatusClass | Protected | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+StatusClass |
FTPClientSession+AnonymousEnum | Protected | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+AnonymousEnum |
HTTPBufferAllocator+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net .HTTPBufferAllocator+AnonymousEnum |
HTTPClientSession+ProxyConfig | Public | no type | 2min 0s | Medium | Poco.Net.HTTPClientSession+ProxyConfig |
HTTPClientSession+AnonymousEnum | Protected | no type | 2min 0s | Medium | Poco.Net.HTTPClientSession+AnonymousEnum |
HTTPResponse+HTTPStatus | Public | no type | 2min 0s | Medium | Poco.Net.HTTPResponse+HTTPStatus |
HTTPSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.HTTPSession+AnonymousEnum |
ICMPv4PacketImpl+Header | Public | no type | 2min 0s | Medium | Poco.Net.ICMPv4PacketImpl+Header |
ICMPv4PacketImpl+MessageType | Public | no type | 2min 0s | Medium | Poco.Net.ICMPv4PacketImpl+MessageType |
ICMPv4PacketImpl+DestinationUnreachableC ode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+DestinationUnreachable Code |
ICMPv4PacketImpl+RedirectMessageCode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+RedirectMessageCode |
ICMPv4PacketImpl+TimeExceededCode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+TimeExceededCode |
ICMPv4PacketImpl+ParameterProblemCode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+ParameterProblemCode |
IPAddress+Family | Public | no type | 2min 0s | Medium | Poco.Net.IPAddress+Family |
IPAddress+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.IPAddress+AnonymousEnum |
MailMessage+ContentDisposition | Public | no type | 2min 0s | Medium | Poco.Net.MailMessage+ContentDisposition |
MailMessage+ContentTransferEncoding | Public | no type | 2min 0s | Medium | Poco.Net .MailMessage+ContentTransferEncoding |
MailMessage+Part | Public | no type | 2min 0s | Medium | Poco.Net.MailMessage+Part |
MailRecipient+RecipientType | Public | no type | 2min 0s | Medium | Poco.Net.MailRecipient+RecipientType |
NetworkInterface+AddressType | Public | no type | 2min 0s | Medium | Poco.Net.NetworkInterface+AddressType |
NetworkInterface+Type | Public | no type | 2min 0s | Medium | Poco.Net.NetworkInterface+Type |
NetworkInterface+IPVersion | Public | no type | 2min 0s | Medium | Poco.Net.NetworkInterface+IPVersion |
OAuth10Credentials+SignatureMethod | Public | no type | 2min 0s | Medium | Poco.Net .OAuth10Credentials+SignatureMethod |
POP3ClientSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.POP3ClientSession+AnonymousEnum |
POP3ClientSession+MessageInfo | Public | no type | 2min 0s | Medium | Poco.Net.POP3ClientSession+MessageInfo |
RemoteSyslogChannel+Severity | Public | no type | 2min 0s | Medium | Poco.Net.RemoteSyslogChannel+Severity |
RemoteSyslogChannel+Facility | Public | no type | 2min 0s | Medium | Poco.Net.RemoteSyslogChannel+Facility |
RemoteSyslogChannel+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net .RemoteSyslogChannel+AnonymousEnum |
RemoteUDPListener+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.RemoteUDPListener+AnonymousEnum |
SyslogParser+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.SyslogParser+AnonymousEnum |
SMTPClientSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.SMTPClientSession+AnonymousEnum |
SMTPClientSession+LoginMethod | Public | no type | 2min 0s | Medium | Poco.Net.SMTPClientSession+LoginMethod |
Statistics
Stat | Visibility | typesUser | Debt | Severity |
---|---|---|---|---|
Sum: | - | 0 | 4h 46min | - |
Average: | - | 0 | 2min 0s | - |
Minimum: | - | 0 | 2min 0s | - |
Maximum: | - | 0 | 2min 0s | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
![]() | Rule Violated: Projects with poor cohesion (RelationalCohesion) |
• How to Fix Issues: Matches of this present rule might reveal either assemblies with specific coding constraints (like code generated that have particular structure) either issues in design. In the second case, large refactoring can be planned not to respect this rule in particular, but to increase the overall design and code maintainability. The severity of issues of this rule is Low because the code metric Relational Cohesion is an information about the code structure state but is not actionable, it doesn't tell precisely what to do obtain a better score. Fixing actionable issues of others Architecture and Code Quality default rules will necessarily increase the Relational Cohesion scores.
1 project matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 project | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity | Full Name |
---|---|---|---|---|---|---|
TestSuite | 193 types | 1.03 | 1.02 | 10min | Low | TestSuite |
Statistics
Stat | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity |
---|---|---|---|---|---|
Sum: | 193 | 1.03 | 1.02 | 10min | - |
Average: | 193 | 1.03 | 1.02 | 10min | - |
Minimum: | 193 | 1.03 | 1.02 | 10min | - |
Maximum: | 193 | 1.03 | 1.02 | 10min | - |
Standard deviation: | 0 | 0 | 0 | 0min 0s | - |
Variance: | 0 | 0 | 0 | 0min 0s | - |
![]() | Rule Violated: Constructors of abstract classes should be declared as protected or private |
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.
warnif count > 0
from t in Application.Types where
t.IsClass &&
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }
// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.
55 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
55 types | ctors | Full Name |
---|---|---|
DirectoryWatcherStrategy | 1 method | Poco.DirectoryWatcherStrategy |
Runnable | 2 methods | Poco.Runnable |
AbstractTimerCallback | 2 methods | Poco.AbstractTimerCallback |
DigestEngine | 1 method | Poco.DigestEngine |
ManifestBase | 2 methods | Poco.ManifestBase |
ArchiveStrategy | 1 method | Poco.ArchiveStrategy |
Channel | 1 method | Poco.Channel |
Configurable | 2 methods | Poco.Configurable |
Formatter | 2 methods | Poco.Formatter |
PurgeStrategy | 1 method | Poco.PurgeStrategy |
RotateStrategy | 1 method | Poco.RotateStrategy |
AbstractObserver | 2 methods | Poco.AbstractObserver |
TextEncoding | 2 methods | Poco.TextEncoding |
URIStreamFactory | 1 method | Poco.URIStreamFactory |
Task | 1 method | Poco.Task |
VarHolder | 1 method | Poco.Dynamic.VarHolder |
TestPlugin | 2 methods | TestPlugin |
TestPlugin | 2 methods | TestPlugin |
Handler | 2 methods | Poco.JSON.Handler |
Part | 2 methods | Poco.JSON.Part |
AbstractHTTPRequestHandler | 2 methods | Poco.Net.AbstractHTTPRequestHandler |
FTPPasswordProvider | 1 method | Poco.Net.FTPPasswordProvider |
HTTPRequestHandler | 1 method | Poco.Net.HTTPRequestHandler |
HTTPRequestHandlerFactory | 1 method | Poco.Net.HTTPRequestHandlerFactory |
HTTPServerRequest | 2 methods | Poco.Net.HTTPServerRequest |
HTTPServerResponse | 2 methods | Poco.Net.HTTPServerResponse |
ICMPPacketImpl | 2 methods | Poco.Net.ICMPPacketImpl |
CryptoTransform | 2 methods | Poco.Crypto.CryptoTransform |
AbstractBinder | 2 methods | Poco.Data.AbstractBinder |
AbstractBinding | 2 methods | Poco.Data.AbstractBinding |
AbstractExtraction | 2 methods | Poco.Data.AbstractExtraction |
AbstractExtractor | 2 methods | Poco.Data.AbstractExtractor |
AbstractPreparation | 1 method | Poco.Data.AbstractPreparation |
AbstractPreparator | 2 methods | Poco.Data.AbstractPreparator |
ArchiveStrategy | 1 method | Poco.Data.ArchiveStrategy |
Connector | 2 methods | Poco.Data.Connector |
SessionImpl | 1 method | Poco.Data.SessionImpl |
StatementImpl | 1 method | Poco.Data.StatementImpl |
DOMObject | 1 method | Poco.XML.DOMObject |
EventTarget | 1 method | Poco.XML.EventTarget |
Node | 2 methods | Poco.XML.Node |
AbstractNode | 1 method | Poco.XML.AbstractNode |
DocumentEvent | 1 method | Poco.XML.DocumentEvent |
NodeList | 2 methods | Poco.XML.NodeList |
Attributes | 2 methods | Poco.XML.Attributes |
NamedNodeMap | 2 methods | Poco.XML.NamedNodeMap |
ContentHandler | 2 methods | Poco.XML.ContentHandler |
EntityResolver | 2 methods | Poco.XML.EntityResolver |
DTDHandler | 2 methods | Poco.XML.DTDHandler |
ErrorHandler | 2 methods | Poco.XML.ErrorHandler |
LexicalHandler | 2 methods | Poco.XML.LexicalHandler |
XMLReader | 1 method | Poco.XML.XMLReader |
Locator | 2 methods | Poco.XML.Locator |
XMLFilter | 2 methods | Poco.XML.XMLFilter |
NamespaceStrategy | 2 methods | Poco.XML.NamespaceStrategy |
Statistics
Stat | ctors |
---|---|
Sum: | 89 |
Average: | 1.62 |
Minimum: | 1 |
Maximum: | 2 |
Standard deviation: | 0.49 |
Variance: | 0.24 |
CWE Rules | 1910 |
|
![]() | Rule Violated: Declaration of Catch for Generic Exception |
warnif count > 0
from m in Methods where !m.IsEntryPoint
&& m.IsUsing("Keywords.generic_catch") select m
144 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 144 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
144 methods | Full Name |
---|---|
unexpected(constchar*,int) | Poco.Bugcheck.unexpected(constchar*,int) |
~DirectoryWatcher() | Poco.DirectoryWatcher.~DirectoryWatcher( ) |
~FIFOIOS() | Poco.FIFOIOS.~FIFOIOS() |
MemoryPool(std::size_t,int,int) | Poco.MemoryPool.MemoryPool(std::size_t ,int,int) |
release(void*) | Poco.MemoryPool.release(void*) |
~NDCScope() | Poco.NDCScope.~NDCScope() |
release() | Poco.RefCountedObject.release() |
isDirectory(Poco::File&) | Poco.TraverseBase.isDirectory (Poco::File&) |
~Base32EncoderBuf() | Poco.Base32EncoderBuf.~Base32EncoderBuf( ) |
~Base64EncoderBuf() | Poco.Base64EncoderBuf.~Base64EncoderBuf( ) |
~BasicMemoryBinaryWriter<T>() | Poco.BasicMemoryBinaryWriter<T> .~BasicMemoryBinaryWriter<T>() |
~DeflatingStreamBuf() | Poco.DeflatingStreamBuf .~DeflatingStreamBuf() |
close() | Poco.FileStreamBuf.close() |
~HexBinaryEncoderBuf() | Poco.HexBinaryEncoderBuf .~HexBinaryEncoderBuf() |
~InflatingStreamBuf() | Poco.InflatingStreamBuf .~InflatingStreamBuf() |
~ActiveDispatcher() | Poco.ActiveDispatcher.~ActiveDispatcher( ) |
handle(constPoco::Exception&) | Poco.ErrorHandler.handle (constPoco::Exception&) |
handle(conststd::exception&) | Poco.ErrorHandler.handle (conststd::exception&) |
handle() | Poco.ErrorHandler.handle() |
lockImpl() | Poco.MutexImpl.lockImpl() |
tryLockImpl() | Poco.MutexImpl.tryLockImpl() |
tryLockImpl(long) | Poco.MutexImpl.tryLockImpl(long) |
~ScopedRWLock() | Poco.ScopedRWLock.~ScopedRWLock() |
runnableEntry(void*) | Poco.ThreadImpl.runnableEntry(void*) |
~ThreadPool() | Poco.ThreadPool.~ThreadPool() |
getThread() | Poco.ThreadPool.getThread() |
run() | Poco.PooledThread.run() |
~Timer() | Poco.Timer.~Timer() |
start(constPoco::AbstractTimerCallback& ,Thread::Priority,Poco::ThreadPool&) | Poco.Timer.start (constPoco::AbstractTimerCallback& ,Thread::Priority,Poco::ThreadPool&) |
run() | Poco.Timer.run() |
~AsyncChannel() | Poco.AsyncChannel.~AsyncChannel() |
~EventLogChannel() | Poco.EventLogChannel.~EventLogChannel() |
open() | Poco.FileChannel.open() |
log(constPoco::Message&) | Poco.FileChannel.log(constPoco::Message& ) |
~FileChannel() | Poco.FileChannel.~FileChannel() |
purge() | Poco.FileChannel.purge() |
~AutoLoggerShutdown() | Poco.AutoLoggerShutdown .~AutoLoggerShutdown() |
format(constPoco::Message&,std::string&) | Poco.PatternFormatter.format (constPoco::Message&,std::string&) |
parsePattern() | Poco.PatternFormatter.parsePattern() |
~SimpleFileChannel() | Poco.SimpleFileChannel .~SimpleFileChannel() |
rotate() | Poco.SimpleFileChannel.rotate() |
~SplitterChannel() | Poco.SplitterChannel.~SplitterChannel() |
~NotificationQueue() | Poco.NotificationQueue .~NotificationQueue() |
~PriorityNotificationQueue() | Poco.PriorityNotificationQueue .~PriorityNotificationQueue() |
~TimedNotificationQueue() | Poco.TimedNotificationQueue .~TimedNotificationQueue() |
tryParse(conststd::string&) | Poco.Path.tryParse(conststd::string&) |
tryParse(conststd::string& ,Poco::Path::Style) | Poco.Path.tryParse(conststd::string& ,Poco::Path::Style) |
~TemporaryFile() | Poco.TemporaryFile.~TemporaryFile() |
~TempFileCollector() | Poco.TempFileCollector .~TempFileCollector() |
~PipeIOS() | Poco.PipeIOS.~PipeIOS() |
run() | Poco.Task.run() |
start(Poco::Task*) | Poco.TaskManager.start(Poco::Task*) |
tearDown() | DirectoryIteratorsTest.tearDown() |
setUp() | DirectoryWatcherTest.setUp() |
tearDown() | DirectoryWatcherTest.tearDown() |
testInitZero() | SemaphoreTest.testInitZero() |
testThreadPool() | ThreadPoolTest.testThreadPool() |
testClassLoader1() | ClassLoaderTest.testClassLoader1() |
testSharedLibrary1() | SharedLibraryTest.testSharedLibrary1() |
testSharedLibrary3() | SharedLibraryTest.testSharedLibrary3() |
testRotateBySize() | FileChannelTest.testRotateBySize() |
testRotateByAge() | FileChannelTest.testRotateByAge() |
testRotateAtTimeDayUTC() | FileChannelTest.testRotateAtTimeDayUTC() |
testRotateAtTimeDayLocal() | FileChannelTest.testRotateAtTimeDayLocal () |
testRotateAtTimeHourUTC() | FileChannelTest.testRotateAtTimeHourUTC( ) |
testRotateAtTimeHourLocal() | FileChannelTest .testRotateAtTimeHourLocal() |
testRotateAtTimeMinUTC() | FileChannelTest.testRotateAtTimeMinUTC() |
testRotateAtTimeMinLocal() | FileChannelTest.testRotateAtTimeMinLocal () |
testArchive() | FileChannelTest.testArchive() |
testCompress() | FileChannelTest.testCompress() |
remove(conststd::string&) | FileChannelTest.remove(conststd::string& ) |
purgeAge(conststd::string&) | FileChannelTest.purgeAge (conststd::string&) |
noPurgeAge(conststd::string&) | FileChannelTest.noPurgeAge (conststd::string&) |
purgeCount(conststd::string&) | FileChannelTest.purgeCount (conststd::string&) |
noPurgeCount(conststd::string&) | FileChannelTest.noPurgeCount (conststd::string&) |
testRotate() | SimpleFileChannelTest.testRotate() |
remove(conststd::string&) | SimpleFileChannelTest.remove (conststd::string&) |
testDirectory() | FileTest.testDirectory() |
testCopyDirectory() | FileTest.testCopyDirectory() |
setUp() | FileTest.setUp() |
tearDown() | FileTest.tearDown() |
testCustomThreadPool() | TaskManagerTest.testCustomThreadPool() |
optElement<T>(unsignedint,constT&) | Poco.JSON.Array.optElement<T> (unsignedint,constT&) |
optValue<T>(conststd::string&,constT&) | Poco.JSON.Object.optValue<T> (conststd::string&,constT&) |
findValue<T>(conststd::string&,constT&) | Poco.JSON.Query.findValue<T> (conststd::string&,constT&) |
~NetworkInitializer() | NetworkInitializer.~NetworkInitializer() |
~FTPClientSession() | Poco.Net.FTPClientSession .~FTPClientSession() |
logout() | Poco.Net.FTPClientSession.logout() |
open(constPoco::URI&) | Poco.Net.FTPStreamFactory.open (constPoco::URI&) |
~HTTPChunkedIOS() | Poco.Net.HTTPChunkedIOS.~HTTPChunkedIOS( ) |
operatordelete(void*) | Poco.Net.HTTPChunkedInputStream .operatordelete(void*) |
operatordelete(void*) | Poco.Net.HTTPChunkedOutputStream .operatordelete(void*) |
~HTTPFixedLengthIOS() | Poco.Net.HTTPFixedLengthIOS .~HTTPFixedLengthIOS() |
operatordelete(void*) | Poco.Net.HTTPFixedLengthInputStream .operatordelete(void*) |
operatordelete(void*) | Poco.Net.HTTPFixedLengthOutputStream .operatordelete(void*) |
~HTTPHeaderIOS() | Poco.Net.HTTPHeaderIOS.~HTTPHeaderIOS() |
operatordelete(void*) | Poco.Net.HTTPHeaderInputStream .operatordelete(void*) |
operatordelete(void*) | Poco.Net.HTTPHeaderOutputStream .operatordelete(void*) |
~HTTPServerConnection() | Poco.Net.HTTPServerConnection .~HTTPServerConnection() |
run() | Poco.Net.HTTPServerConnection.run() |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
Dead Code | 030 |
|
![]() | Rule Violated: Potentially dead Types |
warnif count > 0
let tt=Types.UsedByAny(Application.Methods).ToHashSet()
// Select types unused
let typesUnused =
from t in JustMyCode.Types where
t.NbTypesUsingMe == 0 && !t.IsGlobal select t
from t in typesUnused where !tt.Contains(t)
select new { t }
55 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
55 types | Full Name |
---|---|
POCO_STATIC_ASSERTION_FAILURE<true> | POCO_STATIC_ASSERTION_FAILURE<true> |
POCO_STATIC_ASSERTION_FAILURE<true >+AnonymousEnum | POCO_STATIC_ASSERTION_FAILURE<true >+AnonymousEnum |
poco_static_assert_test<x> | poco_static_assert_test<x> |
gzFile_s | gzFile_s |
internal_state | internal_state |
pcre16_extra | pcre16_extra |
pcre32_extra | pcre32_extra |
pcre16_callout_block | pcre16_callout_block |
pcre32_callout_block | pcre32_callout_block |
AnonymousEnum | AnonymousEnum |
real_pcre32 | real_pcre32 |
AnonymousEnum | AnonymousEnum |
ScopedReadRWLock | Poco.ScopedReadRWLock |
ScopedWriteRWLock | Poco.ScopedWriteRWLock |
ThreadImpl+Policy | Poco.ThreadImpl+Policy |
Random+Type | Poco.Random+Type |
SharedLibrary+Flags | Poco.SharedLibrary+Flags |
AutoLoggerShutdown | Poco.AutoLoggerShutdown |
DateTime+Months | Poco.DateTime+Months |
TextEncoding+AnonymousEnum | Poco.TextEncoding+AnonymousEnum |
VarHolderImpl<signedchar> | Poco.Dynamic.VarHolderImpl<signedchar> |
VarHolderImpl<bool> | Poco.Dynamic.VarHolderImpl<bool> |
VarHolderImpl<char> | Poco.Dynamic.VarHolderImpl<char> |
VarHolderImpl<Poco::DateTime> | Poco.Dynamic.VarHolderImpl <Poco::DateTime> |
VarHolderImpl<Poco::LocalDateTime> | Poco.Dynamic.VarHolderImpl <Poco::LocalDateTime> |
VarHolderImpl<Poco::Timestamp> | Poco.Dynamic.VarHolderImpl <Poco::Timestamp> |
PluginA | PluginA |
PluginB | PluginB |
PluginC | PluginC |
Small | Small |
Medium | Medium |
VarHolderImpl<Poco::SharedPtr <Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> > | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> > |
VarHolderImpl<Poco::JSON::Array> | Poco.Dynamic.VarHolderImpl <Poco::JSON::Array> |
VarHolderImpl<Poco::SharedPtr <Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >> | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >> |
VarHolderImpl<Poco::JSON::Object> | Poco.Dynamic.VarHolderImpl <Poco::JSON::Object> |
NetworkInitializer | NetworkInitializer |
HTTPStreamFactory+AnonymousEnum | Poco.Net.HTTPStreamFactory+AnonymousEnum |
IPAddress+AnonymousEnum | Poco.Net.IPAddress+AnonymousEnum |
NetworkInterface+AddressType | Poco.Net.NetworkInterface+AddressType |
FilePartStoreFactory | Poco.Net.FilePartStoreFactory |
SMTPClientSession+AnonymousEnum | Poco.Net.SMTPClientSession+AnonymousEnum |
SocketAddress+AnonymousEnum | Poco.Net.SocketAddress+AnonymousEnum |
SocketInputStream | Poco.Net.SocketInputStream |
StreamSocket+AnonymousEnum | Poco.Net.StreamSocket+AnonymousEnum |
TCPServerConnectionFactoryImpl<S> | Poco.Net.TCPServerConnectionFactoryImpl <S> |
DecryptingInputStream | Poco.Crypto.DecryptingInputStream |
DecryptingOutputStream | Poco.Crypto.DecryptingOutputStream |
EncryptingInputStream | Poco.Crypto.EncryptingInputStream |
EncryptingOutputStream | Poco.Crypto.EncryptingOutputStream |
OpenSSLInitializer+AnonymousEnum | Poco.Crypto .OpenSSLInitializer+AnonymousEnum |
X509Certificate+AnonymousEnum | Poco.Crypto .X509Certificate+AnonymousEnum |
VarHolderImpl<Poco::Data::Date> | Poco.Dynamic.VarHolderImpl <Poco::Data::Date> |
VarHolderImpl<Poco::Data::Time> | Poco.Dynamic.VarHolderImpl <Poco::Data::Time> |
XML_Feature | XML_Feature |
DefaultHandler | Poco.XML.DefaultHandler |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule Violated: Potentially dead Methods |
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
m => !m.IsPublic && // Public methods might be used by client applications of your Projects.
!m.IsEntryPoint && // Main() method is not used by-design.
!m.IsClassConstructor &&
!m.IsVirtual && // Only check for non virtual method that are not seen as used in IL.
!(m.IsConstructor && // Don't take account of protected ctor that might be call by a derived ctors.
m.IsProtected) &&
!m.NameLike (@"^On") && //Exclude Events like MFC ones
!m.IsGeneratedByCompiler
)
// Get methods unused
let methodsUnused =
from m in JustMyCode.Methods where
m.NbMethodsCallingMe == 0 &&
canMethodBeConsideredAsDeadProc(m)
select m
// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
methods => // Unique loop, just to let a chance to build the hashset.
from o in new[] { new object() }
// Use a hashet to make Intersect calls much faster!
let hashset = methods.ToHashSet()
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
where canMethodBeConsideredAsDeadProc(m) &&
// Select methods called only by methods already considered as dead
hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
select m)
from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }
570 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 570 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
570 methods | MethodsCallingMe | depth | Full Name |
---|---|---|---|
BigitAt(int) | no method | 0 | __Globals.BigitAt(int) |
Clamp() | no method | 0 | __Globals.Clamp() |
IsClamped() | no method | 0 | __Globals.IsClamped() |
Zero() | no method | 0 | __Globals.Zero() |
Align(constdouble_conversion::Bignum&) | no method | 0 | __Globals.Align (constdouble_conversion::Bignum&) |
BigitsShiftLeft(int) | no method | 0 | __Globals.BigitsShiftLeft(int) |
SubtractTimes (constdouble_conversion::Bignum&,int) | no method | 0 | __Globals.SubtractTimes (constdouble_conversion::Bignum&,int) |
HandleSpecialValues(double ,double_conversion::StringBuilder*) | no method | 0 | __Globals.HandleSpecialValues(double ,double_conversion::StringBuilder*) |
CreateExponentialRepresentation (constchar*,int,int ,double_conversion::StringBuilder*) | no method | 0 | __Globals .CreateExponentialRepresentation (constchar*,int,int ,double_conversion::StringBuilder*) |
CreateDecimalRepresentation(constchar* ,int,int,int ,double_conversion::StringBuilder*) | no method | 0 | __Globals.CreateDecimalRepresentation (constchar*,int,int,int ,double_conversion::StringBuilder*) |
ToShortestIeeeNumber(double ,double_conversion::StringBuilder* ,DoubleToStringConverter::DtoaMode) | no method | 0 | __Globals.ToShortestIeeeNumber(double ,double_conversion::StringBuilder* ,DoubleToStringConverter::DtoaMode) |
StringToIeee(constchar*,int,int*,bool) | no method | 0 | __Globals.StringToIeee(constchar*,int ,int*,bool) |
run() | no method | 0 | Poco.DirectoryWatcher.run() |
DirectoryWatcher() | no method | 0 | Poco.DirectoryWatcher.DirectoryWatcher() |
DirectoryWatcher (constPoco::DirectoryWatcher&) | no method | 0 | Poco.DirectoryWatcher.DirectoryWatcher (constPoco::DirectoryWatcher&) |
operator=(constPoco::DirectoryWatcher&) | no method | 0 | Poco.DirectoryWatcher.operator= (constPoco::DirectoryWatcher&) |
DirectoryWatcherStrategy() | no method | 0 | Poco.DirectoryWatcherStrategy .DirectoryWatcherStrategy() |
DirectoryWatcherStrategy (constPoco::DirectoryWatcherStrategy&) | no method | 0 | Poco.DirectoryWatcherStrategy .DirectoryWatcherStrategy (constPoco::DirectoryWatcherStrategy&) |
operator= (constPoco::DirectoryWatcherStrategy&) | no method | 0 | Poco.DirectoryWatcherStrategy.operator= (constPoco::DirectoryWatcherStrategy&) |
~EventChannel() | no method | 0 | Poco.EventChannel.~EventChannel() |
message(conststd::string&) | no method | 0 | Poco.Exception.message(conststd::string& ) |
extendedMessage(conststd::string&) | no method | 0 | Poco.Exception.extendedMessage (conststd::string&) |
readFromDevice(char*,std::streamsize) | no method | 0 | Poco.FIFOBufferStreamBuf.readFromDevice (char*,std::streamsize) |
writeToDevice(constchar*,std::streamsize ) | no method | 0 | Poco.FIFOBufferStreamBuf.writeToDevice (constchar*,std::streamsize) |
FIFOBufferStream() | no method | 0 | Poco.FIFOBufferStream.FIFOBufferStream() |
FIFOBufferStream (constPoco::FIFOBufferStream&) | no method | 0 | Poco.FIFOBufferStream.FIFOBufferStream (constPoco::FIFOBufferStream&) |
operator=(constPoco::FIFOBufferStream&) | no method | 0 | Poco.FIFOBufferStream.operator= (constPoco::FIFOBufferStream&) |
MemoryPool() | no method | 0 | Poco.MemoryPool.MemoryPool() |
MemoryPool(constPoco::MemoryPool&) | no method | 0 | Poco.MemoryPool.MemoryPool (constPoco::MemoryPool&) |
operator=(constPoco::MemoryPool&) | no method | 0 | Poco.MemoryPool.operator= (constPoco::MemoryPool&) |
RefCountedObject (constPoco::RefCountedObject&) | no method | 0 | Poco.RefCountedObject.RefCountedObject (constPoco::RefCountedObject&) |
operator=(constPoco::RefCountedObject&) | no method | 0 | Poco.RefCountedObject.operator= (constPoco::RefCountedObject&) |
TraverseBase() | no method | 0 | Poco.TraverseBase.TraverseBase() |
TraverseBase(constPoco::TraverseBase&) | no method | 0 | Poco.TraverseBase.TraverseBase (constPoco::TraverseBase&) |
operator=(constPoco::TraverseBase&) | no method | 0 | Poco.TraverseBase.operator= (constPoco::TraverseBase&) |
ChildrenFirstTraverse() | no method | 0 | Poco.ChildrenFirstTraverse .ChildrenFirstTraverse() |
ChildrenFirstTraverse (constPoco::ChildrenFirstTraverse&) | no method | 0 | Poco.ChildrenFirstTraverse .ChildrenFirstTraverse (constPoco::ChildrenFirstTraverse&) |
operator= (constPoco::ChildrenFirstTraverse&) | no method | 0 | Poco.ChildrenFirstTraverse.operator= (constPoco::ChildrenFirstTraverse&) |
SiblingsFirstTraverse() | no method | 0 | Poco.SiblingsFirstTraverse .SiblingsFirstTraverse() |
SiblingsFirstTraverse (constPoco::SiblingsFirstTraverse&) | no method | 0 | Poco.SiblingsFirstTraverse .SiblingsFirstTraverse (constPoco::SiblingsFirstTraverse&) |
operator= (constPoco::SiblingsFirstTraverse&) | no method | 0 | Poco.SiblingsFirstTraverse.operator= (constPoco::SiblingsFirstTraverse&) |
StringTokenizer (constPoco::StringTokenizer&) | no method | 0 | Poco.StringTokenizer.StringTokenizer (constPoco::StringTokenizer&) |
operator=(constPoco::StringTokenizer&) | no method | 0 | Poco.StringTokenizer.operator= (constPoco::StringTokenizer&) |
readFromDevice() | no method | 0 | Poco.Base32DecoderBuf.readFromDevice() |
readOne() | 1 method | 1 | Poco.Base32DecoderBuf.readOne() |
Base32DecoderBuf (constPoco::Base32DecoderBuf&) | no method | 0 | Poco.Base32DecoderBuf.Base32DecoderBuf (constPoco::Base32DecoderBuf&) |
operator=(constPoco::Base32DecoderBuf&) | no method | 0 | Poco.Base32DecoderBuf.operator= (constPoco::Base32DecoderBuf&) |
Base32DecoderIOS (constPoco::Base32DecoderIOS&) | no method | 0 | Poco.Base32DecoderIOS.Base32DecoderIOS (constPoco::Base32DecoderIOS&) |
operator=(constPoco::Base32DecoderIOS&) | no method | 0 | Poco.Base32DecoderIOS.operator= (constPoco::Base32DecoderIOS&) |
Base32Decoder(constPoco::Base32Decoder&) | no method | 0 | Poco.Base32Decoder.Base32Decoder (constPoco::Base32Decoder&) |
operator=(constPoco::Base32Decoder&) | no method | 0 | Poco.Base32Decoder.operator= (constPoco::Base32Decoder&) |
writeToDevice(char) | no method | 0 | Poco.Base32EncoderBuf.writeToDevice(char ) |
Base32EncoderBuf (constPoco::Base32EncoderBuf&) | no method | 0 | Poco.Base32EncoderBuf.Base32EncoderBuf (constPoco::Base32EncoderBuf&) |
operator=(constPoco::Base32EncoderBuf&) | no method | 0 | Poco.Base32EncoderBuf.operator= (constPoco::Base32EncoderBuf&) |
Base32EncoderIOS (constPoco::Base32EncoderIOS&) | no method | 0 | Poco.Base32EncoderIOS.Base32EncoderIOS (constPoco::Base32EncoderIOS&) |
operator=(constPoco::Base32EncoderIOS&) | no method | 0 | Poco.Base32EncoderIOS.operator= (constPoco::Base32EncoderIOS&) |
Base32Encoder(constPoco::Base32Encoder&) | no method | 0 | Poco.Base32Encoder.Base32Encoder (constPoco::Base32Encoder&) |
operator=(constPoco::Base32Encoder&) | no method | 0 | Poco.Base32Encoder.operator= (constPoco::Base32Encoder&) |
readFromDevice() | no method | 0 | Poco.Base64DecoderBuf.readFromDevice() |
readOne() | 1 method | 1 | Poco.Base64DecoderBuf.readOne() |
Base64DecoderBuf (constPoco::Base64DecoderBuf&) | no method | 0 | Poco.Base64DecoderBuf.Base64DecoderBuf (constPoco::Base64DecoderBuf&) |
operator=(constPoco::Base64DecoderBuf&) | no method | 0 | Poco.Base64DecoderBuf.operator= (constPoco::Base64DecoderBuf&) |
Base64DecoderIOS (constPoco::Base64DecoderIOS&) | no method | 0 | Poco.Base64DecoderIOS.Base64DecoderIOS (constPoco::Base64DecoderIOS&) |
operator=(constPoco::Base64DecoderIOS&) | no method | 0 | Poco.Base64DecoderIOS.operator= (constPoco::Base64DecoderIOS&) |
Base64Decoder(constPoco::Base64Decoder&) | no method | 0 | Poco.Base64Decoder.Base64Decoder (constPoco::Base64Decoder&) |
operator=(constPoco::Base64Decoder&) | no method | 0 | Poco.Base64Decoder.operator= (constPoco::Base64Decoder&) |
writeToDevice(char) | no method | 0 | Poco.Base64EncoderBuf.writeToDevice(char ) |
Base64EncoderBuf (constPoco::Base64EncoderBuf&) | no method | 0 | Poco.Base64EncoderBuf.Base64EncoderBuf (constPoco::Base64EncoderBuf&) |
operator=(constPoco::Base64EncoderBuf&) | no method | 0 | Poco.Base64EncoderBuf.operator= (constPoco::Base64EncoderBuf&) |
Base64EncoderIOS (constPoco::Base64EncoderIOS&) | no method | 0 | Poco.Base64EncoderIOS.Base64EncoderIOS (constPoco::Base64EncoderIOS&) |
operator=(constPoco::Base64EncoderIOS&) | no method | 0 | Poco.Base64EncoderIOS.operator= (constPoco::Base64EncoderIOS&) |
Base64Encoder(constPoco::Base64Encoder&) | no method | 0 | Poco.Base64Encoder.Base64Encoder (constPoco::Base64Encoder&) |
operator=(constPoco::Base64Encoder&) | no method | 0 | Poco.Base64Encoder.operator= (constPoco::Base64Encoder&) |
readFromDevice() | no method | 0 | Poco.CountingStreamBuf.readFromDevice() |
writeToDevice(char) | no method | 0 | Poco.CountingStreamBuf.writeToDevice (char) |
readFromDevice(char*,std::streamsize) | no method | 0 | Poco.DeflatingStreamBuf.readFromDevice (char*,std::streamsize) |
writeToDevice(constchar*,std::streamsize ) | no method | 0 | Poco.DeflatingStreamBuf.writeToDevice (constchar*,std::streamsize) |
readFromDevice(char*,std::streamsize) | no method | 0 | Poco.FileStreamBuf.readFromDevice(char* ,std::streamsize) |
writeToDevice(constchar*,std::streamsize ) | no method | 0 | Poco.FileStreamBuf.writeToDevice (constchar*,std::streamsize) |
readFromDevice() | no method | 0 | Poco.HexBinaryDecoderBuf.readFromDevice( ) |
readOne() | 1 method | 1 | Poco.HexBinaryDecoderBuf.readOne() |
writeToDevice(char) | no method | 0 | Poco.HexBinaryEncoderBuf.writeToDevice (char) |
readFromDevice(char*,std::streamsize) | no method | 0 | Poco.InflatingStreamBuf.readFromDevice (char*,std::streamsize) |
writeToDevice(constchar*,std::streamsize ) | no method | 0 | Poco.InflatingStreamBuf.writeToDevice (constchar*,std::streamsize) |
readFromDevice() | no method | 0 | Poco.LineEndingConverterStreamBuf .readFromDevice() |
writeToDevice(char) | no method | 0 | Poco.LineEndingConverterStreamBuf .writeToDevice(char) |
BasicMemoryStreamBuf<ch,tr>() | no method | 0 | Poco.BasicMemoryStreamBuf<ch,tr> .BasicMemoryStreamBuf<ch,tr>() |
BasicMemoryStreamBuf<ch,tr> (constBasicMemoryStreamBuf<ch,tr>&) | no method | 0 | Poco.BasicMemoryStreamBuf<ch,tr> .BasicMemoryStreamBuf<ch,tr> (constBasicMemoryStreamBuf<ch,tr>&) |
operator=(constBasicMemoryStreamBuf<ch ,tr>&) | no method | 0 | Poco.BasicMemoryStreamBuf<ch,tr> .operator=(constBasicMemoryStreamBuf<ch ,tr>&) |
readFromDevice() | no method | 0 | Poco.NullStreamBuf.readFromDevice() |
writeToDevice(char) | no method | 0 | Poco.NullStreamBuf.writeToDevice(char) |
readFromDevice() | no method | 0 | Poco.TeeStreamBuf.readFromDevice() |
writeToDevice(char) | 1 method | 1 | Poco.TeeStreamBuf.writeToDevice(char) |
Token(constPoco::Token&) | no method | 0 | Poco.Token.Token(constPoco::Token&) |
operator=(constPoco::Token&) | no method | 0 | Poco.Token.operator=(constPoco::Token&) |
run() | no method | 0 | Poco.ActiveDispatcher.run() |
Condition(constPoco::Condition&) | no method | 0 | Poco.Condition.Condition (constPoco::Condition&) |
operator=(constPoco::Condition&) | no method | 0 | Poco.Condition.operator= (constPoco::Condition&) |
defaultHandler() | no method | 0 | Poco.ErrorHandler.defaultHandler() |
Event(constPoco::Event&) | no method | 0 | Poco.Event.Event(constPoco::Event&) |
Statistics
Stat | MethodsCallingMe | depth |
---|---|---|
Sum: | 31 | 27 |
Average: | 0.054 | 0.047 |
Minimum: | 0 | 0 |
Maximum: | 5 | 2 |
Standard deviation: | 0.31 | 0.23 |
Variance: | 0.094 | 0.052 |
![]() | Rule Violated: Potentially dead Fields |
warnif count > 0
from f in JustMyCode.Fields where
f.NbMethodsUsingMe == 0 &&
!f.IsPublic && // Although not recommended, public fields might be used by client applications of your Projects.
!f.IsEnumValue
// If you don't want to link CppDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select f
44 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
44 fields | Full Name |
---|---|
CHARACTER_PROPERTIES | __Globals.CHARACTER_PROPERTIES |
_val | Poco.Dynamic.VarHolderImpl<signedchar> ._val |
_val | Poco.Dynamic.VarHolderImpl<short>._val |
_val | Poco.Dynamic.VarHolderImpl<int>._val |
_val | Poco.Dynamic.VarHolderImpl<longlong> ._val |
_val | Poco.Dynamic.VarHolderImpl<unsignedchar> ._val |
_val | Poco.Dynamic.VarHolderImpl<unsignedshort >._val |
_val | Poco.Dynamic.VarHolderImpl<unsignedint> ._val |
_val | Poco.Dynamic.VarHolderImpl <unsignedlonglong>._val |
_val | Poco.Dynamic.VarHolderImpl<bool>._val |
_val | Poco.Dynamic.VarHolderImpl<float>._val |
_val | Poco.Dynamic.VarHolderImpl<double>._val |
_val | Poco.Dynamic.VarHolderImpl<char>._val |
_val | Poco.Dynamic.VarHolderImpl <std::basic_string<char,std::char_traits <char>,std::allocator<char>>>._val |
_val | Poco.Dynamic.VarHolderImpl <std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>>._val |
_val | Poco.Dynamic.VarHolderImpl<long>._val |
_val | Poco.Dynamic.VarHolderImpl<unsignedlong> ._val |
_val | Poco.Dynamic.VarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>._val |
_val | Poco.Dynamic.VarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>._val |
_val | Poco.Dynamic.VarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::DateTime>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::LocalDateTime>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::Timestamp>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> >._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::JSON::Array>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::JSON::Object>._val |
sz | Poco.Net.IPAddress.sz |
aligner | Poco.Net.IPAddress+Anonymous.aligner |
sz | Poco.Net.SocketAddress.sz |
aligner | Poco.Net.SocketAddress+Anonymous.aligner |
_openSSLInitializer | Poco.Crypto.CipherImpl ._openSSLInitializer |
_openSSLInitializer | Poco.Crypto.CipherKeyImpl ._openSSLInitializer |
_pContext | Poco.Crypto.DigestEngine._pContext |
_openSSLInitializer | Poco.Crypto.DigestEngine ._openSSLInitializer |
_openSSLInitializer | Poco.Crypto.RSACipherImpl ._openSSLInitializer |
_engine | Poco.Crypto.RSADigestEngine._engine |
_openSSLInitializer | Poco.Crypto.RSAKeyImpl ._openSSLInitializer |
_pCert | Poco.Crypto.X509Certificate._pCert |
_openSSLInitializer | Poco.Crypto.X509Certificate ._openSSLInitializer |
_context | Poco.Crypto .anonymous_namespace{cipherimpl.cpp} .CryptoTransformImpl._context |
_val | Poco.Dynamic.VarHolderImpl <Poco::Data::Date>._val |
_val | Poco.Dynamic.VarHolderImpl <Poco::Data::Time>._val |
NODE_NAME | Poco.XML.Entity.NODE_NAME |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
Naming Conventions | 260 |
![]() | Rule Violated: Instance fields should be prefixed with a 'm_' |
warnif count > 0 (from f in Fields where
!f.NameLike (@"^m_") &&
!f.IsStatic
// Don't hesitate to customize the regex of NameLike to your preference.
&& !f.IsGlobal && !f.IsEnumValue && !f.IsThirdParty
select new { f }).Take(10)
10 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
10 fields | Full Name |
---|---|
next_in | z_stream_s.next_in |
avail_in | z_stream_s.avail_in |
total_in | z_stream_s.total_in |
next_out | z_stream_s.next_out |
avail_out | z_stream_s.avail_out |
total_out | z_stream_s.total_out |
msg | z_stream_s.msg |
state | z_stream_s.state |
zalloc | z_stream_s.zalloc |
zfree | z_stream_s.zfree |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule Violated: Static fields should be prefixed with a 's_' |
warnif count > 0 (from f in Fields where
!f.NameLike (@"^s_") &&
f.IsStatic && !f.IsThirdParty
select new { f }).Take(10)
// Don't hesitate to customize the regex of NameLike to your preference.
10 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
10 fields | Full Name |
---|---|
configuration_table | __Globals.configuration_table |
extra_lbits | __Globals.extra_lbits |
extra_dbits | __Globals.extra_dbits |
extra_blbits | __Globals.extra_blbits |
bl_order | __Globals.bl_order |
static_l_desc | __Globals.static_l_desc |
static_d_desc | __Globals.static_d_desc |
static_bl_desc | __Globals.static_bl_desc |
real_link_size | __Globals.real_link_size |
escapes | __Globals.escapes |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
![]() | Rule Violated: Exception class name should be suffixed with 'Exception' |
warnif count > 0 (from t in Types where t.IsExceptionClass && !t.NameLike (@"Exception$") && !t.IsThirdParty
select new { t, t.NbLinesOfCode }).Take(10)
1 type matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 type | # lines of code (LOC) | Full Name |
---|---|---|
URIRedirection | 7 | Poco.URIRedirection |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 7 |
Average: | 7 |
Minimum: | 7 |
Maximum: | 7 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule Violated: Types name should begin with an Upper character |
warnif count > 0 (from t in Types where
!t.NameLike (@"^[A-Z]") // The name of a type should begin with an Upper letter.
&& // Except if it is generated by compiler or ...
!t.IsThirdParty && !t.IsGlobal
select new { t, t.NbLinesOfCode }).Take(10)
10 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
10 types | # lines of code (LOC) | Full Name |
---|---|---|
poco_static_assert_test<x> | 0 | poco_static_assert_test<x> |
z_stream_s | 0 | z_stream_s |
gz_header_s | 0 | gz_header_s |
gzFile_s | 0 | gzFile_s |
block_state | N/A | block_state |
config_s | 0 | config_s |
code | 0 | code |
codetype | N/A | codetype |
ct_data_s | 0 | ct_data_s |
ct_data_s+Anonymous | 0 | ct_data_s+Anonymous |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
![]() | Rule Violated: Avoid methods with name too long |
warnif count > 0 from m in Application.Methods where
!m.IsGeneratedByCompiler
&& m.SimpleName.Length > 35 && !m.IsThirdParty
select new { m, m.SimpleName }
// The regex matches methods with name longer
// than 35 characters.
// Method Name doesn't contain the type and namespace
// prefix, FullName does.
// The regex computes the method name length from
// the beginning until the first open parenthesis
// or first lower than (for generic methods).
18 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
18 methods | SimpleName | Full Name |
---|---|---|
GetCachedPowerForBinaryExponentRange(int ,int,double_conversion::DiyFp*,int*) | GetCachedPowerForBinaryExponentRange | __Globals .GetCachedPowerForBinaryExponentRange (int,int,double_conversion::DiyFp*,int*) |
VarHolderImpl<vector<type-parameter-0-0 ,allocator<type-parameter-0-0>>> (conststd::vector<T>&) | VarHolderImpl<vector<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <vector<type-parameter-0-0,allocator <type-parameter-0-0>>>(conststd::vector <T>&) |
~VarHolderImpl<vector<type-parameter-0-0 ,allocator<type-parameter-0-0>>>() | ~VarHolderImpl<vector<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>.~VarHolderImpl <vector<type-parameter-0-0,allocator <type-parameter-0-0>>>() |
VarHolderImpl<vector<type-parameter-0-0 ,allocator<type-parameter-0-0>>>() | VarHolderImpl<vector<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <vector<type-parameter-0-0,allocator <type-parameter-0-0>>>() |
VarHolderImpl<vector<type-parameter-0-0 ,allocator<type-parameter-0-0>>> (constVarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>&) | VarHolderImpl<vector<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <vector<type-parameter-0-0,allocator <type-parameter-0-0>>> (constVarHolderImpl<vector <type-parameter-0-0,allocator <type-parameter-0-0>>>&) |
VarHolderImpl<list<type-parameter-0-0 ,allocator<type-parameter-0-0>>> (conststd::list<T>&) | VarHolderImpl<list<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <list<type-parameter-0-0,allocator <type-parameter-0-0>>>(conststd::list<T >&) |
~VarHolderImpl<list<type-parameter-0-0 ,allocator<type-parameter-0-0>>>() | ~VarHolderImpl<list<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>.~VarHolderImpl <list<type-parameter-0-0,allocator <type-parameter-0-0>>>() |
VarHolderImpl<list<type-parameter-0-0 ,allocator<type-parameter-0-0>>>() | VarHolderImpl<list<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <list<type-parameter-0-0,allocator <type-parameter-0-0>>>() |
VarHolderImpl<list<type-parameter-0-0 ,allocator<type-parameter-0-0>>> (constVarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>&) | VarHolderImpl<list<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <list<type-parameter-0-0,allocator <type-parameter-0-0>>> (constVarHolderImpl<list <type-parameter-0-0,allocator <type-parameter-0-0>>>&) |
VarHolderImpl<deque<type-parameter-0-0 ,allocator<type-parameter-0-0>>> (conststd::deque<T>&) | VarHolderImpl<deque<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <deque<type-parameter-0-0,allocator <type-parameter-0-0>>>(conststd::deque<T >&) |
~VarHolderImpl<deque<type-parameter-0-0 ,allocator<type-parameter-0-0>>>() | ~VarHolderImpl<deque<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>.~VarHolderImpl <deque<type-parameter-0-0,allocator <type-parameter-0-0>>>() |
VarHolderImpl<deque<type-parameter-0-0 ,allocator<type-parameter-0-0>>>() | VarHolderImpl<deque<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <deque<type-parameter-0-0,allocator <type-parameter-0-0>>>() |
VarHolderImpl<deque<type-parameter-0-0 ,allocator<type-parameter-0-0>>> (constVarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>&) | VarHolderImpl<deque<type-parameter-0-0,allocator<type-parameter-0-0>>> | Poco.Dynamic.VarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>.VarHolderImpl <deque<type-parameter-0-0,allocator <type-parameter-0-0>>> (constVarHolderImpl<deque <type-parameter-0-0,allocator <type-parameter-0-0>>>&) |
InitialScaledStartValuesPositiveExponent (uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | InitialScaledStartValuesPositiveExponent | double_conversion.__Globals .InitialScaledStartValuesPositiveExponen t(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
InitialScaledStartValuesNegativeExponent PositivePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | InitialScaledStartValuesNegativeExponentPositivePower | double_conversion.__Globals .InitialScaledStartValuesNegativeExponen tPositivePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
InitialScaledStartValuesNegativeExponent NegativePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) | InitialScaledStartValuesNegativeExponentNegativePower | double_conversion.__Globals .InitialScaledStartValuesNegativeExponen tNegativePower(uint64_t,int,int,bool ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum* ,double_conversion::Bignum*) |
testSimpleRecursiveDirectoryIterator() | testSimpleRecursiveDirectoryIterator | DirectoryIteratorsTest .testSimpleRecursiveDirectoryIterator() |
testSiblingsFirstRecursiveDirectoryItera tor() | testSiblingsFirstRecursiveDirectoryIterator | DirectoryIteratorsTest .testSiblingsFirstRecursiveDirectoryIter ator() |
Statistics
Stat | SimpleName |
---|---|
Sum: | - |
Average: | - |
Minimum: | - |
Maximum: | - |
Standard deviation: | - |
Variance: | - |
![]() | Rule Violated: Avoid fields with name too long |
warnif count > 0 from f in Application.Fields where
!f.IsGeneratedByCompiler &&
f.Name.Length > 35 && !f.IsThirdParty
select f
// The regex matches fields with name longer
// than 35 characters.
// Field Name doesn't contain the type and
// namespace prefix, FullName does.
7 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
7 fields | Full Name |
---|---|
HTTP_REASON_PROXY_AUTHENTICATION_REQUIRE D | Poco.Net.HTTPResponse .HTTP_REASON_PROXY_AUTHENTICATION_REQUIR ED |
HTTP_REASON_REQUESTED_RANGE_NOT_SATISFIA BLE | Poco.Net.HTTPResponse .HTTP_REASON_REQUESTED_RANGE_NOT_SATISFI ABLE |
HTTP_REQUESTED_RANGE_NOT_SATISFIABLE | Poco.Net.HTTPResponse+HTTPStatus .HTTP_REQUESTED_RANGE_NOT_SATISFIABLE |
WS_ERR_HANDSHAKE_UNSUPPORTED_VERSION | Poco.Net.WebSocket+ErrorCodes .WS_ERR_HANDSHAKE_UNSUPPORTED_VERSION |
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF | XML_Error .XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF |
XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSI NG | XML_Error .XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARS ING |
XML_PARAM_ENTITY_PARSING_UNLESS_STANDALO NE | XML_ParamEntityParsing .XML_PARAM_ENTITY_PARSING_UNLESS_STANDAL ONE |
Statistics
Stat |
---|
Sum: |
Average: |
Minimum: |
Maximum: |
Standard deviation: |
Variance: |
Quality Gates
|
![]() | Code Query: Quality Gates Evolution |
8 quality gates matched
8 quality gates | Evolution | BaselineStatus | Status | BaselineValue | Value | Full Name |
---|---|---|---|---|---|---|
Blocker Issues | Pass | Pass | 0 issues | 0 issues | Quality Gate | |
Critical Issues | Warn | Warn | 4 issues | 4 issues | Quality Gate | |
New Blocker / Critical / High Issues | N/A | N/A | Pass | null | 0 issues | Quality Gate |
Critical Rules Violated | Fail | Fail | 3 rules | 3 rules | Quality Gate | |
Percentage Debt | Pass | Pass | 9.44 % | 9.44 % | Quality Gate | |
New Debt since Baseline | N/A | N/A | Pass | null | 0 man-days | Quality Gate |
Debt Rating per Namespace | Fail | Fail | 2 namespaces | 2 namespaces | Quality Gate | |
New Annual Interest since Baseline | N/A | N/A | Pass | null | 0 man-days | Quality Gate |
Statistics
Stat | Evolution | BaselineStatus | Status | BaselineValue | Value |
---|---|---|---|---|---|
Sum: | - | - | - | - | - |
Average: | - | - | - | - | - |
Minimum: | - | - | - | - | - |
Maximum: | - | - | - | - | - |
Standard deviation: | - | - | - | - | - |
Variance: | - | - | - | - | - |
![]() | Quality Gate Pass: Percentage Code Coverage |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: N/A %
![]() | Quality Gate Pass: Blocker Issues |
No issue matched
![]() | Quality Gate Warn: Critical Issues |
4 issues matched
4 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: VarTest | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types too big |
Critical issue on: __Globals .compile_branch(int*,pcre_uchar** ,constpcre_uchar**,int*,pcre_uint32* ,pcre_int32*,pcre_uint32*,pcre_int32* ,branch_chain*,int,compile_data*,int*) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: __Globals .internal_dfa_exec(dfa_match_data* ,constpcre_uchar*,constpcre_uchar*,int ,int*,int,int*,int,int) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: __Globals.match (constpcre_uchar*,constpcre_uchar* ,constpcre_uchar*,int,match_data* ,eptrblock*,unsignedint) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 3d 4h | 1d 0h |
Average: | - | 7h 0min | 2h 0min |
Minimum: | - | 6h 0min | 2h 0min |
Maximum: | - | 1d 2h | 2h 0min |
Standard deviation: | - | 1h 43min | 0min 0s |
Variance: | - | 1 350d | 0min 0s |
![]() | Quality Gate Pass: New Blocker / Critical / High Issues |
No issue matched
![]() | Quality Gate Fail: Critical Rules Violated |
3 rules matched
3 rules | issues | Full Name |
---|---|---|
Avoid types too big | 50 issues | Rule |
Avoid methods too big, too complex | 389 issues | Rule |
Avoid methods with too many parameters | 96 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 535 |
Average: | 178.33 |
Minimum: | 50 |
Maximum: | 389 |
Standard deviation: | 150.14 |
Variance: | 22 543 |
![]() | Quality Gate Pass: Percentage Debt |
Scalar Result: 9.44 %
![]() | Quality Gate Pass: New Debt since Baseline |
Scalar Result: 0 man-days
![]() | Quality Gate Fail: Debt Rating per Namespace |
2 namespaces matched
2 namespaces | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues | Full Name |
---|---|---|---|---|---|---|
Poco.Dynamic | D | 21.63 | 4d 0h | 7h 8min | 76 issues | Poco.Dynamic |
anonymous_namespace{httpdigestcredential s.cpp} | D | 36.55 | 2h 44min | 1h 0min | 1 issue | anonymous_namespace{httpdigestcredential s.cpp} |
Statistics
Stat | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues |
---|---|---|---|---|---|
Sum: | - | 58.18 | 4d 3h | 1d 0h | 77 |
Average: | - | 29.09 | 2d 1h | 4h 4min | 38.5 |
Minimum: | - | 21.63 | 2h 44min | 1h 0min | 1 |
Maximum: | - | 36.55 | 4d 0h | 7h 8min | 76 |
Standard deviation: | - | 7.46 | 1d 7h | 3h 4min | 37.5 |
Variance: | - | 55.64 | 102 876d | 4 232d | 1 406 |
![]() | Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: 0 man-days
Object Oriented Design
![]() | Rule Violated: Base class should not use derivatives |
• How to Fix Issues: Understand the need for using derivatives, then imagine a new design, and then refactor. Typically an algorithm in the base class needs to access something from derived classes. You can try to encapsulate this access behind an abstract or a virtual method. If you see in the base class some conditions on typeof(DerivedClass) not only urgent refactoring is needed. Such condition can easily be replaced through an abstract or a virtual method. Sometime you'll see a base class that creates instance of some derived classes. In such situation, certainly using the factory method pattern http://en.wikipedia.org/wiki/Factory_method_pattern or the abstract factory pattern http://en.wikipedia.org/wiki/Abstract_factory_pattern will improve the design. The estimated Debt, which means the effort to fix such issue, is equal to 3 minutes per derived class used by the base class + 3 minutes per member of a derived class used by the base class.
4 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
4 types | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity | Full Name |
---|---|---|---|---|---|
AbstractNode | 3 types | 4 methods 1 field | 24min | High | Poco.XML.AbstractNode |
AbstractContainerNode | 2 types | 2 methods | 12min | High | Poco.XML.AbstractContainerNode |
SocketImpl | 1 type | 1 method | 6min | High | Poco.Net.SocketImpl |
Node | 1 type | no member | 3min 0s | High | Poco.XML.Node |
Statistics
Stat | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity |
---|---|---|---|---|
Sum: | 7 | 8 | 45min | - |
Average: | 1.75 | 2 | 11min | - |
Minimum: | 1 | 0 | 3min 0s | - |
Maximum: | 3 | 5 | 24min | - |
Standard deviation: | 0.83 | 1.87 | 8min | - |
Variance: | 0.69 | 3.5 | 8d 0h | - |
![]() | Rule Violated: Class shouldn't be too deep in inheritance tree |
• How to Fix Issues: In Object-Oriented Programming, a well-known motto is Favor Composition over Inheritance. This is because inheritance comes with pitfalls. In general, the implementation of a derived class is very bound up with the base class implementation. Also a base class exposes implementation details to its derived classes, that's why it's often said that inheritance breaks encapsulation. On the other hands, Composition favors binding with interfaces over binding with implementations. Hence, not only the encapsulation is preserved, but the design is clearer, because interfaces make it explicit and less coupled. Hence, to break a long inheritance chain, Composition is often a powerful way to enhance the design of the refactored underlying logic. You can also read: http://en.wikipedia.org/wiki/Composition_over_inheritance and http://stackoverflow.com/questions/49002/prefer-composition-over-inheritance The estimated Debt, which means the effort to fix such issue, depends linearly upon the depth of inheritance.
115 types matched
- The following list of types is truncated and contains only the first 100 types of the 115 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
115 types | baseClasses | Depth of inheritance | Debt | Severity | Full Name |
---|---|---|---|---|---|
WhitespaceFilter | 8 types | 3 | 18min | Medium | Poco.XML.WhitespaceFilter |
Document | 6 types | 5 | 12min | Medium | Poco.XML.Document |
CDATASection | 6 types | 6 | 12min | Medium | Poco.XML.CDATASection |
XMLFilterImpl | 6 types | 2 | 12min | Medium | Poco.XML.XMLFilterImpl |
HTTPServerRequestImpl | 5 types | 5 | 9min | Medium | Poco.Net.HTTPServerRequestImpl |
HTTPServerResponseImpl | 5 types | 5 | 9min | Medium | Poco.Net.HTTPServerResponseImpl |
Element | 5 types | 5 | 9min | Medium | Poco.XML.Element |
Text | 5 types | 5 | 9min | Medium | Poco.XML.Text |
Comment | 5 types | 5 | 9min | Medium | Poco.XML.Comment |
DocumentType | 5 types | 5 | 9min | Medium | Poco.XML.DocumentType |
DocumentFragment | 5 types | 5 | 9min | Medium | Poco.XML.DocumentFragment |
Entity | 5 types | 5 | 9min | Medium | Poco.XML.Entity |
PathSyntaxException | 4 types | 5 | 6min | Medium | Poco.PathSyntaxException |
FileExistsException | 4 types | 5 | 6min | Medium | Poco.FileExistsException |
FileNotFoundException | 4 types | 5 | 6min | Medium | Poco.FileNotFoundException |
PathNotFoundException | 4 types | 5 | 6min | Medium | Poco.PathNotFoundException |
FileReadOnlyException | 4 types | 5 | 6min | Medium | Poco.FileReadOnlyException |
FileAccessDeniedException | 4 types | 5 | 6min | Medium | Poco.FileAccessDeniedException |
CreateFileException | 4 types | 5 | 6min | Medium | Poco.CreateFileException |
OpenFileException | 4 types | 5 | 6min | Medium | Poco.OpenFileException |
WriteFileException | 4 types | 5 | 6min | Medium | Poco.WriteFileException |
ReadFileException | 4 types | 5 | 6min | Medium | Poco.ReadFileException |
DirectoryNotEmptyException | 4 types | 5 | 6min | Medium | Poco.DirectoryNotEmptyException |
URISyntaxException | 4 types | 5 | 6min | Medium | Poco.URISyntaxException |
AsyncChannel | 4 types | 2 | 6min | Medium | Poco.AsyncChannel |
HTTPServerRequest | 4 types | 4 | 6min | Medium | Poco.Net.HTTPServerRequest |
HTTPServerResponse | 4 types | 4 | 6min | Medium | Poco.Net.HTTPServerResponse |
HostNotFoundException | 4 types | 6 | 6min | Medium | Poco.Net.HostNotFoundException |
NoAddressFoundException | 4 types | 6 | 6min | Medium | Poco.Net.NoAddressFoundException |
MultipartException | 4 types | 6 | 6min | Medium | Poco.Net.MultipartException |
NotAuthenticatedException | 4 types | 6 | 6min | Medium | Poco.Net.NotAuthenticatedException |
UnsupportedRedirectException | 4 types | 6 | 6min | Medium | Poco.Net.UnsupportedRedirectException |
AbstractContainerNode | 4 types | 4 | 6min | Medium | Poco.XML.AbstractContainerNode |
Attr | 4 types | 4 | 6min | Medium | Poco.XML.Attr |
CharacterData | 4 types | 4 | 6min | Medium | Poco.XML.CharacterData |
DefaultHandler | 4 types | 1 | 6min | Medium | Poco.XML.DefaultHandler |
ProcessingInstruction | 4 types | 4 | 6min | Medium | Poco.XML.ProcessingInstruction |
EntityReference | 4 types | 4 | 6min | Medium | Poco.XML.EntityReference |
Notation | 4 types | 4 | 6min | Medium | Poco.XML.Notation |
EventChannel | 3 types | 2 | 3min 0s | Medium | Poco.EventChannel |
DataFormatException | 3 types | 4 | 3min 0s | Medium | Poco.DataFormatException |
SyntaxException | 3 types | 4 | 3min 0s | Medium | Poco.SyntaxException |
CircularReferenceException | 3 types | 4 | 3min 0s | Medium | Poco.CircularReferenceException |
ProtocolException | 3 types | 4 | 3min 0s | Medium | Poco.ProtocolException |
FileException | 3 types | 4 | 3min 0s | Medium | Poco.FileException |
ConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.ConsoleChannel |
ColorConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.ColorConsoleChannel |
EventLogChannel | 3 types | 2 | 3min 0s | Medium | Poco.EventLogChannel |
FileChannel | 3 types | 2 | 3min 0s | Medium | Poco.FileChannel |
FormattingChannel | 3 types | 2 | 3min 0s | Medium | Poco.FormattingChannel |
Logger | 3 types | 2 | 3min 0s | Medium | Poco.Logger |
NullChannel | 3 types | 2 | 3min 0s | Medium | Poco.NullChannel |
PatternFormatter | 3 types | 2 | 3min 0s | Medium | Poco.PatternFormatter |
SimpleFileChannel | 3 types | 2 | 3min 0s | Medium | Poco.SimpleFileChannel |
SplitterChannel | 3 types | 2 | 3min 0s | Medium | Poco.SplitterChannel |
StreamChannel | 3 types | 2 | 3min 0s | Medium | Poco.StreamChannel |
WindowsConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.WindowsConsoleChannel |
WindowsColorConsoleChannel | 3 types | 2 | 3min 0s | Medium | Poco.WindowsColorConsoleChannel |
TaskStartedNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskStartedNotification |
TaskCancelledNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskCancelledNotification |
TaskFinishedNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskFinishedNotification |
TaskFailedNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskFailedNotification |
TaskProgressNotification | 3 types | 3 | 3min 0s | Medium | Poco.TaskProgressNotification |
TaskCustomNotification<C> | 3 types | 3 | 3min 0s | Medium | Poco.TaskCustomNotification<C> |
SimpleFormatter | 3 types | 2 | 3min 0s | Medium | SimpleFormatter |
TestChannel | 3 types | 2 | 3min 0s | Medium | TestChannel |
CustomChannel | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{loggingfactorytest .cpp}.CustomChannel |
CustomFormatter | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{loggingfactorytest .cpp}.CustomFormatter |
TestTask | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{taskmanagertest.cpp} .TestTask |
SimpleTask | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{taskmanagertest.cpp} .SimpleTask |
CustomNotificationTask<T> | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{taskmanagertest.cpp} .CustomNotificationTask<T> |
TestTask | 3 types | 2 | 3min 0s | Medium | anonymous_namespace{tasktest.cpp} .TestTask |
HTTPRequest | 3 types | 3 | 3min 0s | Medium | Poco.Net.HTTPRequest |
HTTPResponse | 3 types | 3 | 3min 0s | Medium | Poco.Net.HTTPResponse |
InvalidAddressException | 3 types | 5 | 3min 0s | Medium | Poco.Net.InvalidAddressException |
InvalidSocketException | 3 types | 5 | 3min 0s | Medium | Poco.Net.InvalidSocketException |
ServiceNotFoundException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ServiceNotFoundException |
ConnectionAbortedException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ConnectionAbortedException |
ConnectionResetException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ConnectionResetException |
ConnectionRefusedException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ConnectionRefusedException |
DNSException | 3 types | 5 | 3min 0s | Medium | Poco.Net.DNSException |
InterfaceNotFoundException | 3 types | 5 | 3min 0s | Medium | Poco.Net.InterfaceNotFoundException |
NoMessageException | 3 types | 5 | 3min 0s | Medium | Poco.Net.NoMessageException |
MessageException | 3 types | 5 | 3min 0s | Medium | Poco.Net.MessageException |
HTTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.HTTPException |
FTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.FTPException |
SMTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.SMTPException |
POP3Exception | 3 types | 5 | 3min 0s | Medium | Poco.Net.POP3Exception |
ICMPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.ICMPException |
NTPException | 3 types | 5 | 3min 0s | Medium | Poco.Net.NTPException |
HTMLFormException | 3 types | 5 | 3min 0s | Medium | Poco.Net.HTMLFormException |
WebSocketException | 3 types | 5 | 3min 0s | Medium | Poco.Net.WebSocketException |
UnsupportedFamilyException | 3 types | 5 | 3min 0s | Medium | Poco.Net.UnsupportedFamilyException |
RemoteSyslogListener | 3 types | 3 | 3min 0s | Medium | Poco.Net.RemoteSyslogListener |
RowDataMissingException | 3 types | 5 | 3min 0s | Medium | Poco.Data.RowDataMissingException |
UnknownDataBaseException | 3 types | 5 | 3min 0s | Medium | Poco.Data.UnknownDataBaseException |
UnknownTypeException | 3 types | 5 | 3min 0s | Medium | Poco.Data.UnknownTypeException |
ExecutionException | 3 types | 5 | 3min 0s | Medium | Poco.Data.ExecutionException |
BindingException | 3 types | 5 | 3min 0s | Medium | Poco.Data.BindingException |
ExtractException | 3 types | 5 | 3min 0s | Medium | Poco.Data.ExtractException |
Statistics
Stat | baseClasses | Depth of inheritance | Debt | Severity |
---|---|---|---|---|
Sum: | 402 | 462 | 1d 0h | - |
Average: | 3.5 | 4.02 | 4min 29s | - |
Minimum: | 3 | 1 | 3min 0s | - |
Maximum: | 8 | 6 | 18min | - |
Standard deviation: | 0.85 | 1.37 | 2min 32s | - |
Variance: | 0.72 | 1.88 | 6h 28min | - |
![]() | Rule Violated: Constructor should not call a virtual methods |
• How to Fix Issues: Violations reported can be solved by re-designing object initialisation or by declaring the parent class as sealed, if possible.
24 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
24 methods | virtualMethodsCalled | DerivedTypes | Debt | Severity | Full Name |
---|---|---|---|---|---|
Exception(conststd::string& ,constPoco::Exception&,int) | 1 method | 117 types | 6min | High | Poco.Exception.Exception (conststd::string&,constPoco::Exception& ,int) |
Exception(constPoco::Exception&) | 1 method | 117 types | 6min | High | Poco.Exception.Exception (constPoco::Exception&) |
LogFileImpl(conststd::string&) | 1 method | 1 type | 6min | High | Poco.LogFileImpl.LogFileImpl (conststd::string&) |
TaskFailedNotification(Poco::Task* ,constPoco::Exception&) | 1 method | no type | 6min | High | Poco.TaskFailedNotification .TaskFailedNotification(Poco::Task* ,constPoco::Exception&) |
Var(constPoco::Dynamic::Var&) | 1 method | no type | 6min | High | Poco.Dynamic.Var.Var (constPoco::Dynamic::Var&) |
ICMPSocketImpl(IPAddress::Family,int,int ,int) | 1 method | no type | 6min | High | Poco.Net.ICMPSocketImpl.ICMPSocketImpl (IPAddress::Family,int,int,int) |
OAuth10Credentials (constPoco::Net::HTTPRequest&) | 1 method | no type | 6min | High | Poco.Net.OAuth10Credentials .OAuth10Credentials (constPoco::Net::HTTPRequest&) |
ServerSocket (constPoco::Net::SocketAddress&,int) | 2 methods | no type | 12min | High | Poco.Net.ServerSocket.ServerSocket (constPoco::Net::SocketAddress&,int) |
ServerSocket(Poco::UInt16,int) | 2 methods | no type | 12min | High | Poco.Net.ServerSocket.ServerSocket (Poco::UInt16,int) |
StreamSocketImpl(IPAddress::Family) | 1 method | 1 type | 6min | High | Poco.Net.StreamSocketImpl .StreamSocketImpl(IPAddress::Family) |
CryptoStreamBuf(std::istream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoStreamBuf .CryptoStreamBuf(std::istream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) |
CryptoStreamBuf(std::ostream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoStreamBuf .CryptoStreamBuf(std::ostream& ,Poco::Crypto::CryptoTransform* ,std::streamsize) |
CryptoInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoInputStream .CryptoInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) |
CryptoOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.CryptoOutputStream .CryptoOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) |
DecryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.DecryptingInputStream .DecryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) |
DecryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.DecryptingOutputStream .DecryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) |
EncryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.EncryptingInputStream .EncryptingInputStream(std::istream& ,Poco::Crypto::Cipher&,std::streamsize) |
EncryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) | 1 method | no type | 6min | High | Poco.Crypto.EncryptingOutputStream .EncryptingOutputStream(std::ostream& ,Poco::Crypto::Cipher&,std::streamsize) |
SimpleRowFormatter (constPoco::Data::SimpleRowFormatter&) | 2 methods | no type | 12min | High | Poco.Data.SimpleRowFormatter .SimpleRowFormatter (constPoco::Data::SimpleRowFormatter&) |
StatementImpl(Poco::Data::SessionImpl&) | 1 method | no type | 6min | High | Poco.Data.StatementImpl.StatementImpl (Poco::Data::SessionImpl&) |
DOMBuilder(Poco::XML::XMLReader& ,Poco::XML::NamePool*) | 3 methods | no type | 18min | High | Poco.XML.DOMBuilder.DOMBuilder (Poco::XML::XMLReader& ,Poco::XML::NamePool*) |
SAXParseException(conststd::string& ,constPoco::XML::Locator&) | 4 methods | no type | 24min | High | Poco.XML.SAXParseException .SAXParseException(conststd::string& ,constPoco::XML::Locator&) |
SAXParseException(conststd::string& ,constPoco::XML::Locator& ,constPoco::Exception&) | 4 methods | no type | 24min | High | Poco.XML.SAXParseException .SAXParseException(conststd::string& ,constPoco::XML::Locator& ,constPoco::Exception&) |
LocatorImpl(constPoco::XML::Locator&) | 4 methods | no type | 24min | High | Poco.XML.LocatorImpl.LocatorImpl (constPoco::XML::Locator&) |
Statistics
Stat | virtualMethodsCalled | DerivedTypes | Debt | Severity |
---|---|---|---|---|
Sum: | 38 | 236 | 3h 48min | - |
Average: | 1.58 | 9.83 | 9min | - |
Minimum: | 1 | 0 | 6min | - |
Maximum: | 4 | 117 | 24min | - |
Standard deviation: | 1.04 | 32.31 | 6min | - |
Variance: | 1.08 | 1 044 | 4d 6h | - |
![]() | Rule Violated: Don't assign static fields from instance methods |
• How to Fix Issues: If the static field is just assigned once in the program lifetime, make sure to declare it as readonly and assign it inline, or from the static constructor. In Object-Oriented-Programming the natural artifact to hold states that can be modified is instance fields. Hence to fix violations of this rule, make sure to hold assignable states through instance fields, not through static fields.
19 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
19 fields | assignedBy | Debt | Severity | Full Name |
---|---|---|---|---|
real_link_size | 1 method | 5min | Medium | __Globals.real_link_size |
IN_ENCODING | 2 methods | 5min | Medium | Poco.Base32DecoderBuf.IN_ENCODING |
IN_ENCODING_INIT | 1 method | 5min | Medium | Poco.Base32DecoderBuf.IN_ENCODING_INIT |
IN_ENCODING | 2 methods | 5min | Medium | Poco.Base64DecoderBuf.IN_ENCODING |
IN_ENCODING_INIT | 1 method | 5min | Medium | Poco.Base64DecoderBuf.IN_ENCODING_INIT |
SECONDS | 1 method | 5min | Medium | Poco.Timespan.SECONDS |
MINUTES | 2 methods | 5min | Medium | Poco.Timespan.MINUTES |
HOURS | 2 methods | 5min | Medium | Poco.Timespan.HOURS |
DAYS | 2 methods | 5min | Medium | Poco.Timespan.DAYS |
kDoubleSignificandSize | 1 method | 5min | Medium | double_conversion.__Globals .kDoubleSignificandSize |
kMask32 | 1 method | 5min | Medium | double_conversion.UInt128.kMask32 |
i | 2 methods | 5min | Medium | Parent.i |
_staticVar | 4 methods | 5min | Medium | MyRunnable._staticVar |
_asciiClass | 1 method | 5min | Medium | Poco.JSON.Parser._asciiClass |
_stateTransitionTable | 1 method | 5min | Medium | Poco.JSON.Parser._stateTransitionTable |
_pInstance | 2 methods | 5min | Medium | Poco.JSON.TemplateCache._pInstance |
HEADER_CONTENT_TYPE | 1 method | 5min | Medium | Poco.Net.MailMessage.HEADER_CONTENT_TYPE |
latin1_encoding | 1 method | 5min | Medium | __Globals.latin1_encoding |
PARSE_BUFFER_SIZE | 2 methods | 5min | Medium | Poco.XML.ParserEngine.PARSE_BUFFER_SIZE |
Statistics
Stat | assignedBy | Debt | Severity |
---|---|---|---|
Sum: | 30 | 1h 35min | - |
Average: | 1.58 | 5min | - |
Minimum: | 1 | 5min | - |
Maximum: | 4 | 5min | - |
Standard deviation: | 0.75 | 0min 0s | - |
Variance: | 0.56 | 0min 0s | - |
![]() | Rule Violated: Avoid Abstract Classes with too many methods |
• How to Fix Issues: Typically to fix such issue, the interface must be refactored in a grape of smaller single-responsibility interfaces. A classic example is a ISession large interface, responsible for holding states, run commands and offer various accesses and facilities. The classic problem for a large public interface is that it has many clients that consume it. As a consequence splitting it in smaller interfaces has an important impact and it is not always feasible. The estimated Debt, which means the effort to fix such issue, varies linearly from 20 minutes for an interface with 10 methods, up to 7 hours for an interface with 100 or more methods. The Debt is divided by two if the interface is not publicly visible, because in such situation only the current project is impacted by the refactoring.
21 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
21 types | Methods | Debt | Annual Interest | Full Name |
---|---|---|---|---|
AbstractPreparator | 95 methods | 6h 37min | 1h 53min | Poco.Data.AbstractPreparator |
AbstractBinder | 93 methods | 6h 28min | 1h 50min | Poco.Data.AbstractBinder |
AbstractExtractor | 93 methods | 6h 28min | 1h 50min | Poco.Data.AbstractExtractor |
StatementImpl | 67 methods | 4h 33min | 1h 16min | Poco.Data.StatementImpl |
AbstractNode | 45 methods | 2h 55min | 47min | Poco.XML.AbstractNode |
VarHolder | 44 methods | 2h 51min | 46min | Poco.Dynamic.VarHolder |
Node | 30 methods | 1h 48min | 28min | Poco.XML.Node |
SessionImpl | 29 methods | 1h 44min | 26min | Poco.Data.SessionImpl |
IPAddressImpl | 25 methods | 1h 26min | 21min | Poco.Net.Impl.IPAddressImpl |
AbstractExtraction | 24 methods | 1h 22min | 20min | Poco.Data.AbstractExtraction |
Handler | 18 methods | 55min | 12min | Poco.JSON.Handler |
XMLReader | 18 methods | 55min | 12min | Poco.XML.XMLReader |
TextEncoding | 17 methods | 51min | 11min | Poco.TextEncoding |
ArchiveStrategy | 17 methods | 51min | 11min | Poco.Data.ArchiveStrategy |
Task | 16 methods | 46min | 9min | Poco.Task |
ICMPPacketImpl | 16 methods | 46min | 9min | Poco.Net.ICMPPacketImpl |
Attributes | 14 methods | 37min | 7min | Poco.XML.Attributes |
AbstractBinding | 13 methods | 33min | 5min | Poco.Data.AbstractBinding |
ContentHandler | 13 methods | 33min | 5min | Poco.XML.ContentHandler |
DigestEngine | 11 methods | 24min | 3min 18s | Poco.DigestEngine |
NamedNodeMap | 10 methods | 20min | 2min 0s | Poco.XML.NamedNodeMap |
Statistics
Stat | Methods | Debt | Annual Interest |
---|---|---|---|
Sum: | 708 | 5d 3h | 1d 3h |
Average: | 33.71 | 2h 5min | 33min |
Minimum: | 10 | 20min | 2min 0s |
Maximum: | 95 | 6h 37min | 1h 53min |
Standard deviation: | 27.89 | 2h 3min | 36min |
Variance: | 778.01 | 1 921d | 167d |
![]() | Validated Rule: Type should not have too many responsibilities |
// Types using more than 8 different application namespaces
// are considered as having too many responsabilities.
warnif count > 0
from t in JustMyCode.Types
let applicationTypesUsed = t.TypesUsed.ExceptThirdParty().ToList()
let applicationNamespacesUsed = applicationTypesUsed.ParentNamespaces().ToList()
where applicationNamespacesUsed.Count > 8
// Use an empiric formula to sort by degree of responsabilities
let responsabilitiesMetric = (10 * applicationNamespacesUsed.Count + applicationTypesUsed.Count)/10
orderby responsabilitiesMetric descending
select new { t, applicationNamespacesUsed, applicationTypesUsed, responsabilitiesMetric }
No type matched
![]() | Rule Violated: Nested types should not be visible |
• How to Fix Issues: If you do not intend the nested type to be externally visible, change the type's accessibility. Otherwise, remove the nested type from its parent and make it non-nested. If the purpose of the nesting is to group some nested types, use a namespace to create the hierarchy instead. The estimated Debt, which means the effort to fix such issue, is 2 minutes per nested type plus 4 minutes per outter type using such nesting type.
143 types matched
- The following list of types is truncated and contains only the first 100 types of the 143 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
143 types | Visibility | typesUser | Debt | Severity | Full Name |
---|---|---|---|---|---|
POCO_STATIC_ASSERTION_FAILURE<true >+AnonymousEnum | Public | no type | 2min 0s | Medium | POCO_STATIC_ASSERTION_FAILURE<true >+AnonymousEnum |
ct_data_s+Anonymous | Public | no type | 2min 0s | Medium | ct_data_s+Anonymous |
Checksum+Type | Public | no type | 2min 0s | Medium | Poco.Checksum+Type |
DirectoryWatcher+DirectoryEventType | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+DirectoryEventType |
DirectoryWatcher+DirectoryEventMask | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+DirectoryEventMask |
DirectoryWatcher+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+AnonymousEnum |
DirectoryWatcher+DirectoryEvent | Public | no type | 2min 0s | Medium | Poco.DirectoryWatcher+DirectoryEvent |
DirectoryWatcherStrategy+ItemInfo | Protected | no type | 2min 0s | Medium | Poco.DirectoryWatcherStrategy+ItemInfo |
FPEnvironmentImpl+RoundingModeImpl | Protected | no type | 2min 0s | Medium | Poco.FPEnvironmentImpl+RoundingModeImpl |
FPEnvironmentImpl+FlagImpl | Protected | no type | 2min 0s | Medium | Poco.FPEnvironmentImpl+FlagImpl |
FPEnvironment+RoundingMode | Public | no type | 2min 0s | Medium | Poco.FPEnvironment+RoundingMode |
FPEnvironment+Flag | Public | no type | 2min 0s | Medium | Poco.FPEnvironment+Flag |
NumberFormatter+BoolFormat | Public | no type | 2min 0s | Medium | Poco.NumberFormatter+BoolFormat |
TraverseBase+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.TraverseBase+AnonymousEnum |
StringTokenizer+Options | Public | no type | 2min 0s | Medium | Poco.StringTokenizer+Options |
UTF32Encoding+ByteOrderType | Public | no type | 2min 0s | Medium | Poco.UTF32Encoding+ByteOrderType |
BinaryReader+StreamByteOrder | Public | no type | 2min 0s | Medium | Poco.BinaryReader+StreamByteOrder |
BinaryWriter+StreamByteOrder | Public | no type | 2min 0s | Medium | Poco.BinaryWriter+StreamByteOrder |
DeflatingStreamBuf+StreamType | Public | no type | 2min 0s | Medium | Poco.DeflatingStreamBuf+StreamType |
FileStreamBuf+AnonymousEnum | Protected | no type | 2min 0s | Medium | Poco.FileStreamBuf+AnonymousEnum |
InflatingStreamBuf+StreamType | Public | no type | 2min 0s | Medium | Poco.InflatingStreamBuf+StreamType |
Token+Class | Public | no type | 2min 0s | Medium | Poco.Token+Class |
ThreadImpl+Priority | Public | no type | 2min 0s | Medium | Poco.ThreadImpl+Priority |
ThreadImpl+Policy | Public | no type | 2min 0s | Medium | Poco.ThreadImpl+Policy |
Thread+Priority | Public | no type | 2min 0s | Medium | Poco.Thread+Priority |
Thread+Policy | Public | no type | 2min 0s | Medium | Poco.Thread+Policy |
Thread+FunctorRunnable | Public | no type | 2min 0s | Medium | Poco.Thread+FunctorRunnable |
MD4Engine+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.MD4Engine+AnonymousEnum |
MD5Engine+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.MD5Engine+AnonymousEnum |
Random+Type | Public | no type | 2min 0s | Medium | Poco.Random+Type |
SHA1Engine+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.SHA1Engine+AnonymousEnum |
Manifest<B>+Iterator | Public | no type | 2min 0s | Medium | Poco.Manifest<B>+Iterator |
SharedLibrary+Flags | Public | no type | 2min 0s | Medium | Poco.SharedLibrary+Flags |
RegularExpression+Options | Public | no type | 2min 0s | Medium | Poco.RegularExpression+Options |
RegularExpression+Match | Public | no type | 2min 0s | Medium | Poco.RegularExpression+Match |
ColorConsoleChannel+Color | Protected | no type | 2min 0s | Medium | Poco.ColorConsoleChannel+Color |
Message+Priority | Public | no type | 2min 0s | Medium | Poco.Message+Priority |
WindowsColorConsoleChannel+Color | Protected | no type | 2min 0s | Medium | Poco.WindowsColorConsoleChannel+Color |
Glob+Options | Public | no type | 2min 0s | Medium | Poco.Glob+Options |
Path+Style | Public | no type | 2min 0s | Medium | Poco.Path+Style |
PathImpl+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.PathImpl+AnonymousEnum |
Pipe+CloseMode | Public | no type | 2min 0s | Medium | Poco.Pipe+CloseMode |
SharedMemory+AccessMode | Public | no type | 2min 0s | Medium | Poco.SharedMemory+AccessMode |
UUID+Version | Public | no type | 2min 0s | Medium | Poco.UUID+Version |
DateTime+Months | Public | no type | 2min 0s | Medium | Poco.DateTime+Months |
DateTime+DaysOfWeek | Public | no type | 2min 0s | Medium | Poco.DateTime+DaysOfWeek |
DateTimeFormatter+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.DateTimeFormatter+AnonymousEnum |
TextEncoding+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.TextEncoding+AnonymousEnum |
Unicode+CharacterCategory | Public | no type | 2min 0s | Medium | Poco.Unicode+CharacterCategory |
Unicode+CharacterType | Public | no type | 2min 0s | Medium | Poco.Unicode+CharacterType |
Unicode+Script | Public | no type | 2min 0s | Medium | Poco.Unicode+Script |
Unicode+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Unicode+AnonymousEnum |
Unicode+CharacterProperties | Public | no type | 2min 0s | Medium | Poco.Unicode+CharacterProperties |
UTF16Encoding+ByteOrderType | Public | no type | 2min 0s | Medium | Poco.UTF16Encoding+ByteOrderType |
URIStreamOpener+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.URIStreamOpener+AnonymousEnum |
Task+TaskState | Public | no type | 2min 0s | Medium | Poco.Task+TaskState |
FileChannelTest+TimeRotation | Public | no type | 2min 0s | Medium | FileChannelTest+TimeRotation |
TaskManagerTest+S | Public | no type | 2min 0s | Medium | TaskManagerTest+S |
Parser+Classes | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Classes |
Parser+States | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+States |
Parser+Modes | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Modes |
Parser+Actions | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Actions |
Parser+JSONType | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+JSONType |
Parser+Source | Public | no type | 2min 0s | Medium | Poco.JSON.Parser+Source |
DialogSocket+TelnetCodes | Public | no type | 2min 0s | Medium | Poco.Net.DialogSocket+TelnetCodes |
DNS+HintFlag | Public | no type | 2min 0s | Medium | Poco.Net.DNS+HintFlag |
FTPClientSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+AnonymousEnum |
FTPClientSession+FileType | Public | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+FileType |
FTPClientSession+StatusClass | Protected | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+StatusClass |
FTPClientSession+AnonymousEnum | Protected | no type | 2min 0s | Medium | Poco.Net.FTPClientSession+AnonymousEnum |
HTTPBufferAllocator+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net .HTTPBufferAllocator+AnonymousEnum |
HTTPClientSession+ProxyConfig | Public | no type | 2min 0s | Medium | Poco.Net.HTTPClientSession+ProxyConfig |
HTTPClientSession+AnonymousEnum | Protected | no type | 2min 0s | Medium | Poco.Net.HTTPClientSession+AnonymousEnum |
HTTPResponse+HTTPStatus | Public | no type | 2min 0s | Medium | Poco.Net.HTTPResponse+HTTPStatus |
HTTPSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.HTTPSession+AnonymousEnum |
ICMPv4PacketImpl+Header | Public | no type | 2min 0s | Medium | Poco.Net.ICMPv4PacketImpl+Header |
ICMPv4PacketImpl+MessageType | Public | no type | 2min 0s | Medium | Poco.Net.ICMPv4PacketImpl+MessageType |
ICMPv4PacketImpl+DestinationUnreachableC ode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+DestinationUnreachable Code |
ICMPv4PacketImpl+RedirectMessageCode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+RedirectMessageCode |
ICMPv4PacketImpl+TimeExceededCode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+TimeExceededCode |
ICMPv4PacketImpl+ParameterProblemCode | Public | no type | 2min 0s | Medium | Poco.Net .ICMPv4PacketImpl+ParameterProblemCode |
IPAddress+Family | Public | no type | 2min 0s | Medium | Poco.Net.IPAddress+Family |
IPAddress+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.IPAddress+AnonymousEnum |
MailMessage+ContentDisposition | Public | no type | 2min 0s | Medium | Poco.Net.MailMessage+ContentDisposition |
MailMessage+ContentTransferEncoding | Public | no type | 2min 0s | Medium | Poco.Net .MailMessage+ContentTransferEncoding |
MailMessage+Part | Public | no type | 2min 0s | Medium | Poco.Net.MailMessage+Part |
MailRecipient+RecipientType | Public | no type | 2min 0s | Medium | Poco.Net.MailRecipient+RecipientType |
NetworkInterface+AddressType | Public | no type | 2min 0s | Medium | Poco.Net.NetworkInterface+AddressType |
NetworkInterface+Type | Public | no type | 2min 0s | Medium | Poco.Net.NetworkInterface+Type |
NetworkInterface+IPVersion | Public | no type | 2min 0s | Medium | Poco.Net.NetworkInterface+IPVersion |
OAuth10Credentials+SignatureMethod | Public | no type | 2min 0s | Medium | Poco.Net .OAuth10Credentials+SignatureMethod |
POP3ClientSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.POP3ClientSession+AnonymousEnum |
POP3ClientSession+MessageInfo | Public | no type | 2min 0s | Medium | Poco.Net.POP3ClientSession+MessageInfo |
RemoteSyslogChannel+Severity | Public | no type | 2min 0s | Medium | Poco.Net.RemoteSyslogChannel+Severity |
RemoteSyslogChannel+Facility | Public | no type | 2min 0s | Medium | Poco.Net.RemoteSyslogChannel+Facility |
RemoteSyslogChannel+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net .RemoteSyslogChannel+AnonymousEnum |
RemoteUDPListener+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.RemoteUDPListener+AnonymousEnum |
SyslogParser+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.SyslogParser+AnonymousEnum |
SMTPClientSession+AnonymousEnum | Public | no type | 2min 0s | Medium | Poco.Net.SMTPClientSession+AnonymousEnum |
SMTPClientSession+LoginMethod | Public | no type | 2min 0s | Medium | Poco.Net.SMTPClientSession+LoginMethod |
Statistics
Stat | Visibility | typesUser | Debt | Severity |
---|---|---|---|---|
Sum: | - | 0 | 4h 46min | - |
Average: | - | 0 | 2min 0s | - |
Minimum: | - | 0 | 2min 0s | - |
Maximum: | - | 0 | 2min 0s | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
![]() | Rule Violated: Projects with poor cohesion (RelationalCohesion) |
• How to Fix Issues: Matches of this present rule might reveal either assemblies with specific coding constraints (like code generated that have particular structure) either issues in design. In the second case, large refactoring can be planned not to respect this rule in particular, but to increase the overall design and code maintainability. The severity of issues of this rule is Low because the code metric Relational Cohesion is an information about the code structure state but is not actionable, it doesn't tell precisely what to do obtain a better score. Fixing actionable issues of others Architecture and Code Quality default rules will necessarily increase the Relational Cohesion scores.
1 project matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 project | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity | Full Name |
---|---|---|---|---|---|---|
TestSuite | 193 types | 1.03 | 1.02 | 10min | Low | TestSuite |
Statistics
Stat | ChildTypes | relationalCohesion | Relational cohesion | Debt | Severity |
---|---|---|---|---|---|
Sum: | 193 | 1.03 | 1.02 | 10min | - |
Average: | 193 | 1.03 | 1.02 | 10min | - |
Minimum: | 193 | 1.03 | 1.02 | 10min | - |
Maximum: | 193 | 1.03 | 1.02 | 10min | - |
Standard deviation: | 0 | 0 | 0 | 0min 0s | - |
Variance: | 0 | 0 | 0 | 0min 0s | - |
![]() | Validated Rule: Projects that don't satisfy the Abstractness/Instability principle |
• How to Fix Issues: Violations of this rule indicate assemblies with an improper abstractness / stability balance. • Either the assembly is potentially painful to maintain (i.e is massively used and contains mostly concrete types). This can be fixed by creating abstractions to avoid too high coupling with concrete implementations. • Either the assembly is potentially useless (i.e contains mostly abstractions and is not used enough). In such situation, the design must be reviewed to see if it can be enhanced. The severity of issues of this rule is Low because the Abstractness/Instability principle is an information about the code structure state but is not actionable, it doesn't tell precisely what to do obtain a better score. Fixing actionable issues of others Architecture and Code Quality default rules will necessarily push the Abstractness/Instability principle scores in the right direction.
No project matched
![]() | Code Query: Higher cohesion - lower coupling |
// It is deemed as a good software architecture practice to clearly separate
// 'abstract' namespaces containing only abstractions (interfaces, enumerations, delegates)
// from other 'concrete' namespaces, that contains classes and structures.
//
// Typically, the more concrete namespaces rely on abstract namespaces *only*,
// the more Decoupled is the architecture, and the more Cohesive are
// classes inside concrete namespaces.
//
// The following code query, define sets of abstract and concrete namespaces
// and shows for each concrete namespaces, which concrete and abstract namespaces are used.
//
// This query can be adapted to a rule, depending on how much you want
// your code architecture being decoupled.
//
let abstractNamespaces = JustMyCode.Namespaces.Where(
n => n.ChildTypes.Where(t => !t.IsInterface && !t.IsEnumeration ).Count() == 0
).ToHashSet()
let concreteNamespaces = JustMyCode.Namespaces.Except(abstractNamespaces).ToHashSet()
from n in concreteNamespaces
let namespacesUsed = n.NamespacesUsed.ExceptThirdParty()
let concreteNamespacesUsed = namespacesUsed.Except(abstractNamespaces)
let abstractNamespacesUsed = namespacesUsed.Except(concreteNamespaces)
select new { n, concreteNamespacesUsed , abstractNamespacesUsed }
86 namespaces matched
86 namespaces | concreteNamespacesUsed | abstractNamespacesUsed | Full Name |
---|---|---|---|
2 namespaces | no namespace | ||
Poco | 4 namespaces | no namespace | Poco |
Poco.Impl | 1 namespace | no namespace | Poco.Impl |
Poco.anonymous_namespace{format.cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{format.cpp} |
Poco .anonymous_namespace{nesteddiagnosticcon text.cpp} | 1 namespace | no namespace | Poco .anonymous_namespace{nesteddiagnosticcon text.cpp} |
Poco.Dynamic | 1 namespace | no namespace | Poco.Dynamic |
Poco.Dynamic.Impl | 1 namespace | no namespace | Poco.Dynamic.Impl |
Poco.anonymous_namespace{base32decoder .cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{base32decoder .cpp} |
Poco.anonymous_namespace{base64decoder .cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{base64decoder .cpp} |
Poco .anonymous_namespace{activedispatcher .cpp} | 1 namespace | no namespace | Poco .anonymous_namespace{activedispatcher .cpp} |
Poco.anonymous_namespace{thread.cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{thread.cpp} |
Poco.anonymous_namespace{threadlocal .cpp} | no namespace | no namespace | Poco.anonymous_namespace{threadlocal .cpp} |
Poco.anonymous_namespace{threadpool.cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{threadpool.cpp} |
Poco.anonymous_namespace{logger.cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{logger.cpp} |
Poco.anonymous_namespace{loggingfactory .cpp} | no namespace | no namespace | Poco.anonymous_namespace{loggingfactory .cpp} |
Poco.anonymous_namespace{loggingregistry .cpp} | no namespace | no namespace | Poco.anonymous_namespace{loggingregistry .cpp} |
Poco .anonymous_namespace{patternformatter .cpp} | no namespace | no namespace | Poco .anonymous_namespace{patternformatter .cpp} |
Poco .anonymous_namespace{notificationcenter .cpp} | no namespace | no namespace | Poco .anonymous_namespace{notificationcenter .cpp} |
Poco .anonymous_namespace{notificationqueue .cpp} | no namespace | no namespace | Poco .anonymous_namespace{notificationqueue .cpp} |
Poco .anonymous_namespace{prioritynotificatio nqueue.cpp} | no namespace | no namespace | Poco .anonymous_namespace{prioritynotificatio nqueue.cpp} |
Poco.anonymous_namespace{temporaryfile .cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{temporaryfile .cpp} |
Poco.anonymous_namespace{uuid.cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{uuid.cpp} |
Poco.anonymous_namespace{uuidgenerator .cpp} | no namespace | no namespace | Poco.anonymous_namespace{uuidgenerator .cpp} |
Poco.anonymous_namespace{textencoding .cpp} | no namespace | no namespace | Poco.anonymous_namespace{textencoding .cpp} |
Poco.anonymous_namespace{utf8string.cpp} | 1 namespace | no namespace | Poco.anonymous_namespace{utf8string.cpp} |
Poco.anonymous_namespace{uristreamopener .cpp} | no namespace | no namespace | Poco.anonymous_namespace{uristreamopener .cpp} |
double_conversion | 1 namespace | no namespace | double_conversion |
anonymous_namespace{numericstring.cpp} | 1 namespace | no namespace | anonymous_namespace{numericstring.cpp} |
std | 1 namespace | no namespace | std |
anonymous_namespace{process.cpp} | no namespace | no namespace | anonymous_namespace{process.cpp} |
anonymous_namespace{textconverter.cpp} | no namespace | no namespace | anonymous_namespace{textconverter.cpp} |
1 namespace | no namespace | ||
20 namespaces | no namespace | ||
anonymous_namespace{autoptrtest.cpp} | no namespace | no namespace | anonymous_namespace{autoptrtest.cpp} |
anonymous_namespace{autoreleasepooltest .cpp} | no namespace | no namespace | anonymous_namespace{autoreleasepooltest .cpp} |
anonymous_namespace{coretest.cpp} | 1 namespace | no namespace | anonymous_namespace{coretest.cpp} |
anonymous_namespace{dynamicfactorytest .cpp} | no namespace | no namespace | anonymous_namespace{dynamicfactorytest .cpp} |
anonymous_namespace{sharedptrtest.cpp} | no namespace | no namespace | anonymous_namespace{sharedptrtest.cpp} |
anonymous_namespace{notificationqueuetes t.cpp} | 1 namespace | no namespace | anonymous_namespace{notificationqueuetes t.cpp} |
anonymous_namespace{prioritynotification queuetest.cpp} | 1 namespace | no namespace | anonymous_namespace{prioritynotification queuetest.cpp} |
anonymous_namespace{timednotificationque uetest.cpp} | 1 namespace | no namespace | anonymous_namespace{timednotificationque uetest.cpp} |
anonymous_namespace{activedispatchertest .cpp} | 1 namespace | no namespace | anonymous_namespace{activedispatchertest .cpp} |
anonymous_namespace{activemethodtest .cpp} | 1 namespace | no namespace | anonymous_namespace{activemethodtest .cpp} |
anonymous_namespace{activitytest.cpp} | no namespace | no namespace | anonymous_namespace{activitytest.cpp} |
anonymous_namespace{conditiontest.cpp} | 1 namespace | no namespace | anonymous_namespace{conditiontest.cpp} |
anonymous_namespace{loggingfactorytest .cpp} | 1 namespace | no namespace | anonymous_namespace{loggingfactorytest .cpp} |
anonymous_namespace{uristreamopenertest .cpp} | 1 namespace | no namespace | anonymous_namespace{uristreamopenertest .cpp} |
anonymous_namespace{namedeventtest.cpp} | 1 namespace | no namespace | anonymous_namespace{namedeventtest.cpp} |
anonymous_namespace{namedmutextest.cpp} | 1 namespace | no namespace | anonymous_namespace{namedmutextest.cpp} |
anonymous_namespace{taskmanagertest.cpp} | 1 namespace | no namespace | anonymous_namespace{taskmanagertest.cpp} |
anonymous_namespace{tasktest.cpp} | 1 namespace | no namespace | anonymous_namespace{tasktest.cpp} |
no namespace | no namespace | ||
no namespace | no namespace | ||
Poco.JSON | 2 namespaces | no namespace | Poco.JSON |
Poco.Dynamic | 2 namespaces | no namespace | Poco.Dynamic |
2 namespaces | no namespace | ||
Poco.Net | 3 namespaces | no namespace | Poco.Net |
Poco.Net.Impl | 2 namespaces | no namespace | Poco.Net.Impl |
Poco.Net.anonymous_namespace{httpcookie .cpp} | no namespace | no namespace | Poco.Net.anonymous_namespace{httpcookie .cpp} |
Poco.Net .anonymous_namespace{httpsessionfactory .cpp} | no namespace | no namespace | Poco.Net .anonymous_namespace{httpsessionfactory .cpp} |
Poco.Net.anonymous_namespace{mailmessage .cpp} | 2 namespaces | no namespace | Poco.Net.anonymous_namespace{mailmessage .cpp} |
Poco.Net .anonymous_namespace{networkinterface .cpp} | 2 namespaces | no namespace | Poco.Net .anonymous_namespace{networkinterface .cpp} |
Poco.Net.anonymous_namespace{partsource .cpp} | no namespace | no namespace | Poco.Net.anonymous_namespace{partsource .cpp} |
Poco.Net .anonymous_namespace{socketnotifier.cpp} | 1 namespace | no namespace | Poco.Net .anonymous_namespace{socketnotifier.cpp} |
Poco.Net .anonymous_namespace{tcpserverdispatcher .cpp} | no namespace | no namespace | Poco.Net .anonymous_namespace{tcpserverdispatcher .cpp} |
anonymous_namespace{httpauthenticationpa rams.cpp} | no namespace | no namespace | anonymous_namespace{httpauthenticationpa rams.cpp} |
anonymous_namespace{httpdigestcredential s.cpp} | 1 namespace | no namespace | anonymous_namespace{httpdigestcredential s.cpp} |
anonymous_namespace{ipaddressimpl.cpp} | no namespace | no namespace | anonymous_namespace{ipaddressimpl.cpp} |
no namespace | no namespace | ||
Poco.Crypto | 3 namespaces | no namespace | Poco.Crypto |
Poco.Crypto .anonymous_namespace{cipherfactory.cpp} | no namespace | no namespace | Poco.Crypto .anonymous_namespace{cipherfactory.cpp} |
Poco.Crypto .anonymous_namespace{cipherimpl.cpp} | 2 namespaces | no namespace | Poco.Crypto .anonymous_namespace{cipherimpl.cpp} |
Poco.Crypto .anonymous_namespace{rsacipherimpl.cpp} | 3 namespaces | no namespace | Poco.Crypto .anonymous_namespace{rsacipherimpl.cpp} |
Poco.Crypto.anonymous_namespace{rsakey .cpp} | no namespace | no namespace | Poco.Crypto.anonymous_namespace{rsakey .cpp} |
no namespace | no namespace | ||
Poco.Dynamic | 3 namespaces | no namespace | Poco.Dynamic |
Poco.Data | 2 namespaces | no namespace | Poco.Data |
Poco.Data.Keywords | 1 namespace | no namespace | Poco.Data.Keywords |
std | 1 namespace | no namespace | std |
1 namespace | no namespace | ||
Poco.XML | 3 namespaces | no namespace | Poco.XML |
Poco.XML .anonymous_namespace{domimplementation .cpp} | no namespace | no namespace | Poco.XML .anonymous_namespace{domimplementation .cpp} |
Poco.XML .anonymous_namespace{elementsbytagnameli st.cpp} | no namespace | no namespace | Poco.XML .anonymous_namespace{elementsbytagnameli st.cpp} |
Poco.XML .anonymous_namespace{parserengine.cpp} | 1 namespace | no namespace | Poco.XML .anonymous_namespace{parserengine.cpp} |
Poco.XML.anonymous_namespace{xmlwriter .cpp} | no namespace | no namespace | Poco.XML.anonymous_namespace{xmlwriter .cpp} |
anonymous_namespace{eventdispatcher.cpp} | no namespace | no namespace | anonymous_namespace{eventdispatcher.cpp} |
Statistics
Stat | concreteNamespacesUsed | abstractNamespacesUsed |
---|---|---|
Sum: | 94 | 0 |
Average: | 1.09 | 0 |
Minimum: | 0 | 0 |
Maximum: | 20 | 0 |
Standard deviation: | 2.24 | 0 |
Variance: | 5.01 | 0 |
![]() | Rule Violated: Constructors of abstract classes should be declared as protected or private |
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.
warnif count > 0
from t in Application.Types where
t.IsClass &&
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }
// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.
55 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
55 types | ctors | Full Name |
---|---|---|
DirectoryWatcherStrategy | 1 method | Poco.DirectoryWatcherStrategy |
Runnable | 2 methods | Poco.Runnable |
AbstractTimerCallback | 2 methods | Poco.AbstractTimerCallback |
DigestEngine | 1 method | Poco.DigestEngine |
ManifestBase | 2 methods | Poco.ManifestBase |
ArchiveStrategy | 1 method | Poco.ArchiveStrategy |
Channel | 1 method | Poco.Channel |
Configurable | 2 methods | Poco.Configurable |
Formatter | 2 methods | Poco.Formatter |
PurgeStrategy | 1 method | Poco.PurgeStrategy |
RotateStrategy | 1 method | Poco.RotateStrategy |
AbstractObserver | 2 methods | Poco.AbstractObserver |
TextEncoding | 2 methods | Poco.TextEncoding |
URIStreamFactory | 1 method | Poco.URIStreamFactory |
Task | 1 method | Poco.Task |
VarHolder | 1 method | Poco.Dynamic.VarHolder |
TestPlugin | 2 methods | TestPlugin |
TestPlugin | 2 methods | TestPlugin |
Handler | 2 methods | Poco.JSON.Handler |
Part | 2 methods | Poco.JSON.Part |
AbstractHTTPRequestHandler | 2 methods | Poco.Net.AbstractHTTPRequestHandler |
FTPPasswordProvider | 1 method | Poco.Net.FTPPasswordProvider |
HTTPRequestHandler | 1 method | Poco.Net.HTTPRequestHandler |
HTTPRequestHandlerFactory | 1 method | Poco.Net.HTTPRequestHandlerFactory |
HTTPServerRequest | 2 methods | Poco.Net.HTTPServerRequest |
HTTPServerResponse | 2 methods | Poco.Net.HTTPServerResponse |
ICMPPacketImpl | 2 methods | Poco.Net.ICMPPacketImpl |
CryptoTransform | 2 methods | Poco.Crypto.CryptoTransform |
AbstractBinder | 2 methods | Poco.Data.AbstractBinder |
AbstractBinding | 2 methods | Poco.Data.AbstractBinding |
AbstractExtraction | 2 methods | Poco.Data.AbstractExtraction |
AbstractExtractor | 2 methods | Poco.Data.AbstractExtractor |
AbstractPreparation | 1 method | Poco.Data.AbstractPreparation |
AbstractPreparator | 2 methods | Poco.Data.AbstractPreparator |
ArchiveStrategy | 1 method | Poco.Data.ArchiveStrategy |
Connector | 2 methods | Poco.Data.Connector |
SessionImpl | 1 method | Poco.Data.SessionImpl |
StatementImpl | 1 method | Poco.Data.StatementImpl |
DOMObject | 1 method | Poco.XML.DOMObject |
EventTarget | 1 method | Poco.XML.EventTarget |
Node | 2 methods | Poco.XML.Node |
AbstractNode | 1 method | Poco.XML.AbstractNode |
DocumentEvent | 1 method | Poco.XML.DocumentEvent |
NodeList | 2 methods | Poco.XML.NodeList |
Attributes | 2 methods | Poco.XML.Attributes |
NamedNodeMap | 2 methods | Poco.XML.NamedNodeMap |
ContentHandler | 2 methods | Poco.XML.ContentHandler |
EntityResolver | 2 methods | Poco.XML.EntityResolver |
DTDHandler | 2 methods | Poco.XML.DTDHandler |
ErrorHandler | 2 methods | Poco.XML.ErrorHandler |
LexicalHandler | 2 methods | Poco.XML.LexicalHandler |
XMLReader | 1 method | Poco.XML.XMLReader |
Locator | 2 methods | Poco.XML.Locator |
XMLFilter | 2 methods | Poco.XML.XMLFilter |
NamespaceStrategy | 2 methods | Poco.XML.NamespaceStrategy |
Statistics
Stat | ctors |
---|---|
Sum: | 89 |
Average: | 1.62 |
Minimum: | 1 |
Maximum: | 2 |
Standard deviation: | 0.49 |
Variance: | 0.24 |
![]() | Validated Rule: The class does not have a constructor. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="noConstructor"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
![]() | Validated Rule: Class has a constructor with 1 argument that is not explicit. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="noExplicitConstructor"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
![]() | Validated Rule: Value of pointer var, which points to allocated memory, is copied in copy constructor instead of allocating new memory. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="copyCtorPointerCopying"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
![]() | Validated Rule: class class does not have a copy constructor which is recommended since the class contains a pointer to allocated memory. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="noCopyConstructor"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt