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 
34 PXR_NAMESPACE_OPEN_SCOPE
35 
36 class TfPatternMatcher;
37 
45 {
46 public:
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);
65 private:
66  std::vector<std::string> _stringFilters;
67  std::vector<std::string> _codePathFilters;
68 };
69 
98 {
99 public:
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 
131 private:
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 
138 protected:
141  virtual bool _RuleMatcher(const TfDiagnosticBase& err,
142  const std::vector<TfPatternMatcher>& stringPatternFilters,
143  const std::vector<TfPatternMatcher>& codePathPatternFilters);
144 };
145 
146 
147 PXR_NAMESPACE_CLOSE_SCOPE
148 
149 #endif
void IssueStatus(const TfStatus &status) override
Called when a TF_STATUS() is issued.
virtual USDUTILS_API ~UsdUtilsConditionalAbortDiagnosticDelegate()
Handles the removal of this delegate from TfDiagnosticMgr.
void IssueError(const TfError &err) override
Called when a TfError is posted.
Represents the base class of an object representing a diagnostic message.
void IssueFatalError(const TfCallContext &ctx, const std::string &msg) override
Called when a TF_FATAL_ERROR is issued (or a failed TF_AXIOM).
Represents an object that contains information about a status message.
Definition: status.h:44
Represents an object that contains error information.
Definition: error.h:49
void IssueWarning(const TfWarning &warning) override
Called when a TF_WARNING() is issued.
Class for matching regular expressions.
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...
A class that allows client application to instantiate a diagnostic delegate that can be used to abort...
Represents an object that contains information about a warning.
Definition: warning.h:44
One may set a delegate with the TfDiagnosticMgr which will be called to respond to errors and diagnos...
A class which represents the inclusion exclusion filters on which errors will be matched stringFilter...