apicompatanamdw/compatanalysercmd/headeranalyser/src/ReportIssue.h
author noe\swadi
Mon, 26 Apr 2010 16:28:13 +0530
changeset 3 ebe3f8f03b59
parent 0 638b9c697799
permissions -rw-r--r--
Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     1
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     8
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    11
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    12
* Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    13
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    14
* Description:  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    15
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    16
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    17
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    18
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    19
#ifndef __REPORT_ISSUE_H__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    20
#define __REPORT_ISSUE_H__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    21
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    22
#include "CmdGlobals.h"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    23
#ifdef __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    24
#pragma warning(disable:4786)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    25
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    26
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    27
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    28
#include <xercesc/dom/DOM.hpp>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    29
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    30
XERCES_CPP_NAMESPACE_USE
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    31
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    33
#include <string>
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    34
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    35
using namespace std;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    36
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    37
// Severity of the issue found for binary compatibility
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    38
enum TBCSeverity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    39
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    40
    ESeverityNULL = 0,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    41
    ESeverityBBCBreak,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    42
    ESeverityPossibleBBCBreak,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    43
    ESeverityInformative,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    44
    ESeverityFCBreak,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    45
    ESeverityPossibleFCBreak,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    46
    ESeverityCount
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    47
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    48
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    49
// Severity of the issue found for source compatibility
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    50
enum TSCSeverity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    51
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    52
    ESeveritySCNULL = 0,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    53
    ESeveritySCBreak,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    54
    ESeverityPossibleSCBreak,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    55
    ESeveritySCInformative,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    56
    ESeveritySCCount
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    57
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    58
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    59
// Identity of the issue found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    60
enum TIssueIdentity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    61
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    62
    EIssueIdentityClass,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    63
    EIssueIdentityExportedFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    64
    EIssueIdentityInlineFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    65
    EIssueIdentityVirtualFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    66
    EIssueIdentityEnumeration,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    67
    EIssueIdentityStruct,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    68
    EIssueIdentityUnion,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    69
    EIssueIdentityEnumerationValue,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    70
    EIssueIdentityTypedef,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    71
    EIssueIdentityVariable,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    72
    EIssueIdentityField,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    73
    EIssueIdentityFieldInaccessible,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    74
    EIssueIdentityMacro,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    75
    EIssueIdentityFile,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    76
    EIssueIdentityVirtualTable,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    77
    EIssueIdentitySubobject,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    78
    EIssueIdentityVirtualTablePointer,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    79
    EIssueIdentityExportedInlineFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    80
    EIssueIdentityExportedVirtualFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    81
    EIssueIdentityVirtualInlineFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    82
    EIssueIdentityExportedVirtualInlineFunction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    83
	EIssueIdentityStructMember,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    84
    EIssueIdentityCount
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    85
	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    86
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    87
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    88
// What kind of issue was happened in the code between two
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    89
// versions of the comparable header files
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    90
enum TIssueType
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    91
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    92
    EIssueTypeRemoval,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    93
    EIssueTypeAddition,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    94
    EIssueTypeChange,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    95
    EIssueTypeSize,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    96
    EIssueTypeAlign,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    97
    EIssueTypeParam,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    98
    EIssueTypeReturn,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    99
	EIssueTypeAccess,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   100
    EIssueTypeInheritance,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   101
    EIssueTypeOffset,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   102
    EIssueTypeOrderChange,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   103
    EIssueTypeChangeInType,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   104
    EIssueTypeChangeInInitialisation,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   105
    EIssueTypeCompilationError,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   106
    EIssueTypeNotAnalysed,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   107
    EIssueTypeVirtualBases,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   108
    EIssueTypeNewOverride,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   109
    //EIssueTypeRemovedOverride,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   110
    EIssueTypeEmpty,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   111
    EIssueTypeBaseSize,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   112
    EIssueTypeUnderConstruction,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   113
	EIssueTypeParamConst,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   114
    EIssueTypeParamConst2,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   115
	EIssueTypeReturnConst,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   116
    EIssueTypeReturnConst2,
3
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   117
	EIssueTypeDefaultParam,
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   118
	EIssueTypeOverload,
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   119
    EIssueTypeCount
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   120
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   121
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   122
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   123
/**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   124
* The ReportIssues class is a data class that encapsulates 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   125
* the data for an issue.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   126
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   127
class ReportIssue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   128
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   129
	friend class ReportGenerator;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   130
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   131
    /*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   132
    *Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   133
    * @param aIssueId the unique id of the issue in this report, running number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   134
    * @param aFile the file where the issue is
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   135
    * @param aFQName the fully qualified name of the cause
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   136
    * @param aIssueIdentityId the issue identity id (class, enum, struct...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   137
    * @param aIssueTypeId the issue type (removed, added, changed...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   138
    * @param aBCSeverityId binary compatibility severity of the issue found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   139
    * @param aSCSeverityId source compatibility severity of the issue found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   140
    * @param aIgnoreInformation information needed for ignoring the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   141
    * @param aLineNumber line where the issue is
3
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   142
	* @param aIssueLoc filename where the issue is
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   143
    * @param aCompareFileName
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   144
	* @param aCompilationError
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   145
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   146
    ReportIssue(int aIssueId, const string& aFile, 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   147
                const string& aFQName, const TIssueIdentity& aIssueIdentityId, 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   148
                const TIssueType& aIssueTypeId, const TBCSeverity& aBCSeverityId, 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   149
                const TSCSeverity& aSCSeverityId, const string& aIgnoreInformation,
3
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   150
                int aLineNumber, const string& aIssueLoc, const string& aCompareFileName, 
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   151
				const string& aCompilationError = "", bool alineNoNeeded = true);
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   152
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   153
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   154
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   155
    * Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   156
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   157
    ReportIssue();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   158
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   159
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   160
    * Destructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   161
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   162
    ~ReportIssue();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   163
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   164
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   165
    * Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   166
    * @param other issue to report
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   167
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   168
	ReportIssue(const ReportIssue & other);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   169
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   170
	const ReportIssue& operator=(const ReportIssue& other);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   171
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   172
	bool operator<(const ReportIssue& other) const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   173
	bool operator==(const ReportIssue& other) const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   174
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   175
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   176
    * Set issue id
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   177
    * @param aId id number to set
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   178
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   179
    void SetId(const int aId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   180
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   181
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   182
    * Set binary compatibility severity level of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   183
    * @param aId reference to severity (TBCSeverity&)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   184
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   185
    void SetBCSeverity(const TBCSeverity& aId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   186
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   187
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   188
    * Set source compatibility  severity level of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   189
    * @param aId reference to severity (TSCSeverity&)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   190
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   191
    void SetSCSeverity(const TSCSeverity& aId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   192
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   193
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   194
    * Set fully qualified name
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   195
    * @param aCause full
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   196
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   197
    void SetFQName(const string& aCause);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   198
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   199
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   200
    * Set headerfile
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   201
    * @param aFile name of the header file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   202
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   203
    void SetHeaderFile(const string& aFile);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   204
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   205
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   206
    * Get identity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   207
    * @param aIdentityId TIssueIdentity reference to the issue identity id (class, enum, struct...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   208
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   209
    void SetIdentityId(const TIssueIdentity& aIdentityId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   210
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   211
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   212
    * Set type id
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   213
    * @param aTypeId the issue type (removed, added, changed...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   214
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   215
    void SetTypeId(const TIssueType& aTypeId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   216
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   217
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   218
    * Get issue ID
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   219
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   220
    int Id() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   221
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   222
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   223
    * Get binary compatibility severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   224
    * @return reference to severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   225
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   226
    const TBCSeverity& BCSeverity() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   227
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   228
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   229
    * Get source compatibility severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   230
    * @return reference to severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   231
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   232
    const TSCSeverity& SCSeverity() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   233
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   234
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   235
    * Get fully qualified name of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   236
    * @return reference to fully qualified name
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   237
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   238
    const string& FQName() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   239
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   240
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   241
    * Get header filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   242
    * @return name of the file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   243
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   244
    const string& HeaderFile() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   245
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   246
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   247
    * Get identity ID
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   248
    * @return reference to issue identity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   249
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   250
    const TIssueIdentity& IdentityId() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   251
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   252
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   253
    * Get issue type id
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   254
    * @return reference to issue type
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   255
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   256
    const TIssueType& TypeId() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   257
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   258
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   259
    * Get sbinary compatibility severity description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   260
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   261
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   262
    const char* BCSeverityDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   263
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   264
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   265
    * Get source compatibility severity description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   266
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   267
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   268
    const char* SCSeverityDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   269
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   270
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   271
    * Get identity description
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   272
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   273
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   274
    const char* IdentityDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   275
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   276
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   277
    * Get type description
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   278
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   279
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   280
    const char* TypeDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   281
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   282
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   283
    * Get ignore information description (information needed for ignoring 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   284
    * the issue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   285
    * @return information description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   286
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   287
    const string& IgnoreInformationDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   288
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   289
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   290
    * Get line number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   291
    * @return line number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   292
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   293
    int LineNumber() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   294
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   295
	void SetLineNumber(const int lineNumber);
3
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   296
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   297
	/**
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   298
    * Get issue location file name
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   299
    * @return file name string
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   300
    */
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   301
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   302
	const string& IssueLocation() const;
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   303
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   304
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   305
    * Get compare filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   306
    * @return filename string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   307
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   308
    const string& CompareFileName() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   309
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   310
	/** 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   311
    * Return reson behind the compilation error
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   312
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   313
    const string& CompilationError() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   314
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   315
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   316
private:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   317
    //! Headerfile where the issue is found from
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   318
    string         iHeaderFile;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   319
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   320
    //! Fully qualified name of the cause
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   321
    string         iFQName;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   322
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   323
    //! ID number of the issua
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   324
    int            iId;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   325
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   326
    //! How severe is the issue found for binary comaptibility
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   327
    TBCSeverity      iBCSeverity;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   328
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   329
    //! How severe is the issue found for source comaptibility
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   330
    TSCSeverity      iSCSeverity;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   331
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   332
    //! Information needed for ignoring the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   333
    string         iIgnoreInformation;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   334
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   335
    //! What was happened in the code
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   336
    TIssueIdentity iIdentityId;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   337
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   338
    //!  type id of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   339
    TIssueType     iTypeId;	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   340
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   341
    //! Line number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   342
    int            iLineNumber;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   343
3
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   344
	//! Compare filename
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   345
    string         iIssueLoc;
ebe3f8f03b59 Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
noe\swadi
parents: 0
diff changeset
   346
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   347
    //! Compare filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   348
    string         iCompareFileName;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   349
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   350
	//! Cause of compilation error
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   351
    string         iCompilationError;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   352
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   353
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   354
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   355
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   356
#endif