Check schema version and perform upgrades if necessary.
84 {
85 mx::DocumentPtr doc = mx::createDocument();
86
87
88 if (pb_doc.has_schema_version()) {
89 uint32_t major = pb_doc.schema_version().major();
90 uint32_t minor = pb_doc.schema_version().minor();
91 uint32_t patch = pb_doc.schema_version().patch();
92
93
95 std::ostringstream oss;
96 oss << "Document schema version " << major << "." << minor << "." << patch
97 << " is newer than supported version "
99 << ". Please upgrade your software.";
100 throw std::runtime_error(oss.str());
101 }
102
103
105 std::cout << "Warning: Upgrading document from version "
106 << major << "." << minor << "." << patch
109
110 }
111 } else {
112
113 std::cout << "Warning: Document has no schema version information. Assuming legacy format." << std::endl;
114 }
115
116 return doc;
117}
constexpr uint32_t SCHEMA_VERSION_MAJOR
Definition materialx_serializer.h:24
constexpr uint32_t SCHEMA_VERSION_PATCH
Definition materialx_serializer.h:26
constexpr uint32_t SCHEMA_VERSION_MINOR
Definition materialx_serializer.h:25