Public Member Functions | |
| virtual | ~Handleable () |
| virtual RCP< Base > | getRcp ()=0 |
Class Handleable provides an abstract interface for polymorphic conversion from raw pointers to smart pointers. Recall from the Teuchos RefCountPtr documentation that one should never create directly a smart pointer from a raw pointer; rather, smart pointers should be created through a call to rcp(). The type of the argument to rcp() must be known at compile time. This makes the syntax
Handle h = new Derived();
impossible with the straightforward implementation in which Handle takes a raw pointer to a Base. In order to preserve this clean syntax, we require any handles supporting this syntax to take a raw pointer to a Handleable<Base>, where Handleable<Base> provides a getRcp() method which returns the result of a call to rcp() on this.
Definition at line 73 of file PlayaHandleable.hpp.
| virtual Playa::Handleable< Base >::~Handleable | ( | ) | [inline, virtual] |
Virtual dtor
Definition at line 77 of file PlayaHandleable.hpp.
| virtual RCP<Base> Playa::Handleable< Base >::getRcp | ( | ) | [pure virtual] |
Return a safely-created RefCountPtr to the base type
Implemented in Sundance::SumOfIntegrals, Sundance::DiffOp, Sundance::RadialSphericalCoordinateSystem, Sundance::SymbolicFuncElement, Sundance::ExodusWriterFactory, Sundance::HNMesher3D, Sundance::HNMesher2D, Sundance::DiscreteFuncElement, Sundance::MeridionalCylindricalCoordinateSystem, Sundance::ProductExpr, Sundance::BamgMeshReader, Sundance::PartitionedRectangleMesher, Sundance::TriangleMeshReader, Playa::AztecSolver, Sundance::CellVectorExpr, Sundance::Parameter, Sundance::CartesianCoordinateSystem, Sundance::OneTetMesher, Sundance::UnknownParameterElement, Playa::BelosSolver, Sundance::ExplicitFunctionalDerivativeElement, Sundance::TriangleWriterFactory, Sundance::VTKWriterFactory, Sundance::UnaryMinus, Sundance::DiscreteFunctionStub, Sundance::PeanoMesher3D, Playa::AmesosSolver, Playa::DenseLUSolver, Sundance::PeanoMesher2D, Sundance::TestFunctionStub, Sundance::CurveNormExpr, Sundance::SumExpr, Sundance::TestFuncElement, Sundance::CoordExpr, Sundance::QuadratureFamilyStub, Sundance::UnknownFunctionStub, Sundance::ConstantExpr, Sundance::ListExpr, Sundance::UserDefOpElement, Sundance::DSVWriterFactory, Playa::BICGSTABSolver< Scalar >, Sundance::PeriodicLineMesher, Sundance::MatlabWriterFactory, Sundance::UnknownFuncElement, Sundance::ExodusNetCDFMeshReader, Sundance::NonlinearUnaryOp, Sundance::ComplexExpr, Sundance::Derivative, Sundance::PartitionedLineMesher, Sundance::PeanoMeshType2D, Sundance::PeanoMeshType3D, Sundance::HNMeshType2D, Sundance::HNMeshType3D, Sundance::FunctionalPolynomial, Sundance::CellDiameterExpr, Sundance::UserDefOp, Playa::AnasaziEigensolver< Scalar >, Sundance::SumOfBCs, Sundance::ExtrusionMeshTransformation, Sundance::ExodusMeshReader, Sundance::OneTriangleMesher, Sundance::DerivOfSymbFunc, Sundance::BasicSimplicialMeshType, Sundance::MaximalCellSet, Sundance::PeriodicMeshType1D, Sundance::DSVWriter, Sundance::ZeroExpr, Sundance::UnknownParameter, Sundance::VerboseFieldWriter, Sundance::ExodusWriter, Sundance::MatlabWriter, Sundance::TriangleWriter, Playa::PCGSolver, and Sundance::VTKWriter.