Loading...
Searching...
No Matches
conditionalAbortDiagnosticDelegate.h
1//
2// Copyright 2020 Pixar
3//
4// Licensed under the Apache License, Version 2.0 (the "Apache License")
5// with the following modification; you may not use this file except in
6// compliance with the Apache License and the following modification to it:
7// Section 6. Trademarks. is deleted and replaced with:
8//
9// 6. Trademarks. This License does not grant permission to use the trade
10// names, trademarks, service marks, or product names of the Licensor
11// and its affiliates, except as required to comply with Section 4(c) of
12// the License and to reproduce the content of the NOTICE file.
13//
14// You may obtain a copy of the Apache License at
15//
16// http://www.apache.org/licenses/LICENSE-2.0
17//
18// Unless required by applicable law or agreed to in writing, software
19// distributed under the Apache License with the above modification is
20// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21// KIND, either express or implied. See the Apache License for the specific
22// language governing permissions and limitations under the Apache License.
23//
24#ifndef PXR_USD_USD_UTILS_CONDITIONAL_ABORT_DIAGNOSTIC_DELEGATE_H
25#define PXR_USD_USD_UTILS_CONDITIONAL_ABORT_DIAGNOSTIC_DELEGATE_H
26
27#include "pxr/pxr.h"
28#include "pxr/usd/usdUtils/api.h"
30
31#include <string>
32#include <vector>
33
34PXR_NAMESPACE_OPEN_SCOPE
35
37
45{
46public:
48 USDUTILS_API
50 const std::vector<std::string>& stringFilters,
51 const std::vector<std::string>& codePathFilters);
52
53 const std::vector<std::string>& GetStringFilters() const {
54 return _stringFilters;
55 };
56
57 const std::vector<std::string>& GetCodePathFilters() const {
58 return _codePathFilters;
59 }
60
61 USDUTILS_API
62 void SetStringFilters(const std::vector<std::string>& stringFilters);
63 USDUTILS_API
64 void SetCodePathFilters(const std::vector<std::string>& codePathFilters);
65private:
66 std::vector<std::string> _stringFilters;
67 std::vector<std::string> _codePathFilters;
68};
69
98{
99public:
100
105 USDUTILS_API
108 includeFilters,
110 excludeFilters);
111
113 USDUTILS_API
115
118 const UsdUtilsConditionalAbortDiagnosticDelegate& delegate) = delete;
120 const UsdUtilsConditionalAbortDiagnosticDelegate& delegate) = delete;
121
122 // Interface overrides
123 void IssueError(const TfError& err) override;
124 void IssueWarning(const TfWarning& warning) override;
125 void IssueFatalError(const TfCallContext &ctx,
126 const std::string &msg) override;
127 // Following will be no-ops for our purposes - prints same message as
128 // DiagnosticMgr
129 void IssueStatus(const TfStatus& status) override;
130
131private:
132
133 const std::vector<TfPatternMatcher> _includePatternStringFilters;
134 const std::vector<TfPatternMatcher> _includePatternCodePathFilters;
135 const std::vector<TfPatternMatcher> _excludePatternStringFilters;
136 const std::vector<TfPatternMatcher> _excludePatternCodePathFilters;
137
138protected:
141 virtual bool _RuleMatcher(const TfDiagnosticBase& err,
142 const std::vector<TfPatternMatcher>& stringPatternFilters,
143 const std::vector<TfPatternMatcher>& codePathPatternFilters);
144};
145
146
147PXR_NAMESPACE_CLOSE_SCOPE
148
149#endif
Represents the base class of an object representing a diagnostic message.
One may set a delegate with the TfDiagnosticMgr which will be called to respond to errors and diagnos...
Represents an object that contains error information.
Definition: error.h:49
Class for matching regular expressions.
Represents an object that contains information about a status message.
Definition: status.h:45
Represents an object that contains information about a warning.
Definition: warning.h:45
A class which represents the inclusion exclusion filters on which errors will be matched stringFilter...
A class that allows client application to instantiate a diagnostic delegate that can be used to abort...
virtual USDUTILS_API ~UsdUtilsConditionalAbortDiagnosticDelegate()
Handles the removal of this delegate from TfDiagnosticMgr.
virtual bool _RuleMatcher(const TfDiagnosticBase &err, const std::vector< TfPatternMatcher > &stringPatternFilters, const std::vector< TfPatternMatcher > &codePathPatternFilters)
Helper to match err against a given set of errorFilters A client can override this to affect the beha...
USDUTILS_API UsdUtilsConditionalAbortDiagnosticDelegate(const UsdUtilsConditionalAbortDiagnosticDelegateErrorFilters &includeFilters, const UsdUtilsConditionalAbortDiagnosticDelegateErrorFilters &excludeFilters)
Constructor to initialize conditionalAbortDiagnosticDelegate.
void IssueStatus(const TfStatus &status) override
Called when a TF_STATUS() is issued.
void IssueFatalError(const TfCallContext &ctx, const std::string &msg) override
Called when a TF_FATAL_ERROR is issued (or a failed TF_AXIOM).
void IssueError(const TfError &err) override
Called when a TfError is posted.
void IssueWarning(const TfWarning &warning) override
Called when a TF_WARNING() is issued.