7fd59977 |
1 | // File: Message_Messenger.cxx |
2 | // Created: Sat Jan 6 19:47:14 2001 |
3 | // Author: OCC Team |
4 | // Copyright: Open CASCADE S.A. 2005 |
5 | |
6 | #include <Message_Messenger.ixx> |
7 | #include <Message_PrinterOStream.hxx> |
8 | |
9 | //======================================================================= |
10 | //function : Message_Messenger |
11 | //purpose : |
12 | //======================================================================= |
13 | |
14 | Message_Messenger::Message_Messenger () |
15 | { |
16 | AddPrinter ( new Message_PrinterOStream ); |
17 | } |
18 | |
19 | //======================================================================= |
20 | //function : Message_Messenger |
21 | //purpose : |
22 | //======================================================================= |
23 | |
24 | Message_Messenger::Message_Messenger (const Handle(Message_Printer)& thePrinter) |
25 | { |
26 | AddPrinter (thePrinter); |
27 | } |
28 | |
29 | //======================================================================= |
30 | //function : AddPrinter |
31 | //purpose : |
32 | //======================================================================= |
33 | |
34 | Standard_Boolean Message_Messenger::AddPrinter (const Handle(Message_Printer)& thePrinter) |
35 | { |
36 | // check whether printer is already in the list |
37 | for (Standard_Integer i=1; i <= myPrinters.Length(); i++) |
38 | if ( myPrinters(i) == thePrinter ) |
39 | return Standard_False; |
40 | // add to the list |
41 | myPrinters.Append (thePrinter); |
42 | return Standard_True; |
43 | } |
44 | |
45 | //======================================================================= |
46 | //function : RemovePrinter |
47 | //purpose : |
48 | //======================================================================= |
49 | |
50 | Standard_Boolean Message_Messenger::RemovePrinter (const Handle(Message_Printer)& thePrinter) |
51 | { |
52 | // find printer in the list |
53 | for (Standard_Integer i=1; i <= myPrinters.Length(); i++) |
54 | if ( myPrinters(i) == thePrinter ) |
55 | { |
56 | myPrinters.Remove (i); |
57 | return Standard_True; |
58 | } |
59 | return Standard_False; |
60 | } |
61 | |
62 | //======================================================================= |
63 | //function : RemovePrinters |
64 | //purpose : |
65 | //======================================================================= |
66 | |
67 | Standard_Integer Message_Messenger::RemovePrinters (const Handle(Standard_Type)& theType) |
68 | { |
69 | // remove printers from the list |
70 | Standard_Integer nb = 0; |
71 | for (Standard_Integer i=1; i <= myPrinters.Length(); i++) |
72 | if ( myPrinters(i)->IsKind(theType) ) |
73 | { |
74 | myPrinters.Remove (i--); |
75 | nb++; |
76 | } |
77 | return nb; |
78 | } |
79 | |
80 | //======================================================================= |
81 | //function : Send |
82 | //purpose : |
83 | //======================================================================= |
84 | |
85 | void Message_Messenger::Send (const Standard_CString theString, |
86 | const Message_Gravity theGravity, |
87 | const Standard_Boolean putEndl) const |
88 | { |
89 | Standard_Integer nb = myPrinters.Length(); |
90 | for (Standard_Integer i = 1; i <= nb; i++) |
91 | { |
92 | Handle(Message_Printer) aPrinter = Handle(Message_Printer)::DownCast ( myPrinters(i) ); |
93 | if ( ! aPrinter.IsNull() ) |
94 | aPrinter->Send ( theString, theGravity, putEndl ); |
95 | } |
96 | } |
97 | |
98 | //======================================================================= |
99 | //function : Send |
100 | //purpose : |
101 | //======================================================================= |
102 | |
103 | void Message_Messenger::Send (const TCollection_AsciiString& theString, |
104 | const Message_Gravity theGravity, |
105 | const Standard_Boolean putEndl) const |
106 | { |
107 | Standard_Integer nb = myPrinters.Length(); |
108 | for (Standard_Integer i = 1; i <= nb; i++) |
109 | { |
110 | Handle(Message_Printer) aPrinter = Handle(Message_Printer)::DownCast ( myPrinters(i) ); |
111 | if ( ! aPrinter.IsNull() ) |
112 | aPrinter->Send ( theString, theGravity, putEndl ); |
113 | } |
114 | } |
115 | |
116 | //======================================================================= |
117 | //function : Send |
118 | //purpose : |
119 | //======================================================================= |
120 | |
121 | void Message_Messenger::Send (const TCollection_ExtendedString& theString, |
122 | const Message_Gravity theGravity, |
123 | const Standard_Boolean putEndl) const |
124 | { |
125 | Standard_Integer nb = myPrinters.Length(); |
126 | for (Standard_Integer i = 1; i <= nb; i++) |
127 | { |
128 | Handle(Message_Printer) aPrinter = Handle(Message_Printer)::DownCast ( myPrinters(i) ); |
129 | if ( ! aPrinter.IsNull() ) |
130 | aPrinter->Send ( theString, theGravity, putEndl ); |
131 | } |
132 | } |