apicompatanamdw/compatanalysercmd/headeranalyser/src/ReportIssue.h
author noe\swadi
Tue, 12 Jan 2010 14:52:39 +0530
changeset 0 638b9c697799
child 3 ebe3f8f03b59
permissions -rw-r--r--
1. Licenses updated to EPL. 2. New components test cases added to BC Drivers 3. Some minor fixes and few feature additions to CA.
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,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   117
    EIssueTypeCount
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   118
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   119
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
* The ReportIssues class is a data class that encapsulates 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   123
* the data for an issue.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   124
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   125
class ReportIssue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   126
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   127
	friend class ReportGenerator;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   128
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   129
    /*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   130
    *Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   131
    * @param aIssueId the unique id of the issue in this report, running number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   132
    * @param aFile the file where the issue is
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   133
    * @param aFQName the fully qualified name of the cause
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   134
    * @param aIssueIdentityId the issue identity id (class, enum, struct...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   135
    * @param aIssueTypeId the issue type (removed, added, changed...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   136
    * @param aBCSeverityId binary compatibility severity of the issue found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   137
    * @param aSCSeverityId source compatibility severity of the issue found
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   138
    * @param aIgnoreInformation information needed for ignoring the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   139
    * @param aLineNumber line where the issue is
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   140
    * @param aCompareFileName
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   141
	* @param aCompilationError
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   142
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   143
    ReportIssue(int aIssueId, const string& aFile, 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   144
                const string& aFQName, const TIssueIdentity& aIssueIdentityId, 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   145
                const TIssueType& aIssueTypeId, const TBCSeverity& aBCSeverityId, 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   146
                const TSCSeverity& aSCSeverityId, const string& aIgnoreInformation,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   147
                int aLineNumber, const string& aCompareFileName, const string& aCompilationError = "", bool alineNoNeeded = true);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   148
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   149
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   150
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   151
    * Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   152
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   153
    ReportIssue();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   154
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   155
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   156
    * Destructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   157
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   158
    ~ReportIssue();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   159
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   160
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   161
    * Constructor
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   162
    * @param other issue to report
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   163
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   164
	ReportIssue(const ReportIssue & other);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   165
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   166
	const ReportIssue& operator=(const ReportIssue& other);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   167
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   168
	bool operator<(const ReportIssue& other) const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   169
	bool operator==(const ReportIssue& other) const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   170
public:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   171
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   172
    * Set issue id
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   173
    * @param aId id number to set
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   174
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   175
    void SetId(const int aId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   176
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   177
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   178
    * Set binary compatibility severity level of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   179
    * @param aId reference to severity (TBCSeverity&)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   180
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   181
    void SetBCSeverity(const TBCSeverity& aId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   182
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   183
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   184
    * Set source compatibility  severity level of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   185
    * @param aId reference to severity (TSCSeverity&)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   186
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   187
    void SetSCSeverity(const TSCSeverity& aId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   188
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   189
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   190
    * Set fully qualified name
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   191
    * @param aCause full
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   192
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   193
    void SetFQName(const string& aCause);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   194
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   195
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   196
    * Set headerfile
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   197
    * @param aFile name of the header file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   198
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   199
    void SetHeaderFile(const string& aFile);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   200
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   201
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   202
    * Get identity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   203
    * @param aIdentityId TIssueIdentity reference to the issue identity id (class, enum, struct...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   204
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   205
    void SetIdentityId(const TIssueIdentity& aIdentityId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   206
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   207
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   208
    * Set type id
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   209
    * @param aTypeId the issue type (removed, added, changed...)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   210
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   211
    void SetTypeId(const TIssueType& aTypeId);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   212
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   213
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   214
    * Get issue ID
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   215
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   216
    int Id() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   217
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   218
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   219
    * Get binary compatibility severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   220
    * @return reference to severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   221
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   222
    const TBCSeverity& BCSeverity() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   223
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   224
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   225
    * Get source compatibility severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   226
    * @return reference to severity level
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   227
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   228
    const TSCSeverity& SCSeverity() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   229
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   230
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   231
    * Get fully qualified name of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   232
    * @return reference to fully qualified name
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   233
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   234
    const string& FQName() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   235
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   236
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   237
    * Get header filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   238
    * @return name of the file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   239
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   240
    const string& HeaderFile() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   241
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   242
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   243
    * Get identity ID
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   244
    * @return reference to issue identity
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   245
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   246
    const TIssueIdentity& IdentityId() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   247
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   248
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   249
    * Get issue type id
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   250
    * @return reference to issue type
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   251
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   252
    const TIssueType& TypeId() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   253
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   254
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   255
    * Get sbinary compatibility severity description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   256
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   257
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   258
    const char* BCSeverityDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   259
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   260
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   261
    * Get source compatibility severity description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   262
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   263
    */
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   264
    const char* SCSeverityDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   265
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   266
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   267
    * Get identity description
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   268
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   269
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   270
    const char* IdentityDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   271
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   272
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   273
    * Get type description
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   274
    * @return description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   275
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   276
    const char* TypeDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   277
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   278
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   279
    * Get ignore information description (information needed for ignoring 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   280
    * the issue)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   281
    * @return information description string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   282
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   283
    const string& IgnoreInformationDescription() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   284
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   285
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   286
    * Get line number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   287
    * @return line number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   288
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   289
    int LineNumber() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   290
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   291
	void SetLineNumber(const int lineNumber);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   292
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   293
    /**
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   294
    * Get compare filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   295
    * @return filename string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   296
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   297
    const string& CompareFileName() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   298
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   299
	/** 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   300
    * Return reson behind the compilation error
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   301
    */ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   302
    const string& CompilationError() const;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   303
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   304
	const bool& LineInfoNeeded();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   305
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   306
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   307
private:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   308
    //! Headerfile where the issue is found from
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   309
    string         iHeaderFile;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   310
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   311
    //! Fully qualified name of the cause
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   312
    string         iFQName;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   313
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   314
    //! ID number of the issua
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   315
    int            iId;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   316
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   317
    //! How severe is the issue found for binary comaptibility
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   318
    TBCSeverity      iBCSeverity;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   319
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   320
    //! How severe is the issue found for source comaptibility
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   321
    TSCSeverity      iSCSeverity;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   322
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   323
    //! Information needed for ignoring the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   324
    string         iIgnoreInformation;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   325
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   326
    //! What was happened in the code
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   327
    TIssueIdentity iIdentityId;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   328
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   329
    //!  type id of the issue
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   330
    TIssueType     iTypeId;	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   331
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   332
    //! Line number
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   333
    int            iLineNumber;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   334
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   335
    //! Compare filename
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   336
    string         iCompareFileName;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   337
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   338
	//! Cause of compilation error
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   339
    string         iCompilationError;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   340
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   341
	bool           iLineNoNeeded;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   342
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   343
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   344
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   345
#endif