0026377: Passing Handle objects as arguments to functions as non-const reference...
[occt.git] / src / IFSelect / IFSelect_Activator.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 4e45001..d25787c
@@ -1,39 +1,38 @@
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
 //
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
+// This file is part of Open CASCADE Technology software library.
 //
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
 //
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-#include <IFSelect_Activator.ixx>
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+
 #include <Dico_DictionaryOfInteger.hxx>
 #include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <TColStd_SequenceOfInteger.hxx>
-#include <TColStd_SequenceOfTransient.hxx>
+#include <IFSelect_Activator.hxx>
+#include <IFSelect_SessionPilot.hxx>
+#include <Interface_Macros.hxx>
+#include <MoniTool_Option.hxx>
+#include <MoniTool_Profile.hxx>
 #include <Standard_DomainError.hxx>
-
-#include <IFSelect_Profile.hxx>
-#include <IFSelect_Option.hxx>
+#include <Standard_Type.hxx>
+#include <TCollection_AsciiString.hxx>
 #include <TCollection_HAsciiString.hxx>
+#include <TColStd_SequenceOfInteger.hxx>
+#include <TColStd_SequenceOfTransient.hxx>
 
-#include <Interface_Macros.hxx>
-
+IMPLEMENT_STANDARD_RTTIEXT(IFSelect_Activator,MMgt_TShared)
 
 static Handle(Dico_DictionaryOfInteger) thedico; // = new Dico_DictionaryOfInteger;
 static TColStd_SequenceOfInteger   thenums, themodes;
 static TColStd_SequenceOfTransient theacts;
 
-static Handle(IFSelect_Profile) thealiases;
+static Handle(MoniTool_Profile) thealiases;
 
 
     void IFSelect_Activator::Adding
@@ -46,7 +45,7 @@ static Handle(IFSelect_Profile) thealiases;
   if (thedico.IsNull()) thedico = new Dico_DictionaryOfInteger;
   Standard_Integer& num = thedico->NewItem(command,deja,Standard_True);
   if (deja) {
-#ifdef DEB
+#ifdef OCCT_DEBUG
     cout<<"****  XSTEP commands, name conflict on "<<command<<" first defined remains  ****"<<endl;
 //    Standard_DomainError::Raise("IFSelect_Activator : Add");
 #endif
@@ -65,7 +64,6 @@ static Handle(IFSelect_Profile) thealiases;
   (const Standard_Integer number, const Standard_CString command) const
       {  Adding (this,number,command,1);  }
 
-
     void IFSelect_Activator::Remove (const Standard_CString command)
       {  thedico->RemoveItem(command);  }
 
@@ -80,10 +78,10 @@ static Handle(IFSelect_Profile) thealiases;
   (const Standard_CString conf,
    const Standard_CString command, const Standard_CString alias)
 {
-  if (thealiases.IsNull()) thealiases = new IFSelect_Profile;
-  Handle(IFSelect_Option) opt = thealiases->Option(command);
+  if (thealiases.IsNull()) thealiases = new MoniTool_Profile;
+  Handle(MoniTool_Option) opt = thealiases->Option(command);
   if (opt.IsNull()) {
-    opt = new IFSelect_Option(STANDARD_TYPE(TCollection_HAsciiString),command);
+    opt = new MoniTool_Option(STANDARD_TYPE(TCollection_HAsciiString),command);
     thealiases->AddOption (opt);
   }
   opt->Add (conf,new TCollection_HAsciiString(alias));
@@ -102,9 +100,12 @@ static Handle(IFSelect_Profile) thealiases;
 {
   TCollection_AsciiString str;
   if (thealiases.IsNull()) return str;
-  Handle(TCollection_HAsciiString) val;
-  if (!thealiases->Value(command,val)) return str;
-  str.AssignCat (val->ToCString());
+  Handle(Standard_Transient) aVal;
+  if (!thealiases->Value(command,aVal)) return str;
+  Handle(TCollection_HAsciiString) val =
+    Handle(TCollection_HAsciiString)::DownCast (aVal);
+  if (!val.IsNull())
+    str.AssignCat (val->ToCString());
   return str;
 }