Loading files
3d097a032This file is pinned to the selected release. Download the original to open it in your design tool.
// Created on: 1999-07-19
// Created by: Denis PASCAL
// Copyright (c) 1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// 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.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _TFunction_Driver_HeaderFile
#define _TFunction_Driver_HeaderFile
#include <Standard.hxx>
#include <Standard_Transient.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <TDF_Label.hxx>
#include <NCollection_List.hxx>
class TFunction_Logbook;
//! This driver class provide services around function
//! execution. One instance of this class is built for
//! the whole session. The driver is bound to the
//! DriverGUID in the DriverTable class.
//! It allows you to create classes which inherit from
//! this abstract class.
//! These subclasses identify the various algorithms
//! which can be applied to the data contained in the
//! attributes of sub-labels of a model.
//! A single instance of this class and each of its
//! subclasses is built for the whole session.
class TFunction_Driver : public Standard_Transient
{
public:
//! Initializes the label L for this function prior to its execution.
Standard_EXPORT void Init(const TDF_Label& L);
//! Returns the label of the driver for this function.
TDF_Label Label() const;
//! Validates labels of a function in <log>.
//! This function is the one initialized in this function driver.
//! Warning
//! In regeneration mode, the solver must call this
//! method even if the function is not executed.
//! execution of function
//! =====================
Standard_EXPORT virtual void Validate(const occ::handle<TFunction_Logbook>& log) const;
//! Analyzes the labels in the logbook log.
//! Returns true if attributes have been modified.
//! If the function label itself has been modified, the function must be executed.
Standard_EXPORT virtual bool MustExecute(const occ::handle<TFunction_Logbook>& log) const;
//! Executes the function in this function driver and
//! puts the impacted labels in the logbook log.
//! arguments & results of functions
//! ================================
Standard_EXPORT virtual int Execute(occ::handle<TFunction_Logbook>& log) const = 0;
//! The method fills-in the list by labels,
//! where the arguments of the function are located.
Standard_EXPORT virtual void Arguments(NCollection_List<TDF_Label>& args) const;
//! The method fills-in the list by labels,
//! where the results of the function are located.
Standard_EXPORT virtual void Results(NCollection_List<TDF_Label>& res) const;
DEFINE_STANDARD_RTTIEXT(TFunction_Driver, Standard_Transient)
protected:
//! initialisation of the driver
//! ============================
Standard_EXPORT TFunction_Driver();
private:
TDF_Label myLabel;
};
#include <TFunction_Driver.lxx>
#endif // _TFunction_Driver_HeaderFile