43#ifndef RTOP_SERVER_HPP
44#define RTOP_SERVER_HPP
56 const Teuchos::RCP<Teuchos::AbstractFactory<RTOpPack::RTOpT<Scalar> > > &op_factory
60 op_factories_[op_factory->create()->op_name()] = op_factory;
64Teuchos::RCP<Teuchos::AbstractFactory<RTOpPack::RTOpT<Scalar> > >
67 typename op_factories_t::const_iterator itr = op_factories_.find(op_name);
68 TEUCHOS_TEST_FOR_EXCEPTION(
69 itr == op_factories_.end(), std::logic_error
70 ,
"RTOpServer<Scalar>::get_op_factory(...): Error, an operator factory with the "
71 "operator name \'" << op_name <<
"\' does not exist!"
81 o <<
"\nRTOpServer<Scalar>::print_op_factories(...): RTOp operator factories currently registered\n\n" << std::left;
82 o << setw(w) <<
"Operator name" <<
"Operator type" << std::endl;
83 o << setw(w) <<
"-------------" <<
"-------------" << std::endl;
84 for(
typename op_factories_t::const_iterator itr = op_factories_.begin(); itr != op_factories_.end(); ++itr ) {
85 o << setw(w) << itr->first << typeName(*itr->second->create()) << std::endl;
Server for creating RTOpT objects given just the operators name.
void add_op_factory(const Teuchos::RCP< Teuchos::AbstractFactory< RTOpPack::RTOpT< Scalar > > > &op_factory)
Add a new abstract factory for an RTOpT operator.