HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
serialization.h
Go to the documentation of this file.
1 //
2 // Copyright 2018 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 
8 #ifndef PXR_BASE_TRACE_SERIALIZATION_H
9 #define PXR_BASE_TRACE_SERIALIZATION_H
10 
11 #include "pxr/pxr.h"
12 #include "pxr/base/trace/api.h"
14 
15 #include <iosfwd>
16 #include <memory>
17 #include <vector>
18 
20 
21 ////////////////////////////////////////////////////////////////////////////////
22 /// \class TraceSerialization
23 ///
24 /// This class contains methods to read and write TraceCollection.
25 ///
27 public:
28  /// Writes \p col to \p ostr.
29  /// Returns true if the write was successful, false otherwise.
30  TRACE_API static bool Write(std::ostream& ostr,
31  const std::shared_ptr<TraceCollection>& col);
32 
33  /// Writes \p collections to \p ostr.
34  /// Returns true if the write was successful, false otherwise.
35  TRACE_API static bool Write(
36  std::ostream& ostr,
37  const std::vector<std::shared_ptr<TraceCollection>>& collections);
38 
39  /// Tries to create a TraceCollection from the contexts of \p istr.
40  /// Returns a pointer to the created collection if it was successful.
41  /// If there is an error reading \p istr, \p error will be populated with a
42  /// description.
43  TRACE_API static std::unique_ptr<TraceCollection> Read(std::istream& istr,
44  std::string* error = nullptr);
45 };
46 
48 
49 #endif // PXR_BASE_TRACE_SERIALIZATION_H
static TRACE_API std::unique_ptr< TraceCollection > Read(std::istream &istr, std::string *error=nullptr)
static TRACE_API bool Write(std::ostream &ostr, const std::shared_ptr< TraceCollection > &col)
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
< returns > If no error
Definition: snippets.dox:2
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
#define TRACE_API
Definition: api.h:23