snl_fei_Broker.hpp

00001 /*--------------------------------------------------------------------*/
00002 /*    Copyright 2005 Sandia Corporation.                              */
00003 /*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
00004 /*    non-exclusive license for use of this work by or on behalf      */
00005 /*    of the U.S. Government.  Export of this program may require     */
00006 /*    a license from the United States Government.                    */
00007 /*--------------------------------------------------------------------*/
00008 
00009 #ifndef _snl_fei_Broker_hpp_
00010 #define _snl_fei_Broker_hpp_
00011 
00012 #include <fei_macros.hpp>
00013 #include <fei_SharedPtr.hpp>
00014 
00015 namespace fei {
00016   class VectorSpace;
00017   class MatrixGraph;
00018   class Vector;
00019   class Matrix;
00020   class LinearSystem;
00021 }//namespace fei
00022 
00023 namespace snl_fei {
00024 
00030   class Broker {
00031   public:
00033     virtual ~Broker(){}
00034 
00044     virtual fei::SharedPtr<fei::Vector> createVector(bool isSolutionVector=false) = 0;
00045 
00048     virtual fei::SharedPtr<fei::Matrix> createMatrix() = 0;
00049 
00052     virtual fei::SharedPtr<fei::LinearSystem> createLinearSystem() = 0;
00053 
00055     virtual void setMatrixGraph(fei::SharedPtr<fei::MatrixGraph> matrixGraph) = 0;
00056   };//class Broker
00057 }//namespace snl_fei
00058 
00059 #endif // _snl_fei_Broker_hpp_

Generated on Wed May 12 21:30:42 2010 for FEI by  doxygen 1.4.7