| 1 | // Created on: 2001-01-06 |
| 2 | // Created by: OCC Team |
| 3 | // Copyright (c) 2001-2014 OPEN CASCADE SAS |
| 4 | // |
| 5 | // This file is part of Open CASCADE Technology software library. |
| 6 | // |
| 7 | // This library is free software; you can redistribute it and/or modify it under |
| 8 | // the terms of the GNU Lesser General Public License version 2.1 as published |
| 9 | // by the Free Software Foundation, with special exception defined in the file |
| 10 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
| 11 | // distribution for complete text of the license and disclaimer of any warranty. |
| 12 | // |
| 13 | // Alternatively, this file may be used under the terms of Open CASCADE |
| 14 | // commercial license or contractual agreement. |
| 15 | |
| 16 | #include <Message_Messenger.ixx> |
| 17 | #include <Message_PrinterOStream.hxx> |
| 18 | |
| 19 | //======================================================================= |
| 20 | //function : Message_Messenger |
| 21 | //purpose : |
| 22 | //======================================================================= |
| 23 | |
| 24 | Message_Messenger::Message_Messenger () |
| 25 | { |
| 26 | AddPrinter ( new Message_PrinterOStream ); |
| 27 | } |
| 28 | |
| 29 | //======================================================================= |
| 30 | //function : Message_Messenger |
| 31 | //purpose : |
| 32 | //======================================================================= |
| 33 | |
| 34 | Message_Messenger::Message_Messenger (const Handle(Message_Printer)& thePrinter) |
| 35 | { |
| 36 | AddPrinter (thePrinter); |
| 37 | } |
| 38 | |
| 39 | //======================================================================= |
| 40 | //function : AddPrinter |
| 41 | //purpose : |
| 42 | //======================================================================= |
| 43 | |
| 44 | Standard_Boolean Message_Messenger::AddPrinter (const Handle(Message_Printer)& thePrinter) |
| 45 | { |
| 46 | // check whether printer is already in the list |
| 47 | for (Standard_Integer i=1; i <= myPrinters.Length(); i++) |
| 48 | if ( myPrinters(i) == thePrinter ) |
| 49 | return Standard_False; |
| 50 | // add to the list |
| 51 | myPrinters.Append (thePrinter); |
| 52 | return Standard_True; |
| 53 | } |
| 54 | |
| 55 | //======================================================================= |
| 56 | //function : RemovePrinter |
| 57 | //purpose : |
| 58 | //======================================================================= |
| 59 | |
| 60 | Standard_Boolean Message_Messenger::RemovePrinter (const Handle(Message_Printer)& thePrinter) |
| 61 | { |
| 62 | // find printer in the list |
| 63 | for (Standard_Integer i=1; i <= myPrinters.Length(); i++) |
| 64 | if ( myPrinters(i) == thePrinter ) |
| 65 | { |
| 66 | myPrinters.Remove (i); |
| 67 | return Standard_True; |
| 68 | } |
| 69 | return Standard_False; |
| 70 | } |
| 71 | |
| 72 | //======================================================================= |
| 73 | //function : RemovePrinters |
| 74 | //purpose : |
| 75 | //======================================================================= |
| 76 | |
| 77 | Standard_Integer Message_Messenger::RemovePrinters (const Handle(Standard_Type)& theType) |
| 78 | { |
| 79 | // remove printers from the list |
| 80 | Standard_Integer nb = 0; |
| 81 | for (Standard_Integer i=1; i <= myPrinters.Length(); i++) |
| 82 | if ( myPrinters(i)->IsKind(theType) ) |
| 83 | { |
| 84 | myPrinters.Remove (i--); |
| 85 | nb++; |
| 86 | } |
| 87 | return nb; |
| 88 | } |
| 89 | |
| 90 | //======================================================================= |
| 91 | //function : Send |
| 92 | //purpose : |
| 93 | //======================================================================= |
| 94 | |
| 95 | void Message_Messenger::Send (const Standard_CString theString, |
| 96 | const Message_Gravity theGravity, |
| 97 | const Standard_Boolean putEndl) const |
| 98 | { |
| 99 | Standard_Integer nb = myPrinters.Length(); |
| 100 | for (Standard_Integer i = 1; i <= nb; i++) |
| 101 | { |
| 102 | Handle(Message_Printer) aPrinter = Handle(Message_Printer)::DownCast ( myPrinters(i) ); |
| 103 | if ( ! aPrinter.IsNull() ) |
| 104 | aPrinter->Send ( theString, theGravity, putEndl ); |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | //======================================================================= |
| 109 | //function : Send |
| 110 | //purpose : |
| 111 | //======================================================================= |
| 112 | |
| 113 | void Message_Messenger::Send (const TCollection_AsciiString& theString, |
| 114 | const Message_Gravity theGravity, |
| 115 | const Standard_Boolean putEndl) const |
| 116 | { |
| 117 | Standard_Integer nb = myPrinters.Length(); |
| 118 | for (Standard_Integer i = 1; i <= nb; i++) |
| 119 | { |
| 120 | Handle(Message_Printer) aPrinter = Handle(Message_Printer)::DownCast ( myPrinters(i) ); |
| 121 | if ( ! aPrinter.IsNull() ) |
| 122 | aPrinter->Send ( theString, theGravity, putEndl ); |
| 123 | } |
| 124 | } |
| 125 | |
| 126 | //======================================================================= |
| 127 | //function : Send |
| 128 | //purpose : |
| 129 | //======================================================================= |
| 130 | |
| 131 | void Message_Messenger::Send (const TCollection_ExtendedString& theString, |
| 132 | const Message_Gravity theGravity, |
| 133 | const Standard_Boolean putEndl) const |
| 134 | { |
| 135 | Standard_Integer nb = myPrinters.Length(); |
| 136 | for (Standard_Integer i = 1; i <= nb; i++) |
| 137 | { |
| 138 | Handle(Message_Printer) aPrinter = Handle(Message_Printer)::DownCast ( myPrinters(i) ); |
| 139 | if ( ! aPrinter.IsNull() ) |
| 140 | aPrinter->Send ( theString, theGravity, putEndl ); |
| 141 | } |
| 142 | } |