0031313: Foundation Classes - Dump improvement for classes
[occt.git] / src / CDM / CDM_Application.cxx
1 // Created on: 1997-10-22
2 // Created by: Jean-Louis Frenkel
3 // Copyright (c) 1997-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17
18 #include <CDM_Application.hxx>
19 #include <CDM_Document.hxx>
20 #include <CDM_MetaData.hxx>
21 #include <CDM_Reference.hxx>
22 #include <Resource_Manager.hxx>
23 #include <Standard_Dump.hxx>
24 #include <Standard_Type.hxx>
25 #include <TCollection_ExtendedString.hxx>
26 #include <Message.hxx>
27 #include <Message_Messenger.hxx>
28
29 IMPLEMENT_STANDARD_RTTIEXT(CDM_Application,Standard_Transient)
30
31 //=======================================================================
32 //function : SetDocumentVersion
33 //purpose  : 
34 //=======================================================================
35 void CDM_Application::SetDocumentVersion
36                         (const Handle(CDM_Document)& aDocument,
37                          const Handle(CDM_MetaData)& aMetaData) const
38 {
39   aDocument->SetModifications(aMetaData->DocumentVersion(this));
40 }
41
42 //=======================================================================
43 //function : SetReferenceCounter
44 //purpose  : 
45 //=======================================================================
46
47 void CDM_Application::SetReferenceCounter
48                         (const Handle(CDM_Document)& aDocument,
49                          const Standard_Integer aReferenceCounter)
50 {
51   aDocument->SetReferenceCounter(aReferenceCounter);
52 }
53
54 //=======================================================================
55 //function : MessageDriver
56 //purpose  : 
57 //=======================================================================
58
59 Handle(Message_Messenger) CDM_Application::MessageDriver()
60 {
61   static Handle(Message_Messenger) theMessenger;
62   if(theMessenger.IsNull()) 
63     theMessenger = Message::DefaultMessenger();
64   return theMessenger;
65 }
66
67 //=======================================================================
68 //function : Write
69 //purpose  : 
70 //=======================================================================
71
72 void CDM_Application::Write(const Standard_ExtString aString)
73 {
74   MessageDriver()->Send(aString);
75 }
76
77 //=======================================================================
78 //function : BeginOfUpdate
79 //purpose  : 
80 //=======================================================================
81
82 void CDM_Application::BeginOfUpdate (const Handle(CDM_Document)& aDocument)
83 {
84   TCollection_ExtendedString updating("Updating:");
85   updating+=aDocument->Presentation();
86   Write(updating.ToExtString());
87 }
88
89 //=======================================================================
90 //function : EndOfUpdate
91 //purpose  : 
92 //=======================================================================
93
94 void CDM_Application::EndOfUpdate
95                         (const Handle(CDM_Document)&       aDocument,
96                          const Standard_Boolean            theStatus,
97                          const TCollection_ExtendedString& /*ErrorString*/)
98 {
99   TCollection_ExtendedString message;
100   if (theStatus)
101     message="Updated:";
102   else
103     message="Error during updating:";
104       
105   message+=aDocument->Presentation();
106   Write(message.ToExtString());
107 }
108
109 //=======================================================================
110 //function : Name
111 //purpose  : returns the application name
112 //=======================================================================
113
114 TCollection_ExtendedString CDM_Application::Name() const
115 {
116   // Default: empty
117   return TCollection_ExtendedString();
118 }
119
120 //=======================================================================
121 //function : Version
122 //purpose  : returns the application version
123 //=======================================================================
124
125 TCollection_AsciiString CDM_Application::Version() const
126 {
127   // Default: empty
128   return TCollection_AsciiString();
129 }
130
131 //=======================================================================
132 //function : DumpJson
133 //purpose  : 
134 //=======================================================================
135 void CDM_Application::DumpJson (Standard_OStream& theOStream, Standard_Integer /*theDepth*/) const
136 {
137   OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
138 }