0028225: MFC sample on OCAF uses old-style definition of a Handle-class
[occt.git] / samples / mfc / standard / 06_Ocaf / src / TOcafFunction_CylDriver.cxx
index c5f2491..44595ed 100755 (executable)
@@ -13,6 +13,7 @@
 #include "TDataStd_Real.hxx"
 #include "TNaming_Builder.hxx"
 
+IMPLEMENT_STANDARD_RTTIEXT (TOcafFunction_CylDriver, TFunction_Driver)
 
 //=======================================================================
 //function : GetID
@@ -39,10 +40,10 @@ TOcafFunction_CylDriver::TOcafFunction_CylDriver()
 //purpose  : Validation of the object label, its arguments and its results.
 //=======================================================================
 
-void TOcafFunction_CylDriver::Validate(TFunction_Logbook& log) const
+void TOcafFunction_CylDriver::Validate(Handle(TFunction_Logbook)& log) const
 {
   // We validate the object label ( Label() ), all the arguments and the results of the object:
-  log.SetValid(Label(), Standard_True);
+  log->SetValid(Label(), Standard_True);
 }
 
 //=======================================================================
@@ -51,19 +52,19 @@ void TOcafFunction_CylDriver::Validate(TFunction_Logbook& log) const
 //         : be invoked. If the object label or an argument is modified,
 //         : we must recompute the object - to call the method Execute().
 //=======================================================================
-Standard_Boolean TOcafFunction_CylDriver::MustExecute(const TFunction_Logbook& log) const
+Standard_Boolean TOcafFunction_CylDriver::MustExecute(const Handle(TFunction_Logbook)& log) const
 {
        // If the object's label is modified:
-  if (log.IsModified(Label())) return Standard_True; 
+  if (log->IsModified(Label())) return Standard_True; 
 
   // Cylinder (in our simple case) has 5 arguments: 
   // 
   // Let's check them:
-  if (log.IsModified(Label().FindChild(1))) return Standard_True; // radius.
-  if (log.IsModified(Label().FindChild(2))) return Standard_True; // height,
-  if (log.IsModified(Label().FindChild(3))) return Standard_True; // x.
-  if (log.IsModified(Label().FindChild(4))) return Standard_True; // y,
-  if (log.IsModified(Label().FindChild(5))) return Standard_True; // z.
+  if (log->IsModified(Label().FindChild(1))) return Standard_True; // radius.
+  if (log->IsModified(Label().FindChild(2))) return Standard_True; // height,
+  if (log->IsModified(Label().FindChild(3))) return Standard_True; // x.
+  if (log->IsModified(Label().FindChild(4))) return Standard_True; // y,
+  if (log->IsModified(Label().FindChild(5))) return Standard_True; // z.
   
  // if there are no any modifications concerned the Cyl,
   // it's not necessary to recompute (to call the method Execute()):
@@ -81,7 +82,7 @@ Standard_Boolean TOcafFunction_CylDriver::MustExecute(const TFunction_Logbook& l
 //         : if there are no any mistakes occurred we return 0:
 //         : 0 - no mistakes were found.
 //=======================================================================
-Standard_Integer TOcafFunction_CylDriver::Execute(TFunction_Logbook& log) const
+Standard_Integer TOcafFunction_CylDriver::Execute(Handle(TFunction_Logbook)& /*log*/) const
 {
        // Get the values of dimension and position attributes 
        Handle(TDataStd_Real) TSR;
@@ -113,57 +114,3 @@ Standard_Integer TOcafFunction_CylDriver::Execute(TFunction_Logbook& log) const
   // If there are no any mistakes we return 0:
   return 0;
 }
-
-TOcafFunction_CylDriver::~TOcafFunction_CylDriver() {}
-
-
-Standard_EXPORT Handle_Standard_Type& TOcafFunction_CylDriver_Type_()
-{
-
-    static Handle_Standard_Type aType1 = STANDARD_TYPE(TFunction_Driver);
-  if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TFunction_Driver);
-  static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
-  if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared);
-  static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
-  if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient);
-
-  static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
-  static Handle_Standard_Type _aType = new Standard_Type("TOcafFunction_CylDriver",
-                                                        sizeof(TOcafFunction_CylDriver),
-                                                        1,
-                                                        (Standard_Address)_Ancestors,
-                                                        (Standard_Address)NULL);
-
-  return _aType;
-}
-
-
-// DownCast method
-//   allow safe downcasting
-//
-const Handle(TOcafFunction_CylDriver) Handle(TOcafFunction_CylDriver)::DownCast(const Handle(Standard_Transient)& AnObject) 
-{
-  Handle(TOcafFunction_CylDriver) _anOtherObject;
-
-  if (!AnObject.IsNull()) {
-     if (AnObject->IsKind(STANDARD_TYPE(TOcafFunction_CylDriver))) {
-       _anOtherObject = Handle(TOcafFunction_CylDriver)((Handle(TOcafFunction_CylDriver)&)AnObject);
-     }
-  }
-
-  return _anOtherObject ;
-}
-const Handle(Standard_Type)& TOcafFunction_CylDriver::DynamicType() const 
-{ 
-  return STANDARD_TYPE(TOcafFunction_CylDriver) ; 
-}
-Standard_Boolean TOcafFunction_CylDriver::IsKind(const Handle(Standard_Type)& AType) const 
-{ 
-  return (STANDARD_TYPE(TOcafFunction_CylDriver) == AType || TFunction_Driver::IsKind(AType)); 
-}
-
-Handle_TOcafFunction_CylDriver::~Handle_TOcafFunction_CylDriver() {}
-
-