0029640: OCAF - add information on replacement of CDM_MessageDriver in upgrade guide.
[occt.git] / dox / dev_guides / upgrade / upgrade.md
index 7be56a1..e1ad90f 100644 (file)
@@ -1564,3 +1564,15 @@ The API classes in the package BRepAlgo providing access to old Boolean operatio
 * BRepAlgo_Cut
 * BRepAlgo_Section
 Corresponding classes from the package BRepAlgoAPI should be used instead.
+
+@subsection upgrade_730_replace_CDM_MessageDriver_interface_by_Message_Messenger Unification of the Error/Warning reporting system of Application Framework
+
+Class *CDM_MessageDriver* and its descendants have been removed; class *Message_Messenger* is used instead in all OCAF packages.
+By default, messenger returned by *Message::DefaultMessenger()* is used, thus all messages generated by OCAF are directed in the common message queue of OCCT.
+
+In classes implementing OCAF persistence for custom attributes (those inheriting from *BinMDF_ADriver*, *XmlMDF_ADriver*), uses of method *WriteMessage()* should be replaced by call to method *Send()* of the inherited field *myMessageDriver*. Note that this method takes additional argument indicating the gravity of the message (Trace, Info, Warning, Alarm, or Fail).
+
+Class *Message_PrinterOStream* can be used instead of *CDM_COutMessageDriver* to direct all messages to a stream.
+If custom driver class is used in the application, that class shall be reimplemented inheriting from *Message_Printer* instead of *CDM_MessageDriver*.
+Method *Send()* should be redefined instead of method *Write()* of *CDM_MessageDriver*.
+To use the custom printer in OCAF, it can be either added to default messenger or set into the custom *Message_Messenger* object created in the method *MessageDriver()* of a class inheriting *CDF_Application*.