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
812can 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 | |||
---|---|---|---|---|---|---|---|
| N/A because no coverage data | Project Rules \ Quality Gates | |||||
| N/A because no coverage data | Project Rules \ Quality Gates | |||||
| N/A because no coverage data | Project Rules \ Quality Gates | |||||
| 0 issues | 0 issues | Project Rules \ Quality Gates | ||||
| 4 issues | 4 issues | Project Rules \ Quality Gates | ||||
| 0 issues | Project Rules \ Quality Gates | |||||
| 3 rules | 3 rules | Project Rules \ Quality Gates | ||||
| 9.44 % | 9.44 % | Project Rules \ Quality Gates | ||||
| 0 man-days | Project Rules \ Quality Gates | |||||
| 2 namespaces | 2 namespaces | Project Rules \ Quality Gates | ||||
| 0 man-days | 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(),
Severity =Severity.Medium
}
No field matched
Validated Rule: Member variable is not initialized in the constructor. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="uninitMemberVar"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Member variable is not assigned a value in classname::operator=. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="operatorEqVarError"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Unused private function: classname::funcname |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="unusedPrivateFunction"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Medium
}
No field matched
Validated Rule: Using memfunc on class that contains a classname. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="memsetClass"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Using memfunc on class that contains a reference. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="memsetClassReference"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Using memset() on class which contains a floating point number. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="memsetClassFloat"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Memory for class instance allocated with malloc(), but class provides constructors. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="mallocOnClassWarning"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Memory for class instance allocated with malloc(), but class contains a std::string. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="mallocOnClassError"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: class::operator= should return class &. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="operatorEq"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Class Base which is inherited by class Derived does not have a virtual destructor. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="virtualDestructor"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Suspicious pointer subtraction. Did you intend to write ->? |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="thisSubtraction"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: operator= should return reference to this instance. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="operatorEqRetRefThis"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: No return statement in non-void function causes undefined behavior. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="operatorEqMissingReturnStatement"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: operator= should either return reference to this instance or be declared private and left unimplemented. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="operatorEqShouldBeLeftUnimplemented"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: operator= should check for assignment to self to avoid problems with dynamic memory. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="operatorEqToSelf"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Variable is assigned in constructor body. Consider performing initialization in initialization list. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="useInitializationList"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: Member variable is initialized by itself. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="selfInitialization"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
No field matched
Validated Rule: The class class defines member variable with name variable also defined in its parent class class. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="duplInheritedMember"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Low
}
No field matched
API Breaking Changes
Validated Rule: API Breaking Changes: Types |
// This rule warns if a publicly visible type is
// not publicly visible anymore or if it has been removed.
// Such type can break the code of your clients.
warnif count > 0 from t in codeBase.OlderVersion().Application.Types
where t.IsPublic &&
// The type has been removed and its parent project hasn't been removed ...
( (t.WasRemoved() && !t.ParentProject.WasRemoved()) ||
// ... or the type is not publicly visible anymore
!t.WasRemoved() && !t.NewerVersion().IsPublic)
select new { t,
NewVisibility = (t.WasRemoved() ? " " : t.NewerVersion().Visibility.ToString()) }
No type matched
Validated Rule: API Breaking Changes: Methods |
// This rule warns if a publicly visible method is
// not publicly visible anymore or if it has been removed.
// Such method can break the code of your clients.
warnif count > 0 from m in codeBase.OlderVersion().Application.Methods
where m.IsPublic &&
// The method has been removed and its parent type hasn't been removed ...
( (m.WasRemoved() && !m.ParentType.WasRemoved()) ||
// ... or the method is not publicly visible anymore
!m.WasRemoved() && !m.NewerVersion().IsPublic)
select new { m,
NewVisibility = (m.WasRemoved() ? " " : m.NewerVersion().Visibility.ToString()) }
No method matched
Validated Rule: API Breaking Changes: Fields |
// This rule warns if a publicly visible field is
// not publicly visible anymore or if it has been removed.
// Such field can break the code of your clients.
warnif count > 0 from f in codeBase.OlderVersion().Application.Fields
where f.IsPublic &&
// The field has been removed and its parent type hasn't been removed ...
( (f.WasRemoved() && !f.ParentType.WasRemoved()) ||
// ... or the field is not publicly visible anymore
!f.WasRemoved() && !f.NewerVersion().IsPublic)
select new { f,
NewVisibility = (f.WasRemoved() ? " " : f.NewerVersion().Visibility.ToString()) }
No field matched
Validated Rule: API Breaking Changes: Interfaces and Abstract Classes |
// This rule warns if a publicly visible interface or abstract class
// has been changed and contains new abstract methods or
// if some abstract methods have been removed.
// This can break the code of clients
// that implement such interface or derive from such abstract class.
warnif count > 0 from tNewer in Application.Types where
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) &&
tNewer.IsPublic &&
tNewer.IsPresentInBothBuilds()
let tOlder = tNewer.OlderVersion() where tOlder.IsPublic
let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())
where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { tNewer, methodsAdded, methodsRemoved }
No type matched
Validated Rule: Avoid transforming immutable types into mutable types |
// Immutability is a strong property on a type.
// Breaking immutability can result in serious problem for an algorithm consummer
// that has been written taking account of the type immutability.
// To visualize changes in code, right-click a matched type and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
warnif count > 0
from t in Application.Types where
t.IsPresentInBothBuilds() &&
!t.IsStatic &&
!t.IsImmutable &&
t.OlderVersion().IsImmutable
let mutableFields = from f in t.InstanceFields where !f.IsImmutable select f
select new { t, mutableFields }
No type matched
Code Diff Summary
Code Query: New Projects |
from a in Application.Projects where a.WasAdded()
select new { a, a.NbLinesOfCode }
No project matched
Code Query: Projects removed |
from a in codeBase.OlderVersion().Application.Projects where a.WasRemoved()
select new { a, a.NbLinesOfCode }
No project matched
Code Query: Projects where code was changed |
from a in Application.Projects where a.CodeWasChanged()
select new { a, a.NbLinesOfCode,
oldNbLinesOfCode = a.OlderVersion().NbLinesOfCode ,
delta = (int) a.NbLinesOfCode - a.OlderVersion().NbLinesOfCode }
No project matched
Code Query: New namespaces |
from n in Application.Namespaces where
!n.ParentProject.WasAdded() &&
n.WasAdded()
select new { n, n.NbLinesOfCode }
No namespace matched
Code Query: Namespaces removed |
from n in codeBase.OlderVersion().Application.Namespaces where
!n.ParentProject.WasRemoved() &&
n.WasRemoved()
select new { n, n.NbLinesOfCode }
No namespace matched
Code Query: Namespaces where code was changed |
from n in Application.Namespaces where n.CodeWasChanged()
select new { n, n.NbLinesOfCode,
oldNbLinesOfCode = n.OlderVersion().NbLinesOfCode ,
delta = (int) n.NbLinesOfCode - n.OlderVersion().NbLinesOfCode }
No namespace matched
Code Query: New types |
from t in Application.Types where
!t.ParentNamespace.WasAdded() &&
t.WasAdded()
select new { t, t.NbLinesOfCode }
No type matched
Code Query: Types removed |
from t in codeBase.OlderVersion().Application.Types where
!t.ParentNamespace.WasRemoved() &&
t.WasRemoved()
select new { t, t.NbLinesOfCode }
No type matched
Code Query: Types where code was changed |
// To visualize changes in code, right-click a matched type and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from t in Application.Types where t.CodeWasChanged()
//select new { t, t.NbLinesOfCode }
select new { t, t.NbLinesOfCode,
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
delta = (int?) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }
/*from t in Application.Types where t.CodeWasChanged() && t.IsPresentInBothBuild
select new { t, t.NbLinesOfCode,
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
delta = (int) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }*/
No type matched
Code Query: Heuristic to find types moved from one namespace or project to another |
let typesRemoved = codeBase.OlderVersion().Types.Where(t => t.WasRemoved())
let typesAdded = Types.Where(t => t.WasAdded())
from tMoved in typesAdded.Join(
typesRemoved,
t => t.Name,
t => t.Name,
(tNewer, tOlder) => new { tNewer,
OlderParentNamespace = tOlder.ParentNamespace,
OlderParentproject = tOlder.ParentProject } )
select tMoved
No type matched
Code Query: Types directly using one or several types changed |
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()
from t in JustMyCode.Types.UsingAny(typesChanged) where
!t.CodeWasChanged() &&
!t.WasAdded()
let typesChangedUsed = t.TypesUsed.Intersect(typesChanged)
select new { t, typesChangedUsed }
No type matched
Code Query: Types indirectly using one or several types changed |
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on types using
// directly or indirectly any type where code was changed.
let depth = JustMyCode.Types.DepthOfIsUsingAny(typesChanged)
from t in depth.DefinitionDomain where
!t.CodeWasChanged() &&
!t.WasAdded()
let typesChangedDirectlyUsed = t.TypesUsed.Intersect(typesChanged)
let depthOfUsingTypesChanged = depth[t]
orderby depthOfUsingTypesChanged
select new { t, depthOfUsingTypesChanged, typesChangedDirectlyUsed }
No type matched
Code Query: New methods |
from m in Application.Methods where
!m.ParentType.WasAdded() &&
m.WasAdded()
select new { m, m.NbLinesOfCode }
No method matched
Code Query: Methods removed |
from m in codeBase.OlderVersion().Application.Methods where
!m.ParentType.WasRemoved() &&
m.WasRemoved()
select new { m, m.NbLinesOfCode }
No method matched
Code Query: Methods where code was changed |
// To visualize changes in code, right-click a matched method and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from m in Application.Methods where m.CodeWasChanged()
select new { m, m.NbLinesOfCode,
oldNbLinesOfCode = m.OlderVersion().NbLinesOfCode ,
delta = (int?) m.NbLinesOfCode - m.OlderVersion().NbLinesOfCode }
No method matched
Code Query: Methods directly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
from m in JustMyCode.Methods.UsingAny(methodsChanged ) where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedCalled = m.MethodsCalled.Intersect(methodsChanged)
select new { m, methodsChangedCalled }
No method matched
Code Query: Methods indirectly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on methods using
// directly or indirectly any method where code was changed.
let depth = JustMyCode.Methods.DepthOfIsUsingAny(methodsChanged)
from m in depth.DefinitionDomain where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedDirectlyUsed = m.MethodsCalled.Intersect(methodsChanged)
let depthOfUsingMethodsChanged = depth[m]
orderby depthOfUsingMethodsChanged
select new { m, depthOfUsingMethodsChanged, methodsChangedDirectlyUsed }
No method matched
Code Query: New fields |
from f in Application.Fields where
!f.ParentType.WasAdded() &&
f.WasAdded()
select new { f }
No field matched
Code Query: Fields removed |
from f in codeBase.OlderVersion().Application.Fields where
!f.ParentType.WasRemoved() &&
f.WasRemoved()
select new { f }
No field matched
Code Query: Third party types that were not used and that are now used |
from t in ThirdParty.Types where t.IsUsedRecently()
select new { t, t.Methods, t.Fields }
No type matched
Code Query: Third party types that were used and that are not used anymore |
from t in codeBase.OlderVersion().Types where t.IsNotUsedAnymore()
select new { t, t.Methods, t.Fields }
No type matched
Code Query: Third party methods that were not used and that are now used |
from m in ThirdParty.Methods where
m.IsUsedRecently() &&
!m.ParentType.IsUsedRecently()
select m
No method matched
Code Query: Third party methods that were used and that are not used anymore |
from m in codeBase.OlderVersion().Methods where
m.IsNotUsedAnymore() &&
!m.ParentType.IsNotUsedAnymore()
select m
No method matched
Code Query: Third party fields that were not used and that are now used |
from f in ThirdParty.Fields where
f.IsUsedRecently() &&
!f.ParentType.IsUsedRecently()
select f
No field matched
Code Query: Third party fields that were used and that are not used anymore |
from f in codeBase.OlderVersion().Fields where
f.IsNotUsedAnymore() &&
!f.ParentType.IsNotUsedAnymore()
select f
No field matched
Code Coverage
Validated Rule: Code should be tested |
• How to Fix Issues: Write unit tests to test and cover the methods and their parent classes matched by this rule.
No method matched
Validated Rule: New Methods should be tested |
• How to Fix Issues: Write unit-tests to cover the code of most methods and classes added.
No method matched
Validated Rule: Methods refactored should be tested |
• How to Fix Issues: Write unit-tests to cover the code of most methods and classes refactored.
No method matched
Validated Rule: Types almost 100% tested should be 100% tested |
• How to Fix Issues: Write more unit-tests dedicated to cover code not covered yet. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring.
No type matched
Validated Rule: Namespaces almost 100% tested should be 100% tested |
• How to Fix Issues: Write more unit-tests dedicated to cover code not covered yet in the namespace. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring.
No namespace matched
Validated Rule: Types that used to be 100% covered by tests should still be 100% covered |
• How to Fix Issues: Write more unit-tests dedicated to cover code not covered anymore. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring. You'll find code impossible to cover by unit-tests, like calls to MessageBox.Show(). An infrastructure must be defined to be able to mock such code at test-time.
No method matched
Validated Rule: Types tagged with FullCoveredAttribute should be 100% covered |
• How to Fix Issues: Write more unit-tests dedicated to cover code of matched classes not covered yet. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring.
No method matched
Validated Rule: Types 100% covered should be tagged with FullCoveredAttribute |
• How to Fix Issues: Just tag types 100% covered by tests with the FullCoveredAttribute that can be found in NDepend.API.dll, or by an attribute of yours defined in your own code (in which case this rule must be adapted).
No type matched
Validated Rule: Methods should have a low C.R.A.P score |
• How to Fix Issues: In such situation, it is recommended to both refactor the complex method logic into several smaller and less complex methods (that might belong to some new types especially created), and also write unit-tests to full cover the refactored logic. You'll find code impossible to cover by unit-tests, like calls to MessageBox.Show(). An infrastructure must be defined to be able to mock such code at test-time.
No method matched
Dead Code
|
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: |
Hot Spots
Code Query: Types Hot Spots |
541 types matched
541 types | Debt | Issues | Annual Interest | Breaking Point | # lines of code (LOC) | DebtRating | DebtRatio | Full Name |
---|---|---|---|---|---|---|---|---|
VarTest | 8d 4h | 79 issues | 2d 2h | 1 356d | 2 184 | D | 21.3 | VarTest |
Logger | 8d 0h | 153 issues | 1d 3h | 2 050d | 295 | E | 100.03 | Poco.Logger |
PathTest | 2d 6h | 29 issues | 6h 13min | 1 300d | 1 270 | C | 11.8 | PathTest |
NamedTuplesTest | 2d 3h | 39 issues | 7h 20min | 982d | 1 045 | C | 12.79 | NamedTuplesTest |
StringTest | 2d 0h | 26 issues | 4h 45min | 1 282d | 776 | C | 14.31 | StringTest |
AbstractBinder | 1d 7h | 95 issues | 6h 14min | 934d | 152 | D | 44.7 | Poco.Data.AbstractBinder |
CoreTest | 1d 6h | 15 issues | 3h 38min | 1 449d | 805 | C | 12.08 | CoreTest |
AbstractPreparator | 1d 6h | 92 issues | 5h 41min | 915d | 73 | E | 57.39 | Poco.Data.AbstractPreparator |
AbstractExtractor | 1d 6h | 92 issues | 5h 38min | 910d | 67 | E | 59.85 | Poco.Data.AbstractExtractor |
XMLWriter | 1d 4h | 18 issues | 3h 24min | 1 340d | 581 | C | 12.68 | Poco.XML.XMLWriter |
StatementImpl | 1d 3h | 16 issues | 2h 59min | 1 356d | 317 | C | 19.06 | Poco.Data.StatementImpl |
Path | 1d 2h | 22 issues | 3h 3min | 1 299d | 527 | C | 12.37 | Poco.Path |
Windows1251Encoding | 1d 2h | 3 issues | 1h 15min | 3 088d | 472 | C | 15.28 | Poco.Windows1251Encoding |
URITest | 1d 2h | 14 issues | 2h 56min | 1 308d | 643 | C | 11.04 | URITest |
ParserEngine | 1d 2h | 12 issues | 2h 14min | 1 698d | 445 | C | 13.49 | Poco.XML.ParserEngine |
DateTimeTest | 1d 2h | 14 issues | 2h 21min | 1 598d | 438 | C | 15.47 | DateTimeTest |
Parser | 1d 1h | 13 issues | 1h 36min | 2 153d | 437 | C | 13.3 | Poco.JSON.Parser |
Windows1250Encoding | 1d 1h | 3 issues | 1h 5min | 3 156d | 312 | D | 20.06 | Poco.Windows1250Encoding |
NetworkInterface | 1d 1h | 16 issues | 1h 26min | 2 363d | 210 | D | 24.75 | Poco.Net.NetworkInterface |
DateTime | 1d 1h | 17 issues | 1h 39min | 2 022d | 246 | D | 20.69 | Poco.DateTime |
DateTimeParserTest | 1d 1h | 18 issues | 3h 49min | 868d | 599 | C | 10.19 | DateTimeParserTest |
StringTokenizerTest | 1d 0h | 6 issues | 2h 10min | 1 470d | 300 | C | 19.65 | StringTokenizerTest |
SHA1Engine | 1d 0h | 6 issues | 1h 21min | 2 266d | 573 | C | 10.03 | Poco.SHA1Engine |
NumberFormatter | 7h 34min | 77 issues | 3h 14min | 853d | 264 | C | 15.37 | Poco.NumberFormatter |
Latin2Encoding | 7h 29min | 3 issues | 1h 1min | 2 684d | 247 | C | 19.92 | Poco.Latin2Encoding |
SocketImpl | 7h 28min | 8 issues | 1h 51min | 1 474d | 409 | C | 10.67 | Poco.Net.SocketImpl |
ByteOrderTest | 7h 23min | 10 issues | 1h 42min | 1 576d | 192 | D | 25.18 | ByteOrderTest |
Var | 7h 19min | 7 issues | 1h 40min | 1 593d | 377 | C | 10.75 | Poco.Dynamic.Var |
LocalDateTime | 7h 17min | 15 issues | 1h 5min | 2 448d | 105 | D | 31.85 | Poco.LocalDateTime |
URI | 6h 44min | 21 issues | 2h 40min | 918d | 481 | B | 8.35 | Poco.URI |
GlobTest | 6h 41min | 12 issues | 2h 6min | 1 161d | 375 | C | 11.83 | GlobTest |
AbstractContainerNode | 6h 13min | 16 issues | 2h 26min | 929d | 305 | C | 13.01 | Poco.XML.AbstractContainerNode |
VarHolder | 5h 38min | 26 issues | 1h 41min | 1 214d | 86 | D | 29.42 | Poco.Dynamic.VarHolder |
AbstractNode | 5h 34min | 6 issues | 1h 27min | 1 393d | 93 | D | 25.99 | Poco.XML.AbstractNode |
Socket | 5h 14min | 4 issues | 55min | 2 068d | 130 | C | 19.46 | Poco.Net.Socket |
FTPClientSession | 5h 6min | 9 issues | 52min | 2 122d | 331 | B | 8.99 | Poco.Net.FTPClientSession |
TuplesTest | 5h 5min | 10 issues | 1h 48min | 1 025d | 340 | B | 9.53 | TuplesTest |
MailMessage | 5h 0min | 8 issues | 53min | 2 059d | 258 | C | 10.77 | Poco.Net.MailMessage |
FileTest | 4h 49min | 12 issues | 1h 32min | 1 146d | 282 | C | 11.01 | FileTest |
XML_ParserStruct | 4h 38min | 1 issue | 49min | 2 042d | 0 | D | 34.71 | XML_ParserStruct |
TypeListTest | 4h 20min | 3 issues | 1h 2min | 1 531d | 177 | C | 16.19 | TypeListTest |
MD5Engine | 4h 15min | 7 issues | 34min | 2 722d | 313 | B | 9.03 | Poco.MD5Engine |
RemoteSyslogChannel | 4h 2min | 8 issues | 54min | 1 628d | 209 | C | 11.8 | Poco.Net.RemoteSyslogChannel |
RecordSet | 4h 0min | 14 issues | 52min | 1 685d | 254 | B | 8.72 | Poco.Data.RecordSet |
IPAddress | 3h 51min | 13 issues | 43min | 1 921d | 204 | C | 10.02 | Poco.Net.IPAddress |
PriorityEventTest | 3h 46min | 7 issues | 49min | 1 675d | 276 | B | 8.23 | PriorityEventTest |
UUID | 3h 45min | 11 issues | 42min | 1 931d | 201 | C | 10.8 | Poco.UUID |
DateTimeParser | 3h 37min | 4 issues | 55min | 1 429d | 234 | C | 10.3 | Poco.DateTimeParser |
WebSocketImpl | 3h 37min | 7 issues | 43min | 1 831d | 148 | C | 13.52 | Poco.Net.WebSocketImpl |
FileImpl | 3h 33min | 4 issues | 32min | 2 420d | 231 | B | 9.33 | Poco.FileImpl |
Statement | 3h 30min | 1 issue | 34min | 2 203d | 197 | B | 8.68 | Poco.Data.Statement |
ProcessImpl | 3h 28min | 4 issues | 30min | 2 489d | 133 | C | 16.85 | Poco.ProcessImpl |
PatternFormatter | 3h 28min | 7 issues | 56min | 1 336d | 190 | C | 11.69 | Poco.PatternFormatter |
FileChannel | 3h 26min | 11 issues | 43min | 1 749d | 228 | B | 8.64 | Poco.FileChannel |
BasicEventTest | 3h 26min | 7 issues | 42min | 1 764d | 227 | B | 8.89 | BasicEventTest |
HTMLForm | 3h 26min | 15 issues | 1h 11min | 1 048d | 213 | B | 9.46 | Poco.Net.HTMLForm |
Template | 3h 19min | 3 issues | 37min | 1 943d | 173 | C | 11.81 | Poco.JSON.Template |
Node | 3h 18min | 4 issues | 56min | 1 293d | 1 | E | 67.7 | Poco.XML.Node |
FIFOEventTest | 3h 14min | 8 issues | 44min | 1 584d | 225 | B | 8.54 | FIFOEventTest |
NetworkInterfaceImpl | 3h 11min | 4 issues | 22min | 3 104d | 136 | C | 11.37 | Poco.Net.NetworkInterfaceImpl |
SessionImpl | 3h 11min | 7 issues | 34min | 2 007d | 12 | D | 43.45 | Poco.Data.SessionImpl |
HTTPResponse | 3h 11min | 15 issues | 59min | 1 173d | 159 | B | 9.76 | Poco.Net.HTTPResponse |
MemoryStreamTest | 3h 10min | 7 issues | 1h 11min | 970d | 269 | B | 7.76 | MemoryStreamTest |
Windows1252Encoding | 3h 9min | 2 issues | 43min | 1 574d | 128 | C | 15.45 | Poco.Windows1252Encoding |
FileChannelTest | 3h 9min | 22 issues | 1h 29min | 770d | 353 | B | 5.75 | FileChannelTest |
TextConverterTest | 3h 9min | 5 issues | 45min | 1 503d | 210 | B | 9.6 | TextConverterTest |
FormatTest | 3h 8min | 5 issues | 44min | 1 536d | 237 | B | 8.61 | FormatTest |
internal_state | 3h 8min | 1 issue | 30min | 2 287d | 0 | D | 36.35 | internal_state |
StreamCopierTest | 2h 52min | 4 issues | 54min | 1 163d | 104 | C | 16.93 | StreamCopierTest |
HTTPClientSession | 2h 48min | 12 issues | 41min | 1 478d | 195 | B | 7.85 | Poco.Net.HTTPClientSession |
OAuth10Credentials | 2h 46min | 9 issues | 58min | 1 036d | 173 | B | 9.11 | Poco.Net.OAuth10Credentials |
SMTPClientSession | 2h 44min | 8 issues | 57min | 1 040d | 220 | B | 7.39 | Poco.Net.SMTPClientSession |
IPAddressImpl | 2h 41min | 4 issues | 26min | 2 189d | 0 | E | 66.83 | Poco.Net.Impl.IPAddressImpl |
MutationEvent | 2h 36min | 3 issues | 18min | 3 118d | 20 | D | 40.22 | Poco.XML.MutationEvent |
MD4Engine | 2h 35min | 7 issues | 14min | 3 943d | 201 | B | 8.34 | Poco.MD4Engine |
LocalDateTimeTest | 2h 33min | 4 issues | 39min | 1 415d | 277 | B | 6.01 | LocalDateTimeTest |
RowFilter | 2h 33min | 9 issues | 26min | 2 129d | 135 | C | 10.2 | Poco.Data.RowFilter |
AbstractExtraction | 2h 31min | 3 issues | 24min | 2 269d | 26 | D | 29.67 | Poco.Data.AbstractExtraction |
NumberParserTest | 2h 30min | 4 issues | 46min | 1 190d | 197 | B | 8.24 | NumberParserTest |
match_data | 2h 30min | 1 issue | 21min | 2 522d | 0 | D | 37.06 | match_data |
DateTimeFormatter | 2h 29min | 4 issues | 39min | 1 375d | 172 | B | 9.33 | Poco.DateTimeFormatter |
TimedNotificationQueueTest | 2h 23min | 7 issues | 55min | 944d | 160 | B | 9.68 | TimedNotificationQueueTest |
IPv6AddressImpl | 2h 22min | 3 issues | 26min | 1 958d | 163 | B | 8.14 | Poco.Net.Impl.IPv6AddressImpl |
NumberFormatterTest | 2h 17min | 7 issues | 1h 10min | 714d | 185 | B | 8 | NumberFormatterTest |
HTTPCookie | 2h 17min | 4 issues | 34min | 1 472d | 148 | B | 8.41 | Poco.Net.HTTPCookie |
MessageHeader | 2h 15min | 4 issues | 28min | 1 750d | 160 | B | 8.97 | Poco.Net.MessageHeader |
Timespan | 2h 14min | 5 issues | 21min | 2 243d | 50 | C | 15.51 | Poco.Timespan |
HexBinaryTest | 2h 11min | 5 issues | 59min | 805d | 114 | C | 12.2 | HexBinaryTest |
XMLFilterImpl | 2h 9min | 3 issues | 16min | 2 861d | 90 | C | 10.74 | Poco.XML.XMLFilterImpl |
Base32EncoderBuf | 2h 8min | 7 issues | 48min | 972d | 138 | B | 9.89 | Poco.Base32EncoderBuf |
HTTPRequest | 2h 8min | 6 issues | 22min | 2 035d | 111 | B | 9.62 | Poco.Net.HTTPRequest |
File | 2h 3min | 1 issue | 15min | 2 847d | 104 | B | 9.43 | Poco.File |
compile_data | 2h 1min | 1 issue | 15min | 2 875d | 0 | D | 37.94 | compile_data |
SQLChannel | 2h 0min | 6 issues | 21min | 2 031d | 135 | B | 7.81 | Poco.Data.SQLChannel |
Document | 2h 0min | 6 issues | 14min | 3 023d | 83 | C | 10.6 | Poco.XML.Document |
AttributesImpl | 1h 57min | 1 issue | 14min | 2 954d | 147 | B | 7.05 | Poco.XML.AttributesImpl |
VarHolderImpl<longlong> | 1h 56min | 21 issues | 39min | 1 078d | 29 | D | 21.65 | Poco.Dynamic.VarHolderImpl<longlong> |
VarHolderImpl<unsignedlonglong> | 1h 56min | 21 issues | 39min | 1 078d | 35 | C | 19.74 | Poco.Dynamic.VarHolderImpl <unsignedlonglong> |
VarHolderImpl<std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>> | 1h 55min | 22 issues | 40min | 1 034d | 59 | C | 14.47 | Poco.Dynamic.VarHolderImpl <std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>> |
VarHolderImpl<std::basic_string<char ,std::char_traits<char>,std::allocator <char>>> | 1h 52min | 22 issues | 39min | 1 023d | 53 | C | 15.25 | Poco.Dynamic.VarHolderImpl <std::basic_string<char,std::char_traits <char>,std::allocator<char>>> |
Statistics
Stat | Debt | Issues | Annual Interest | Breaking Point | # lines of code (LOC) | DebtRating | DebtRatio |
---|---|---|---|---|---|---|---|
Sum: | 102d | 2 741 | 30d | 584 411d | 40 534 | - | 4 388 |
Average: | 1h 30min | 5.07 | 27min | 1 080d | 98.38 | - | 8.11 |
Minimum: | 2min 0s | 1 | 2min 0s | 47d | 0 | - | 0.14 |
Maximum: | 8d 4h | 153 | 2d 2h | 8 706d | 2 184 | - | 100.03 |
Standard deviation: | 4h 47min | 11.48 | 1h 12min | 1 414d | 173.33 | - | 9.64 |
Variance: | 10 341d | 131.69 | 659d | overflow | 30 045 | - | 92.96 |
Code Query: Types to Fix Priority |
211 types matched
211 types | Breaking Point | Debt | Annual Interest | Issues | # lines of code (LOC) | DebtRating | DebtRatio | Full Name |
---|---|---|---|---|---|---|---|---|
ServerSocket | 252d | 36min | 52min | 8 issues | 25 | B | 9.92 | Poco.Net.ServerSocket |
TaskManagerTest | 305d | 55min | 1h 6min | 6 issues | 184 | A | 3.23 | TaskManagerTest |
Base32Test | 357d | 49min | 50min | 4 issues | 95 | B | 5.35 | Base32Test |
ThreadTest | 364d | 49min | 50min | 4 issues | 197 | A | 2.64 | ThreadTest |
SAXParseException | 425d | 1h 3min | 54min | 10 issues | 46 | C | 10.72 | Poco.XML.SAXParseException |
BinaryReaderWriterTest | 452d | 1h 4min | 52min | 4 issues | 167 | A | 4.12 | BinaryReaderWriterTest |
Glob | 475d | 1h 7min | 51min | 7 issues | 143 | A | 4.84 | Poco.Glob |
TimespanTest | 493d | 46min | 34min | 3 issues | 86 | B | 5.43 | TimespanTest |
LinearHashTableTest | 498d | 1h 32min | 1h 8min | 6 issues | 165 | B | 6.01 | LinearHashTableTest |
PriorityNotificationQueueTest | 500d | 46min | 34min | 3 issues | 105 | A | 4.46 | PriorityNotificationQueueTest |
Base64Test | 506d | 47min | 34min | 3 issues | 92 | B | 5.3 | Base64Test |
FIFOBufferStreamTest | 526d | 49min | 34min | 3 issues | 111 | A | 4.43 | FIFOBufferStreamTest |
WindowsColorConsoleChannel | 559d | 57min | 37min | 5 issues | 149 | A | 4.04 | Poco.WindowsColorConsoleChannel |
LoggerTest | 579d | 1h 29min | 56min | 4 issues | 186 | B | 5.23 | LoggerTest |
UTF8Encoding | 634d | 1h 6min | 38min | 3 issues | 120 | B | 5.67 | Poco.UTF8Encoding |
TextIteratorTest | 680d | 45min | 24min | 3 issues | 149 | A | 3.15 | TextIteratorTest |
NumberFormatterTest | 714d | 2h 17min | 1h 10min | 7 issues | 185 | B | 8 | NumberFormatterTest |
StreamConverterTest | 753d | 1h 28min | 43min | 3 issues | 175 | B | 5.33 | StreamConverterTest |
RegularExpression | 760d | 1h 6min | 31min | 11 issues | 149 | A | 4.43 | Poco.RegularExpression |
FileChannelTest | 770d | 3h 9min | 1h 29min | 22 issues | 353 | B | 5.75 | FileChannelTest |
HexBinaryTest | 805d | 2h 11min | 59min | 5 issues | 114 | C | 12.2 | HexBinaryTest |
NumberFormatter | 853d | 7h 34min | 3h 14min | 77 issues | 264 | C | 15.37 | Poco.NumberFormatter |
DateTimeParserTest | 868d | 1d 1h | 3h 49min | 18 issues | 599 | C | 10.19 | DateTimeParserTest |
TimestampTest | 886d | 43min | 18min | 2 issues | 40 | C | 10.32 | TimestampTest |
TextEncodingTest | 886d | 43min | 18min | 2 issues | 40 | C | 10.32 | TextEncodingTest |
WindowsDirectoryWatcherStrategy | 888d | 43min | 18min | 2 issues | 44 | B | 9.56 | Poco.WindowsDirectoryWatcherStrategy |
Base64DecoderBuf | 889d | 53min | 22min | 8 issues | 51 | B | 9.69 | Poco.Base64DecoderBuf |
ObjectPoolTest | 896d | 44min | 18min | 2 issues | 45 | B | 9.47 | ObjectPoolTest |
ManifestTest | 900d | 44min | 18min | 2 issues | 47 | B | 9.18 | ManifestTest |
AbstractExtractor | 910d | 1d 6h | 5h 38min | 92 issues | 67 | E | 59.85 | Poco.Data.AbstractExtractor |
PatternFormatterTest | 910d | 44min | 18min | 2 issues | 52 | B | 8.52 | PatternFormatterTest |
AutoPtrTest | 912d | 45min | 18min | 2 issues | 69 | B | 6.59 | AutoPtrTest |
AbstractPreparator | 915d | 1d 6h | 5h 41min | 92 issues | 73 | E | 57.39 | Poco.Data.AbstractPreparator |
URI | 918d | 6h 44min | 2h 40min | 21 issues | 481 | B | 8.35 | Poco.URI |
AbstractContainerNode | 929d | 6h 13min | 2h 26min | 16 issues | 305 | C | 13.01 | Poco.XML.AbstractContainerNode |
AbstractBinder | 934d | 1d 7h | 6h 14min | 95 issues | 152 | D | 44.7 | Poco.Data.AbstractBinder |
SharedPtrTest | 939d | 46min | 18min | 2 issues | 82 | B | 5.84 | SharedPtrTest |
ColorConsoleChannel | 943d | 1h 45min | 40min | 6 issues | 139 | B | 7.85 | Poco.ColorConsoleChannel |
TimedNotificationQueueTest | 944d | 2h 23min | 55min | 7 issues | 160 | B | 9.68 | TimedNotificationQueueTest |
NodeIterator | 955d | 50min | 19min | 3 issues | 106 | A | 4.53 | Poco.XML.NodeIterator |
Handler | 958d | 1h 9min | 26min | 9 issues | 2 | D | 35 | Poco.JSON.Handler |
EnvironmentImpl | 963d | 51min | 19min | 2 issues | 129 | A | 4.27 | Poco.EnvironmentImpl |
MemoryStreamTest | 970d | 3h 10min | 1h 11min | 7 issues | 269 | B | 7.76 | MemoryStreamTest |
Base32EncoderBuf | 972d | 2h 8min | 48min | 7 issues | 138 | B | 9.89 | Poco.Base32EncoderBuf |
TreeWalker | 979d | 52min | 19min | 3 issues | 141 | A | 3.62 | Poco.XML.TreeWalker |
NamedTuplesTest | 982d | 2d 3h | 7h 20min | 39 issues | 1 045 | C | 12.79 | NamedTuplesTest |
SMTPChannel | 985d | 43min | 16min | 4 issues | 90 | A | 4.23 | Poco.Net.SMTPChannel |
ClassLoaderTest | 1 014d | 47min | 17min | 3 issues | 95 | B | 5.23 | ClassLoaderTest |
VarHolderImpl<std::basic_string<char ,std::char_traits<char>,std::allocator <char>>> | 1 023d | 1h 52min | 39min | 22 issues | 53 | C | 15.25 | Poco.Dynamic.VarHolderImpl <std::basic_string<char,std::char_traits <char>,std::allocator<char>>> |
TuplesTest | 1 025d | 5h 5min | 1h 48min | 10 issues | 340 | B | 9.53 | TuplesTest |
SocketReactor | 1 033d | 48min | 17min | 4 issues | 116 | A | 3.81 | Poco.Net.SocketReactor |
VarHolderImpl<std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>> | 1 034d | 1h 55min | 40min | 22 issues | 59 | C | 14.47 | Poco.Dynamic.VarHolderImpl <std::basic_string<wchar_t ,std::char_traits<wchar_t> ,std::allocator<wchar_t>>> |
UniqueExpireCacheTest | 1 034d | 42min | 14min | 2 issues | 126 | A | 3.4 | UniqueExpireCacheTest |
OAuth10Credentials | 1 036d | 2h 46min | 58min | 9 issues | 173 | B | 9.11 | Poco.Net.OAuth10Credentials |
SMTPClientSession | 1 040d | 2h 44min | 57min | 8 issues | 220 | B | 7.39 | Poco.Net.SMTPClientSession |
VarHolderImpl<Poco::SharedPtr <Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> > | 1 047d | 1h 47min | 37min | 19 issues | 27 | D | 21.73 | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Array ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Array>> > |
VarHolderImpl<Poco::JSON::Array> | 1 047d | 1h 47min | 37min | 19 issues | 27 | D | 21.73 | Poco.Dynamic.VarHolderImpl <Poco::JSON::Array> |
VarHolderImpl<Poco::SharedPtr <Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >> | 1 047d | 1h 47min | 37min | 19 issues | 27 | D | 21.73 | Poco.Dynamic.VarHolderImpl <Poco::SharedPtr<Poco::JSON::Object ,Poco::ReferenceCounter ,Poco::ReleasePolicy<Poco::JSON::Object> >> |
VarHolderImpl<Poco::JSON::Object> | 1 047d | 1h 47min | 37min | 19 issues | 27 | D | 21.73 | Poco.Dynamic.VarHolderImpl <Poco::JSON::Object> |
HTMLForm | 1 048d | 3h 26min | 1h 11min | 15 issues | 213 | B | 9.46 | Poco.Net.HTMLForm |
HTTPServerConnection | 1 068d | 52min | 17min | 5 issues | 63 | B | 8.03 | Poco.Net.HTTPServerConnection |
VarHolderImpl<longlong> | 1 078d | 1h 56min | 39min | 21 issues | 29 | D | 21.65 | Poco.Dynamic.VarHolderImpl<longlong> |
VarHolderImpl<unsignedlonglong> | 1 078d | 1h 56min | 39min | 21 issues | 35 | C | 19.74 | Poco.Dynamic.VarHolderImpl <unsignedlonglong> |
TemplateCache | 1 090d | 49min | 16min | 3 issues | 57 | B | 7.99 | Poco.JSON.TemplateCache |
ProcessTest | 1 106d | 43min | 14min | 2 issues | 121 | A | 3.72 | ProcessTest |
Latin9Encoding | 1 109d | 1h 8min | 22min | 2 issues | 52 | C | 12.1 | Poco.Latin9Encoding |
VarHolderImpl<short> | 1 129d | 1h 43min | 33min | 19 issues | 27 | D | 20.91 | Poco.Dynamic.VarHolderImpl<short> |
VarHolderImpl<signedchar> | 1 140d | 1h 46min | 33min | 20 issues | 26 | D | 21.52 | Poco.Dynamic.VarHolderImpl<signedchar> |
FileTest | 1 146d | 4h 49min | 1h 32min | 12 issues | 282 | C | 11.01 | FileTest |
ThreadPoolTest | 1 151d | 56min | 17min | 3 issues | 81 | B | 6.93 | ThreadPoolTest |
GlobTest | 1 161d | 6h 41min | 2h 6min | 12 issues | 375 | C | 11.83 | GlobTest |
StreamCopierTest | 1 163d | 2h 52min | 54min | 4 issues | 104 | C | 16.93 | StreamCopierTest |
HTTPResponse | 1 173d | 3h 11min | 59min | 15 issues | 159 | B | 9.76 | Poco.Net.HTTPResponse |
VarHolderImpl<int> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<int> |
VarHolderImpl<unsignedchar> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<unsignedchar> |
VarHolderImpl<unsignedshort> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<unsignedshort > |
VarHolderImpl<unsignedint> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<unsignedint> |
VarHolderImpl<bool> | 1 178d | 1h 41min | 31min | 19 issues | 24 | D | 21.65 | Poco.Dynamic.VarHolderImpl<bool> |
VarHolderImpl<float> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<float> |
VarHolderImpl<double> | 1 178d | 1h 41min | 31min | 18 issues | 32 | C | 18.85 | Poco.Dynamic.VarHolderImpl<double> |
VarHolderImpl<char> | 1 178d | 1h 41min | 31min | 19 issues | 24 | D | 21.65 | Poco.Dynamic.VarHolderImpl<char> |
VarHolderImpl<long> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<long> |
VarHolderImpl<unsignedlong> | 1 178d | 1h 41min | 31min | 18 issues | 26 | D | 20.87 | Poco.Dynamic.VarHolderImpl<unsignedlong> |
NumberParserTest | 1 190d | 2h 30min | 46min | 4 issues | 197 | B | 8.24 | NumberParserTest |
UnicodeConverter | 1 191d | 1h 27min | 26min | 13 issues | 71 | C | 10.83 | Poco.UnicodeConverter |
VarHolder | 1 214d | 5h 38min | 1h 41min | 26 issues | 86 | D | 29.42 | Poco.Dynamic.VarHolder |
Base32DecoderBuf | 1 274d | 1h 24min | 24min | 8 issues | 78 | C | 10.78 | Poco.Base32DecoderBuf |
MultiPartHandler | 1 276d | 45min | 13min | 2 issues | 48 | B | 9.44 | Poco.Net.anonymous_namespace{mailmessage .cpp}.MultiPartHandler |
StringTest | 1 282d | 2d 0h | 4h 45min | 26 issues | 776 | C | 14.31 | StringTest |
ThreadPool | 1 289d | 1h 5min | 18min | 6 issues | 117 | B | 5.05 | Poco.ThreadPool |
Node | 1 293d | 3h 18min | 56min | 4 issues | 1 | E | 67.7 | Poco.XML.Node |
DOMBuilder | 1 293d | 1h 39min | 27min | 26 issues | 106 | B | 7.96 | Poco.XML.DOMBuilder |
Path | 1 299d | 1d 2h | 3h 3min | 22 issues | 527 | C | 12.37 | Poco.Path |
PathTest | 1 300d | 2d 6h | 6h 13min | 29 issues | 1 270 | C | 11.8 | PathTest |
URITest | 1 308d | 1d 2h | 2h 56min | 14 issues | 643 | C | 11.04 | URITest |
HTTPAuthenticationParams | 1 328d | 1h 23min | 23min | 2 issues | 108 | B | 7.69 | Poco.Net.HTTPAuthenticationParams |
PatternFormatter | 1 336d | 3h 28min | 56min | 7 issues | 190 | C | 11.69 | Poco.PatternFormatter |
XMLWriter | 1 340d | 1d 4h | 3h 24min | 18 issues | 581 | C | 12.68 | Poco.XML.XMLWriter |
StatementImpl | 1 356d | 1d 3h | 2h 59min | 16 issues | 317 | C | 19.06 | Poco.Data.StatementImpl |
VarTest | 1 356d | 8d 4h | 2d 2h | 79 issues | 2 184 | D | 21.3 | VarTest |
Statistics
Stat | Breaking Point | Debt | Annual Interest | Issues | # lines of code (LOC) | DebtRating | DebtRatio |
---|---|---|---|---|---|---|---|
Sum: | 434 208d | 99d | 26d | 2 149 | 34 625 | - | 3 017 |
Average: | 2 057d | 3h 46min | 59min | 10.18 | 164.1 | - | 14.3 |
Minimum: | 252d | 33min | 2min 0s | 1 | 0 | - | 2.64 |
Maximum: | 8 706d | 8d 4h | 2d 2h | 153 | 2 184 | - | 100.03 |
Standard deviation: | 1 817d | 7h 6min | 1h 48min | 17.03 | 219.76 | - | 12.56 |
Variance: | overflow | 22 730d | 1 463d | 289.96 | 48 293 | - | 157.67 |
Code Query: Issues to Fix Priority |
3,567 issues matched
3 567 issues | Debt | Annual Interest | Breaking Point | CodeElement | Full Name |
---|---|---|---|---|---|
Medium issue on: __Globals.MultiplyByUInt64(uint64_t) | 2min 6s | 16min | 47d | MultiplyByUInt64(uint64_t) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.SubtractTimes (constdouble_conversion::Bignum&,int) | 2min 6s | 16min | 47d | SubtractTimes(constdouble_conversion::Bignum&,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.DeflatingStreamBuf .writeToDevice(constchar* ,std::streamsize) | 2min 6s | 16min | 47d | writeToDevice(constchar*,std::streamsize) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.RWLockImpl.writeLockImpl() | 2min 6s | 16min | 47d | writeLockImpl() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: double_conversion .__Globals.CompareBufferWithDiyFp(Vector <constchar>,int,double_conversion::DiyFp ) | 2min 6s | 16min | 47d | CompareBufferWithDiyFp(Vector<constchar>,int,double_conversion::DiyFp) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: DirectoryWatcherTest.testModified() | 2min 6s | 16min | 47d | testModified() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: DynamicFactoryTest.testDynamicFactory() | 2min 6s | 16min | 47d | testDynamicFactory() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: VarTest.testContainerIterator<C>() | 2min 6s | 16min | 47d | testContainerIterator<C>() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: NotificationQueueTest.testThreads() | 2min 6s | 16min | 47d | testThreads() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: PriorityNotificationQueueTest .testThreads() | 2min 6s | 16min | 47d | testThreads() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: FileChannelTest .purgeCount(conststd::string&) | 2min 6s | 16min | 47d | purgeCount(conststd::string&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: FileChannelTest .noPurgeCount(conststd::string&) | 2min 6s | 16min | 47d | noPurgeCount(conststd::string&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: TextBufferIteratorTest.testLatin1() | 2min 6s | 16min | 47d | testLatin1() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: TextIteratorTest.testLatin1() | 2min 6s | 16min | 47d | testLatin1() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: HashTableTest.testInsert() | 2min 6s | 16min | 47d | testInsert() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: SimpleHashTableTest.testInsert() | 2min 6s | 16min | 47d | testInsert() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Net .SMTPClientSession.loginUsingCRAM (conststd::string&,conststd::string& ,Poco::DigestEngine&) | 2min 6s | 16min | 47d | loginUsingCRAM(conststd::string&,conststd::string&,Poco::DigestEngine&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.XML .AbstractContainerNode.getNodeByPath (constXMLString&) | 2min 6s | 16min | 47d | getNodeByPath(constXMLString&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.XML.XMLWriter .addAttributes(CanonicalAttributeMap& ,constPoco::XML::Attributes& ,constXMLString&) | 2min 6s | 16min | 47d | addAttributes(CanonicalAttributeMap&,constPoco::XML::Attributes&,constXMLString&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.SubtractBignum (constdouble_conversion::Bignum&) | 2min 12s | 16min | 50d | SubtractBignum(constdouble_conversion::Bignum&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals .pcre_get_substring_list(constchar*,int* ,int,constchar***) | 2min 12s | 16min | 50d | pcre_get_substring_list(constchar*,int*,int,constchar***) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.DeflatingStreamBuf .DeflatingStreamBuf(std::istream& ,Poco::DeflatingStreamBuf::StreamType ,int) | 2min 12s | 16min | 50d | DeflatingStreamBuf(std::istream&,Poco::DeflatingStreamBuf::StreamType,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.DeflatingStreamBuf.sync() | 2min 12s | 16min | 50d | sync() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.UTF16Encoding .convert(int,unsignedchar*,int) | 2min 12s | 16min | 50d | convert(int,unsignedchar*,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.UTF8.icompare(conststd::string& ,std::string::size_type ,std::string::size_type ,std::string::const_iterator ,std::string::const_iterator) | 2min 12s | 16min | 50d | icompare(conststd::string&,std::string::size_type,std::string::size_type,std::string::const_iterator,std::string::const_iterator) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: MemoryPoolTest.testMemoryPool() | 2min 12s | 16min | 50d | testMemoryPool() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: NamedTuplesTest.suite() | 2min 12s | 16min | 50d | suite() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: RWTryLockRunnable.run() | 2min 12s | 16min | 50d | run() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: ThreadTest.testThreadStackSize() | 2min 12s | 16min | 50d | testThreadStackSize() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: SharedLibraryTest.testSharedLibrary1() | 2min 12s | 16min | 50d | testSharedLibrary1() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: LoggerTest.testDump() | 2min 12s | 16min | 50d | testDump() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: LoggingRegistryTest.testRegister() | 2min 12s | 16min | 50d | testRegister() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: LoggingRegistryTest.testReregister() | 2min 12s | 16min | 50d | testReregister() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: FileTest.testFileAttributes2() | 2min 12s | 16min | 50d | testFileAttributes2() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: DateTimeTest.testGregorian() | 2min 12s | 16min | 50d | testGregorian() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.XML.XMLWriter .unparsedEntityDecl(constXMLString& ,constXMLString*,constXMLString& ,constXMLString&) | 2min 12s | 16min | 50d | unparsedEntityDecl(constXMLString&,constXMLString*,constXMLString&,constXMLString&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.AddBignum (constdouble_conversion::Bignum&) | 2min 18s | 16min | 52d | AddBignum(constdouble_conversion::Bignum&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.InflatingStreamBuf .InflatingStreamBuf(std::istream& ,Poco::InflatingStreamBuf::StreamType) | 2min 18s | 16min | 52d | InflatingStreamBuf(std::istream&,Poco::InflatingStreamBuf::StreamType) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.EventLogChannel.setUpRegistry() | 2min 18s | 16min | 52d | setUpRegistry() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Glob.collect (constPoco::Path&,constPoco::Path& ,constPoco::Path&,conststd::string& ,std::set<std::string>&,int) | 2min 18s | 16min | 52d | collect(constPoco::Path&,constPoco::Path&,constPoco::Path&,conststd::string&,std::set<std::string>&,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.UTF8Encoding .queryConvert(constunsignedchar*,int) | 2min 18s | 16min | 52d | queryConvert(constunsignedchar*,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.anonymous_namespace{format.cpp} .__Globals.parseFlags(std::ostream& ,std::string::const_iterator& ,conststd::string::const_iterator&) | 2min 18s | 16min | 52d | parseFlags(std::ostream&,std::string::const_iterator&,conststd::string::const_iterator&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.anonymous_namespace{format.cpp} .__Globals.prepareFormat(std::ostream& ,char) | 2min 18s | 16min | 52d | prepareFormat(std::ostream&,char) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: double_conversion .__Globals.DoubleStrtod(Vector<constchar >,int,double*) | 2min 18s | 16min | 52d | DoubleStrtod(Vector<constchar>,int,double*) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: NumberFormatterTest.testFormat() | 2min 18s | 16min | 52d | testFormat() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: StringTest.testIstring() | 2min 18s | 16min | 52d | testIstring() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: HexBinaryTest.testEncoder() | 2min 18s | 16min | 52d | testEncoder() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: SemaphoreTest.testInitZero() | 2min 18s | 16min | 52d | testInitZero() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: SharedLibraryTest.testSharedLibrary3() | 2min 18s | 16min | 52d | testSharedLibrary3() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: GlobTest.testMisc() | 2min 18s | 16min | 52d | testMisc() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: TimespanTest.testComparisons() | 2min 18s | 16min | 52d | testComparisons() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: StreamConverterTest .testIdentityUTF8Out() | 2min 18s | 16min | 52d | testIdentityUTF8Out() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: HashSetTest.testErase() | 2min 18s | 16min | 52d | testErase() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: LinearHashTableTest.testInsert() | 2min 18s | 16min | 52d | testInsert() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: LinearHashTableTest.testErase() | 2min 18s | 16min | 52d | testErase() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.ToPrecision(double,int ,double_conversion::StringBuilder*) | 2min 24s | 16min | 54d | ToPrecision(double,int,double_conversion::StringBuilder*) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals .pcre_get_stringnumber(constpcre* ,constchar*) | 2min 24s | 16min | 54d | pcre_get_stringnumber(constpcre*,constchar*) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.StringTokenizer .StringTokenizer(conststd::string& ,conststd::string&,int) | 2min 24s | 16min | 54d | StringTokenizer(conststd::string&,conststd::string&,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco .HexBinaryDecoderBuf.readFromDevice() | 2min 24s | 16min | 54d | readFromDevice() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.RWLockImpl.tryWriteLockImpl() | 2min 24s | 16min | 54d | tryWriteLockImpl() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.SimpleFileChannel .setRotation(conststd::string&) | 2min 24s | 16min | 54d | setRotation(conststd::string&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Path.buildVMS() | 2min 24s | 16min | 54d | buildVMS() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.UTF8Encoding .convert(int,unsignedchar*,int) | 2min 24s | 16min | 54d | convert(int,unsignedchar*,int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.anonymous_namespace{format.cpp} .__Globals.writeAnyInt(std::ostream& ,constPoco::Any&) | 2min 24s | 16min | 54d | writeAnyInt(std::ostream&,constPoco::Any&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: double_conversion .__Globals.AdjustmentPowerOfTen(int) | 2min 24s | 16min | 54d | AdjustmentPowerOfTen(int) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: ListMapTest.testInsert() | 2min 24s | 16min | 54d | testInsert() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: TuplesTest.suite() | 2min 24s | 16min | 54d | suite() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: ZLibTest.testGzip3() | 2min 24s | 16min | 54d | testGzip3() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: FileChannelTest .purgeAge(conststd::string&) | 2min 24s | 16min | 54d | purgeAge(conststd::string&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: FileChannelTest .noPurgeAge(conststd::string&) | 2min 24s | 16min | 54d | noPurgeAge(conststd::string&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: URITest.testQueryParameters() | 2min 24s | 16min | 54d | testQueryParameters() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals .handleUnknownEncoding(XML_Parser ,constXML_Char*) | 2min 24s | 16min | 54d | handleUnknownEncoding(XML_Parser,constXML_Char*) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.prolog0 (PROLOG_STATE*,int,constchar*,constchar* ,constENCODING*) | 2min 24s | 16min | 54d | prolog0(PROLOG_STATE*,int,constchar*,constchar*,constENCODING*) | Rule violated: Avoid methods potentially poorly commented |
High issue on: Poco.XML.Node | 3min 0s | 20min | 54d | Node | Rule violated: Base class should not use derivatives |
Medium issue on: __Globals.crc32_little (unsignedlong,constunsignedchar* ,z_size_t) | 2min 0s | 12min | 56d | crc32_little(unsignedlong,constunsignedchar*,z_size_t) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.crc32_big (unsignedlong,constunsignedchar* ,z_size_t) | 2min 0s | 12min | 56d | crc32_big(unsignedlong,constunsignedchar*,z_size_t) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.TextBufferIterator.operator*() | 2min 0s | 12min | 56d | operator*() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.TextIterator.operator*() | 2min 0s | 12min | 56d | operator*() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: UniqueExpireCacheTest .testAccessUpdate() | 2min 0s | 12min | 56d | testAccessUpdate() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Net .OAuth10Credentials.signHMACSHA1 (Poco::Net::HTTPRequest& ,conststd::string& ,constPoco::Net::HTMLForm&) | 2min 0s | 12min | 56d | signHMACSHA1(Poco::Net::HTTPRequest&,conststd::string&,constPoco::Net::HTMLForm&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Data.RecordSet.row(std::size_t) | 2min 0s | 12min | 56d | row(std::size_t) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Data.StatementImpl .execute(constbool&) | 2min 0s | 12min | 56d | execute(constbool&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.__Globals.format (std::string&,conststd::string& ,conststd::vector<Any>&) | 2min 30s | 16min | 57d | format(std::string&,conststd::string&,conststd::vector<Any>&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Base64EncoderBuf .writeToDevice(char) | 2min 30s | 16min | 57d | writeToDevice(char) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: double_conversion .__Globals.GenerateCountedDigits(int ,int*,double_conversion::Bignum* ,double_conversion::Bignum*,Vector<char> ,int*) | 2min 30s | 16min | 57d | GenerateCountedDigits(int,int*,double_conversion::Bignum*,double_conversion::Bignum*,Vector<char>,int*) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: CoreTestSuite.suite() | 2min 30s | 16min | 57d | suite() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: ListMapTest.testErase() | 2min 30s | 16min | 57d | testErase() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: StringTest.testCILessThan() | 2min 30s | 16min | 57d | testCILessThan() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Base32Test.testEncoder() | 2min 30s | 16min | 57d | testEncoder() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: VarTest.testDynamicStructString() | 2min 30s | 16min | 57d | testDynamicStructString() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: NotificationQueueTest .testQueueDequeueUrgent() | 2min 30s | 16min | 57d | testQueueDequeueUrgent() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: DateTimeParserTest.testHTTP() | 2min 30s | 16min | 57d | testHTTP() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: DateTimeParserTest.testRFC1036() | 2min 30s | 16min | 57d | testRFC1036() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: HashMapTest.testErase() | 2min 30s | 16min | 57d | testErase() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.main(int,char**) | 2min 30s | 16min | 57d | main(int,char**) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.PooledThread.run() | 2min 6s | 12min | 59d | run() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: TuplesTest.testTuple2() | 2min 6s | 12min | 59d | testTuple2() | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: Poco.Net .FTPStreamFactory.open(constPoco::URI&) | 2min 6s | 12min | 59d | open(constPoco::URI&) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals.XmlUtf8Encode(int,char*) | 2min 6s | 12min | 59d | XmlUtf8Encode(int,char*) | Rule violated: Avoid methods potentially poorly commented |
Medium issue on: __Globals .CreateExponentialRepresentation (constchar*,int,int ,double_conversion::StringBuilder*) | 2min 36s | 16min | 59d | CreateExponentialRepresentation(constchar*,int,int,double_conversion::StringBuilder*) | Rule violated: Avoid methods potentially poorly commented |
Statistics
Stat | Debt | Annual Interest | Breaking Point | CodeElement |
---|---|---|---|---|
Sum: | 159d | 42d | 3 919 791d | - |
Average: | 21min | 5min | 1 098d | - |
Minimum: | 0min 0s | 0min 0s | 00:00:00 | - |
Maximum: | 1d 2h | 2h 0min | 10 950d | - |
Standard deviation: | 52min | 9min | 1 995d | - |
Variance: | 343d | 11d 0h | overflow | - |
Code Query: Debt and Issues per Rule |
27 rules matched
27 rules | Issues | Debt | Annual Interest | Breaking Point | Category | Full Name |
---|---|---|---|---|---|---|
Avoid methods too big, too complex | 389 issues | 71d | 7d 4h | 3 438d | Project Rules \ Code Smells | Rule |
Avoid types with too many methods | 105 issues | 23d | 2d 5h | 3 183d | Project Rules \ Code Smells | Rule |
Avoid methods with too many local variables | 67 issues | 15d 4h | 3d 1h | 1 822d | Project Rules \ Code Smells | Rule |
Avoid methods with too many parameters | 96 issues | 15d 1h | 1d 5h | 3 388d | Project Rules \ Code Smells | Rule |
Avoid types too big | 50 issues | 12d 6h | 1d 5h | 2 843d | Project Rules \ Code Smells | Rule |
Avoid methods potentially poorly commented | 598 issues | 6d 3h | 17d 6h | 130d | Project Rules \ Code Smells | Rule |
Avoid Abstract Classes with too many methods | 21 issues | 5d 3h | 1d 3h | 1 383d | Project Rules \ Object Oriented Design | Rule |
Avoid methods with too many overloads | 991 issues | 4d 1h | 4d 1h | 365d | Project Rules \ Code Smells | Rule |
Avoid types with too many fields | 11 issues | 2d 4h | 2h 24min | 3 083d | Project Rules \ Code Smells | Rule |
Class shouldn't be too deep in inheritance tree | 115 issues | 1d 0h | 3h 50min | 818d | Project Rules \ Object Oriented Design | Rule |
Nested types should not be visible | 143 issues | 4h 46min | 4h 46min | 365d | Project Rules \ Object Oriented Design | Rule |
Constructor should not call a virtual methods | 24 issues | 3h 48min | 1d 0h | 173d | Project Rules \ Object Oriented Design | Rule |
Avoid types with poor cohesion | 9 issues | 2h 5min | 44min | 1 024d | Project Rules \ Code Smells | Rule |
Don't assign static fields from instance methods | 19 issues | 1h 35min | 38min | 912d | Project Rules \ Object Oriented Design | Rule |
Base class should not use derivatives | 4 issues | 45min | 1h 20min | 205d | Project Rules \ Object Oriented Design | Rule |
Projects with poor cohesion (RelationalCohesion) | 1 issue | 10min | 0min 0s | 00:00:00 | Project Rules \ Object Oriented Design | Rule |
Constructors of abstract classes should be declared as protected or private | 55 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Object Oriented Design | Rule |
Declaration of Catch for Generic Exception | 144 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ CWE Rules | Rule |
Potentially dead Types | 55 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Dead Code | Rule |
Potentially dead Methods | 570 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Dead Code | Rule |
Potentially dead Fields | 44 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Dead Code | Rule |
Instance fields should be prefixed with a 'm_' | 10 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Naming Conventions | Rule |
Static fields should be prefixed with a 's_' | 10 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Naming Conventions | Rule |
Exception class name should be suffixed with 'Exception' | 1 issue | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Naming Conventions | Rule |
Types name should begin with an Upper character | 10 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Naming Conventions | Rule |
Avoid methods with name too long | 18 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Naming Conventions | Rule |
Avoid fields with name too long | 7 issues | 0min 0s | 0min 0s | 00:00:00 | Project Rules \ Naming Conventions | Rule |
Statistics
Stat | Issues | Debt | Annual Interest | Breaking Point | Category |
---|---|---|---|---|---|
Sum: | 3 567 | 159d | 42d | 23 139d | - |
Average: | 132.11 | 5d 7h | 1d 4h | 857d | - |
Minimum: | 1 | 0min 0s | 0min 0s | 00:00:00 | - |
Maximum: | 991 | 71d | 17d 6h | 3 438d | - |
Standard deviation: | 230.66 | 14d 1h | 3d 4h | 1 207d | - |
Variance: | 53 206 | 5 846 514d | 373 762d | overflow | - |
Code Query: New Debt and Issues per Rule |
No rule matched
Code Query: Debt and Issues per Code Element |
2,918 attribute targets matched
2 918 attribute targets | Issues | Debt | Annual Interest | Breaking Point | Full Name |
---|---|---|---|---|---|
compile_branch(int*,pcre_uchar** ,constpcre_uchar**,int*,pcre_uint32* ,pcre_int32*,pcre_uint32*,pcre_int32* ,branch_chain*,int,compile_data*,int*) | 3 issues | 1d 7h | 2h 59min | 1 918d | __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) | 4 issues | 1d 7h | 2h 51min | 1 998d | __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) | 4 issues | 1d 7h | 2h 44min | 2 043d | __Globals.match(constpcre_uchar* ,constpcre_uchar*,constpcre_uchar*,int ,match_data*,eptrblock*,unsignedint) |
doProlog(XML_Parser,constENCODING* ,constchar*,constchar*,int,constchar* ,constchar**,XML_Bool) | 4 issues | 1d 5h | 1h 59min | 2 403d | __Globals.doProlog(XML_Parser ,constENCODING*,constchar*,constchar* ,int,constchar*,constchar**,XML_Bool) |
VarTest | 2 issues | 1d 4h | 2h 25min | 1 925d | VarTest |
AbstractPreparator | 3 issues | 1d 3h | 2h 43min | 1 513d | Poco.Data.AbstractPreparator |
AbstractBinder | 3 issues | 1d 3h | 2h 40min | 1 516d | Poco.Data.AbstractBinder |
AbstractExtractor | 3 issues | 1d 3h | 2h 40min | 1 516d | Poco.Data.AbstractExtractor |
pcre_exec(constpcre*,constpcre_extra* ,constchar*,int,int,int,int*,int) | 3 issues | 1d 2h | 1h 29min | 2 601d | __Globals.pcre_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int) |
doContent(XML_Parser,int,constENCODING* ,constchar*,constchar*,constchar** ,XML_Bool) | 4 issues | 1d 1h | 1h 40min | 2 146d | __Globals.doContent(XML_Parser,int ,constENCODING*,constchar*,constchar* ,constchar**,XML_Bool) |
StatementImpl | 5 issues | 1d 1h | 2h 7min | 1 700d | Poco.Data.StatementImpl |
find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) | 3 issues | 1d 1h | 47min | 4 331d | __Globals.find_minlength(constreal_pcre* ,constpcre_uchar*,constpcre_uchar*,int ,recurse_check*,int*) |
inflate(z_streamp,int) | 2 issues | 1d 1h | 45min | 4 393d | __Globals.inflate(z_streamp,int) |
compare_opcodes(constpcre_uchar*,BOOL ,constcompile_data*,constpcre_uint32* ,constpcre_uchar*,int*) | 2 issues | 1d 0h | 56min | 3 418d | __Globals.compare_opcodes (constpcre_uchar*,BOOL ,constcompile_data*,constpcre_uint32* ,constpcre_uchar*,int*) |
Logger | 3 issues | 1d 0h | 1h 31min | 2 051d | Poco.Logger |
pcre_compile2(constchar*,int,int* ,constchar**,int*,constunsignedchar*) | 2 issues | 1d 0h | 1h 21min | 2 237d | __Globals.pcre_compile2(constchar*,int ,int*,constchar**,int* ,constunsignedchar*) |
convert(int,unsignedchar*,int) | 2 issues | 1d 0h | 56min | 3 258d | Poco.Windows1251Encoding.convert(int ,unsignedchar*,int) |
PathTest | 2 issues | 7h 57min | 1h 22min | 2 122d | PathTest |
set_start_bits(constpcre_uchar* ,pcre_uint8*,BOOL,compile_data*) | 1 issue | 7h 54min | 40min | 4 325d | __Globals.set_start_bits (constpcre_uchar*,pcre_uint8*,BOOL ,compile_data*) |
convert(int,unsignedchar*,int) | 2 issues | 7h 51min | 56min | 3 072d | Poco.Windows1250Encoding.convert(int ,unsignedchar*,int) |
pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) | 3 issues | 7h 50min | 1h 18min | 2 194d | __Globals.pcre_dfa_exec(constpcre* ,constpcre_extra*,constchar*,int,int,int ,int*,int,int*,int) |
XMLWriter | 5 issues | 7h 9min | 1h 2min | 2 491d | Poco.XML.XMLWriter |
ParserEngine | 4 issues | 7h 0min | 1h 1min | 2 492d | Poco.XML.ParserEngine |
storeAtts(XML_Parser,constENCODING* ,constchar*,TAG_NAME*,BINDING**) | 2 issues | 6h 36min | 1h 21min | 1 774d | __Globals.storeAtts(XML_Parser ,constENCODING*,constchar*,TAG_NAME* ,BINDING**) |
find_fixedlength(pcre_uchar*,BOOL,BOOL ,compile_data*,recurse_check*) | 2 issues | 6h 33min | 42min | 3 399d | __Globals.find_fixedlength(pcre_uchar* ,BOOL,BOOL,compile_data*,recurse_check*) |
testStringTokenizer() | 3 issues | 6h 30min | 1h 44min | 1 370d | StringTokenizerTest.testStringTokenizer( ) |
StringToIeee(constchar*,int,int*,bool) | 4 issues | 6h 25min | 1h 17min | 1 804d | __Globals.StringToIeee(constchar*,int ,int*,bool) |
NamedTuplesTest | 2 issues | 6h 25min | 1h 2min | 2 268d | NamedTuplesTest |
Var | 2 issues | 6h 23min | 1h 1min | 2 273d | Poco.Dynamic.Var |
convert(int,unsignedchar*,int) | 2 issues | 6h 15min | 56min | 2 445d | Poco.Latin2Encoding.convert(int ,unsignedchar*,int) |
Path | 2 issues | 6h 5min | 57min | 2 315d | Poco.Path |
little2_prologTok(constENCODING* ,constchar*,constchar*,constchar**) | 2 issues | 6h 2min | 56min | 2 359d | __Globals.little2_prologTok (constENCODING*,constchar*,constchar* ,constchar**) |
big2_prologTok(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 6h 2min | 56min | 2 359d | __Globals.big2_prologTok(constENCODING* ,constchar*,constchar*,constchar**) |
check_escape(constpcre_uchar** ,pcre_uint32*,int*,int,int,BOOL) | 2 issues | 6h 1min | 43min | 3 011d | __Globals.check_escape(constpcre_uchar** ,pcre_uint32*,int*,int,int,BOOL) |
normal_prologTok(constENCODING* ,constchar*,constchar*,constchar**) | 2 issues | 5h 52min | 56min | 2 297d | __Globals.normal_prologTok (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*) | 3 issues | 5h 49min | 1h 4min | 1 988d | __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*) |
SocketImpl | 3 issues | 5h 44min | 1h 11min | 1 752d | Poco.Net.SocketImpl |
transform() | 2 issues | 5h 35min | 55min | 2 215d | Poco.SHA1Engine.transform() |
AbstractNode | 5 issues | 5h 34min | 1h 27min | 1 393d | Poco.XML.AbstractNode |
could_be_empty_branch(constpcre_uchar* ,constpcre_uchar*,BOOL,compile_data* ,recurse_check*) | 1 issue | 5h 30min | 40min | 3 012d | __Globals.could_be_empty_branch (constpcre_uchar*,constpcre_uchar*,BOOL ,compile_data*,recurse_check*) |
StringTest | 2 issues | 5h 28min | 49min | 2 418d | StringTest |
URI | 2 issues | 5h 15min | 46min | 2 465d | Poco.URI |
little2_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) | 2 issues | 5h 8min | 56min | 2 011d | __Globals.little2_scanAtts (constENCODING*,constchar*,constchar* ,constchar**) |
big2_scanAtts(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 5h 8min | 56min | 2 011d | __Globals.big2_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) |
NumberFormatter | 2 issues | 5h 4min | 44min | 2 509d | Poco.NumberFormatter |
VarHolder | 3 issues | 5h 0min | 1h 3min | 1 720d | Poco.Dynamic.VarHolder |
normal_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) | 2 issues | 4h 59min | 56min | 1 949d | __Globals.normal_scanAtts(constENCODING* ,constchar*,constchar*,constchar**) |
XML_ParserStruct | 1 issue | 4h 38min | 49min | 2 042d | XML_ParserStruct |
inflateBack(z_streamp,in_func,void* ,out_func,void*) | 2 issues | 4h 32min | 42min | 2 366d | __Globals.inflateBack(z_streamp,in_func ,void*,out_func,void*) |
little2_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 4h 20min | 55min | 1 707d | __Globals.little2_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 4h 20min | 55min | 1 707d | __Globals.big2_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
testTypeList() | 3 issues | 4h 20min | 1h 2min | 1 531d | TypeListTest.testTypeList() |
normal_scanLt(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 4h 13min | 54min | 1 702d | __Globals.normal_scanLt(constENCODING* ,constchar*,constchar*,constchar**) |
auto_possessify(pcre_uchar*,BOOL ,constcompile_data*) | 2 issues | 4h 9min | 45min | 1 992d | __Globals.auto_possessify(pcre_uchar* ,BOOL,constcompile_data*) |
FTPClientSession | 2 issues | 4h 6min | 31min | 2 845d | Poco.Net.FTPClientSession |
inflate_table(codetype,unsignedshort* ,unsignedint,code**,unsignedint* ,unsignedshort*) | 2 issues | 4h 3min | 40min | 2 196d | __Globals.inflate_table(codetype ,unsignedshort*,unsignedint,code** ,unsignedint*,unsignedshort*) |
CoreTest | 1 issue | 4h 1min | 41min | 2 115d | CoreTest |
inflate_fast(z_streamp,unsignedint) | 2 issues | 3h 57min | 35min | 2 440d | __Globals.inflate_fast(z_streamp ,unsignedint) |
Parser | 2 issues | 3h 50min | 28min | 2 993d | Poco.JSON.Parser |
parseChar<S>(CharIntType,S&) | 2 issues | 3h 49min | 41min | 2 025d | Poco.JSON.Parser.parseChar<S> (CharIntType,S&) |
RecordSet | 2 issues | 3h 46min | 27min | 3 034d | Poco.Data.RecordSet |
map(bool,bool) | 2 issues | 3h 43min | 37min | 2 167d | Poco.Net.NetworkInterface.map(bool,bool) |
MailMessage | 3 issues | 3h 38min | 28min | 2 790d | Poco.Net.MailMessage |
DateTime | 2 issues | 3h 31min | 24min | 3 213d | Poco.DateTime |
IPAddress | 2 issues | 3h 31min | 23min | 3 221d | Poco.Net.IPAddress |
Statement | 1 issue | 3h 30min | 34min | 2 203d | Poco.Data.Statement |
testFIFOBufferChar() | 2 issues | 3h 29min | 46min | 1 659d | CoreTest.testFIFOBufferChar() |
XML_ExternalEntityParserCreate (XML_Parser,constXML_Char* ,constXML_Char*) | 2 issues | 3h 29min | 41min | 1 836d | __Globals.XML_ExternalEntityParserCreate (XML_Parser,constXML_Char* ,constXML_Char*) |
launchImpl(conststd::string& ,constArgsImpl&,conststd::string& ,Poco::Pipe*,Poco::Pipe*,Poco::Pipe* ,constEnvImpl&) | 4 issues | 3h 28min | 30min | 2 489d | Poco.ProcessImpl.launchImpl (conststd::string&,constArgsImpl& ,conststd::string&,Poco::Pipe* ,Poco::Pipe*,Poco::Pipe*,constEnvImpl&) |
deflate(z_streamp,int) | 1 issue | 3h 25min | 33min | 2 265d | __Globals.deflate(z_streamp,int) |
testIsStruct() | 3 issues | 3h 22min | 58min | 1 270d | VarTest.testIsStruct() |
testArrayIdxOperator() | 3 issues | 3h 20min | 55min | 1 316d | VarTest.testArrayIdxOperator() |
parse(std::istream&) | 3 issues | 3h 19min | 37min | 1 943d | Poco.JSON.Template.parse(std::istream&) |
Node | 4 issues | 3h 18min | 56min | 1 293d | Poco.XML.Node |
testIsArray() | 3 issues | 3h 17min | 56min | 1 280d | VarTest.testIsArray() |
DateTimeTest | 2 issues | 3h 14min | 20min | 3 502d | DateTimeTest |
URITest | 1 issue | 3h 12min | 31min | 2 268d | URITest |
SessionImpl | 3 issues | 3h 11min | 34min | 2 007d | Poco.Data.SessionImpl |
convert(int,unsignedchar*,int) | 2 issues | 3h 9min | 43min | 1 574d | Poco.Windows1252Encoding.convert(int ,unsignedchar*,int) |
internal_state | 1 issue | 3h 8min | 30min | 2 287d | internal_state |
TuplesTest | 2 issues | 3h 3min | 17min | 3 759d | TuplesTest |
little2_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 3h 0min | 41min | 1 579d | __Globals.little2_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
big2_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 3h 0min | 41min | 1 579d | __Globals.big2_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
NetworkInterface | 2 issues | 3h 0min | 17min | 3 839d | Poco.Net.NetworkInterface |
DateTimeParserTest | 1 issue | 2h 59min | 28min | 2 329d | DateTimeParserTest |
FileChannelTest | 2 issues | 2h 57min | 16min | 3 899d | FileChannelTest |
PriorityEventTest | 2 issues | 2h 55min | 16min | 3 962d | PriorityEventTest |
normal_scanPi(constENCODING*,constchar* ,constchar*,constchar**) | 2 issues | 2h 54min | 40min | 1 569d | __Globals.normal_scanPi(constENCODING* ,constchar*,constchar*,constchar**) |
testParse() | 2 issues | 2h 52min | 38min | 1 620d | URITest.testParse() |
AbstractContainerNode | 4 issues | 2h 52min | 33min | 1 877d | Poco.XML.AbstractContainerNode |
SHA1Engine | 1 issue | 2h 51min | 26min | 2 371d | Poco.SHA1Engine |
doParseXmlDecl(constENCODING*(*) (constENCODING*,constchar*,constchar*) ,int,constENCODING*,constchar* ,constchar*,constchar**,constchar** ,constchar**,constchar**,constENCODING** ,int*) | 3 issues | 2h 51min | 38min | 1 619d | __Globals.doParseXmlDecl(constENCODING* (*)(constENCODING*,constchar*,constchar* ),int,constENCODING*,constchar* ,constchar*,constchar**,constchar** ,constchar**,constchar**,constENCODING** ,int*) |
_pcre_find_bracket(constpcre_uchar*,BOOL ,int) | 1 issue | 2h 50min | 26min | 2 344d | __Globals._pcre_find_bracket (constpcre_uchar*,BOOL,int) |
testDouble() | 3 issues | 2h 47min | 40min | 1 501d | VarTest.testDouble() |
testIncrementDecrement() | 3 issues | 2h 44min | 29min | 2 012d | DateTimeTest.testIncrementDecrement() |
IPAddressImpl | 2 issues | 2h 41min | 26min | 2 189d | Poco.Net.Impl.IPAddressImpl |
transform(UInt32*,constunsignedchar*) | 2 issues | 2h 41min | 24min | 2 373d | Poco.MD5Engine.transform(UInt32* ,constunsignedchar*) |
get_chr_property_list(constpcre_uchar* ,BOOL,constpcre_uint8*,pcre_uint32*) | 2 issues | 2h 41min | 25min | 2 267d | __Globals.get_chr_property_list (constpcre_uchar*,BOOL,constpcre_uint8* ,pcre_uint32*) |
testFloat() | 3 issues | 2h 41min | 38min | 1 524d | VarTest.testFloat() |
find_recurse(constpcre_uchar*,BOOL) | 1 issue | 2h 40min | 24min | 2 377d | __Globals.find_recurse(constpcre_uchar* ,BOOL) |
Statistics
Stat | Issues | Debt | Annual Interest | Breaking Point |
---|---|---|---|---|
Sum: | 3 560 | 159d | 42d | 2 138 911d |
Average: | 1.22 | 26min | 7min | 733d |
Minimum: | 1 | 0min 0s | 0min 0s | 00:00:00 |
Maximum: | 5 | 1d 7h | 2h 59min | 10 950d |
Standard deviation: | 0.51 | 1h 13min | 13min | 1 376d |
Variance: | 0.26 | 683d | 23d | overflow |
Code Query: New Debt and Issues per Code Element |
No code element matched
Trend Charts
Lines of Code
Rules Violated
Rules Violations
Max
Average
Third-Party Usage
Projects Dependencies
Assembly | Depends on | Is referenced by |
---|---|---|
Externals v1.0.0.0 | - | Foundation v1.0.0.0 ; TestLibrary v1.0.0.0 ; TestSuite v1.0.0.0 ; JSON v1.0.0.0 ; Net v1.0.0.0 ; Crypto v1.0.0.0 ; Data v1.0.0.0 ; XML v1.0.0.0 ; |
WindowsAPI v1.0.0.0 | - | Foundation v1.0.0.0 ; TestLibrary v1.0.0.0 ; TestSuite v1.0.0.0 ; TestApp v1.0.0.0 ; JSON v1.0.0.0 ; Net v1.0.0.0 ; Crypto v1.0.0.0 ; Data v1.0.0.0 ; XML v1.0.0.0 ; |
Foundation v1.0.0.0 | Externals v1.0.0.0 ; WindowsAPI v1.0.0.0 ; | TestLibrary v1.0.0.0 ; TestSuite v1.0.0.0 ; JSON v1.0.0.0 ; Net v1.0.0.0 ; Crypto v1.0.0.0 ; Data v1.0.0.0 ; XML v1.0.0.0 ; |
TestLibrary v1.0.0.0 | WindowsAPI v1.0.0.0 ; Foundation v1.0.0.0 ; Externals v1.0.0.0 ; | - |
TestSuite v1.0.0.0 | Externals v1.0.0.0 ; WindowsAPI v1.0.0.0 ; Foundation v1.0.0.0 ; | - |
TestApp v1.0.0.0 | WindowsAPI v1.0.0.0 ; | - |
JSON v1.0.0.0 | WindowsAPI v1.0.0.0 ; Externals v1.0.0.0 ; Foundation v1.0.0.0 ; | - |
Net v1.0.0.0 | Externals v1.0.0.0 ; Foundation v1.0.0.0 ; WindowsAPI v1.0.0.0 ; | - |
Crypto v1.0.0.0 | Externals v1.0.0.0 ; WindowsAPI v1.0.0.0 ; Foundation v1.0.0.0 ; | - |
Data v1.0.0.0 | Externals v1.0.0.0 ; WindowsAPI v1.0.0.0 ; Foundation v1.0.0.0 ; | - |
XML v1.0.0.0 | WindowsAPI v1.0.0.0 ; Foundation v1.0.0.0 ; Externals v1.0.0.0 ; | - |
Projects Build Order
- Foundation
- TestLibrary
- TestSuite
- TestApp
- JSON
- Net
- Crypto
- Data
- XML
Projects Build Order
- Foundation
- TestLibrary
- TestSuite
- TestApp
- JSON
- Net
- Crypto
- Data
- XML
Analysis Log : Information and Warnings
The Warnings can reveal potential flaws concerning the health of the build process.
A particular warn can be disabled through the CppDepend interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.
Message | |
---|---|
Begin analysis with CppDepend v2017.1.0.8903 | |
Evaluation 3 days left. You can ask for evaluation extension if required from the menu Help then License Information. | |
It's the first analysis, it could take a few minutes to finish. For the next analysis only the modified source files will be parsed. | |
The parser used is Clang | |
2 Cores are used, you can change this value from the menu Tools->Options->Parser Configuration | |
No dependency cycle detected in Projects referencement graph. | |
Analyse dependencies of your application. | |
Log trend metrics values. | |
Execute queries and rules. | |
2 quality gates fail. - 'Critical Rules Violated' value 3 rules greater than fail threshold 0 rules - 'Debt Rating per Namespace' value 2 namespaces greater than fail threshold 0 namespaces | |
CppDepend analysis done. Duration: 00:33:35 | |
Building the report (standard). |