⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgraph.h

📁 TGFF省城程序
💻 H
字号:
// Copyright 2000 by Keith Vallerio, David Rhodes, and Robert Dick.// All rights reserved.#ifndef P_GRAPH_H_#define P_GRAPH_H_/*###########################################################################*/#include "RVector.h"#include "TG.h"#include <string>#include <iosfwd>class ResourceInstance;class Resource;// --------------------------------------------------------------------------class ResourceAttrib {	friend class Resource;	friend class PGraph;	friend double com_possible(std::string aname, double t1, double t2,							   rstd::RVector<ResourceInstance> &coms,							   rstd::RVector<Resource> &com_types,							   double arc_fill_factor);private:	ResourceAttrib	(std::string nm, double v) : name_(nm), value_(v) {};	std::string  name_;	double value_;};class ResourceUse {	friend class ResourceInstance;	friend class PGraph;	friend ResourceUse *NextToStart(double t, rstd::RVector<ResourceUse>& ruv);	friend double com_possible(std::string aname, double t1, double t2,							   rstd::RVector<ResourceInstance> &coms,							   rstd::RVector<Resource> &com_types,							   double arc_fill_factor);private:	ResourceUse	(std::string nm, double start, double end)					: name_(nm), ts_(start), te_(end) {};	std::string	name_;	double	ts_, te_;	void print_to(std::ostream &os) const;	friend std::ostream &operator<<(std::ostream &os, /**/const ResourceUse &ru)	  {ru.print_to(os); return os;}};class Resource {	friend class ResourceInstance;	friend class PGraph;private:	std::string					name_;	rstd::RVector<ResourceAttrib>	attrib_;	rstd::RVector<double>			exec_time_;	// for PE resources only	void print_to(std::ostream &os) const;	friend std::ostream &operator<<(std::ostream &os, /**/ const Resource &r)	  {r.print_to(os); return os;}public:	ResourceAttrib& GetAttrib(std::string s);	void SetAttrib(std::string s, double v);};class ResourceInstance {	friend class PGraph;	friend double com_possible(std::string aname, double t1, double t2,							   rstd::RVector<ResourceInstance> &coms,							   rstd::RVector<Resource> &com_types,							   double arc_fill_factor);private:	ResourceInstance(std::string nm, unsigned r, double tf)					: name_(nm), resource_indx_(r), time_frame_(tf), ru_() {};	std::string					name_;	unsigned				resource_indx_;	double					time_frame_;	rstd::RVector<ResourceUse>	ru_;	void print_to(std::ostream &os) const;	friend std::ostream &operator<<(std::ostream &os,const ResourceInstance &ri)	  {ri.print_to(os); return os;}};/*###########################################################################*/class PGraph {public:	PGraph(	std::ostream &eps_out,			int	   num_task_graphs,			int	   avg_tasks_per_pe,			double avg_task_time,	/* PE STUFF */			double mul_task_time,			double task_slack,			double task_round,			int    num_pe_types,			int    num_pe_soln,			int    num_com_types,	/* COM STUFF */			int    num_com_soln,			double arc_fill_factor);	void print_to(std::ostream &os) const;	void print_to_ps(std::ostream &os, const std::string & filename) const;	double h_period() const {return h_period_;}private:	rstd::RVector<Resource>			pe_;	rstd::RVector<ResourceInstance>	pe_soln_;	rstd::RVector<Resource>			com_;	rstd::RVector<ResourceInstance>	com_soln_;	rstd::RVector<int>				arc_data_size_;	rstd::RVector<TG>				dag_; 	double						cost_of_soln_;	double h_period_;		// only non-periodic now, keep for future};/*###########################################################################*/#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -