MatrixArbiter.h revision 10448
12SN/A/* Copyright (c) 2012 Massachusetts Institute of Technology
21762SN/A *
32SN/A * Permission is hereby granted, free of charge, to any person obtaining a copy
42SN/A * of this software and associated documentation files (the "Software"), to deal
52SN/A * in the Software without restriction, including without limitation the rights
62SN/A * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
72SN/A * copies of the Software, and to permit persons to whom the Software is
82SN/A * furnished to do so, subject to the following conditions:
92SN/A *
102SN/A * The above copyright notice and this permission notice shall be included in
112SN/A * all copies or substantial portions of the Software.
122SN/A *
132SN/A * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
142SN/A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
152SN/A * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
162SN/A * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
172SN/A * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
182SN/A * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
192SN/A * THE SOFTWARE.
202SN/A */
212SN/A
222SN/A#ifndef __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
232SN/A#define __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
242SN/A
252SN/A#include "util/CommonType.h"
262SN/A#include "model/ElectricalModel.h"
272665Ssaidi@eecs.umich.edu
282665Ssaidi@eecs.umich.edunamespace DSENT
292SN/A{
302SN/A    class MatrixArbiter : public ElectricalModel
312439SN/A    {
322984Sgblack@eecs.umich.edu        public:
33146SN/A            MatrixArbiter(const String& instance_name_, const TechModel* tech_model_);
34146SN/A            virtual ~MatrixArbiter();
35146SN/A
36146SN/A        public:
37146SN/A            // Set a list of properties' name needed to construct model
38146SN/A            void initParameters();
391717SN/A            // Set a list of properties' name needed to construct model
40146SN/A            void initProperties();
411717SN/A
42146SN/A            // Clone and return a new instance
431977SN/A            virtual MatrixArbiter* clone() const;
442623SN/A
452683Sktlim@umich.edu        protected:
461717SN/A            // Build the model
47146SN/A            virtual void constructModel();
482683Sktlim@umich.edu            virtual void propagateTransitionInfo();
493348Sbinkertn@umich.edu
502036SN/A    }; // class MatrixArbiter
51146SN/A} // namespace DSENT
5256SN/A
5356SN/A#endif // __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
5456SN/A
55695SN/A