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

📄 adshyperedge.c

📁 这个工具集提供以下结构化分析和UML分析中所用的图形化绘图工具:ER-diagrams, data and event flow diagrams and state-transition diagr
💻 C
字号:
//////////////////////////////////////////////////////////////////////////////////// This file is part of Toolkit for Conceptual Modeling (TCM).// (c) copyright 2001, Universiteit Twente.// Author: Rik Eshuis (eshuis@cs.utwente.nl).//// TCM is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// TCM is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with TCM; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA// 02111-1307, USA.////////////////////////////////////////////////////////////////////////////////#include "adshyperedge.h"#include "adshypergraph.h"#include "adsproperty.h"#include "adsvariable.h"#include "outputfile.h"#include "adsclockconstraint.h"//#include <stdlib.h> // for NULL only     ADSHyperEdge::ADSHyperEdge(ADSHyperGraph *a, Edge *e): HyperEdge(a,e){  cc=NULL;  edgelist.add(e);  sendevent=NULL;};bool ADSHyperEdge::AddProp(Prop *p){  for (propl.first();!propl.done();propl.next()){    if (*propl.cur()==*p) return False;  }  propl.add(p);  return True;}bool ADSHyperEdge::AddVar(ADSVar *v){  for (varl.first();!varl.done();varl.next()){    if (*varl.cur()==*v) return False;  }  varl.add(v);  return True;}void ADSHyperEdge::GetPropList(List <Prop *> &p){  p=propl;}void ADSHyperEdge::GetVarList(List <ADSVar *> &v){  v=varl;}void ADSHyperEdge::SetClockConstraint(ClockConstraint *c){  cc=c;}ClockConstraint *ADSHyperEdge::GetClockConstraint(){  return cc;}bool ADSHyperEdge::hasClockConstraint(){  return (cc!=NULL);}bool ADSHyperEdge::conflicts(ADSHyperEdge *he){  return conflict.contains(he);}bool ADSHyperEdge::isconflicting(){  return (conflict.count()>0);}void ADSHyperEdge::AddEdges(List <Subject *> l){  for (l.first();!l.done();l.next()){    edgelist.add(l.cur());  }}void ADSHyperEdge::GetEdges(List <Subject *> *l){  for (edgelist.first();!edgelist.done();edgelist.next()){    l->add(edgelist.cur());  }}string ADSHyperEdge::GetUniqueName(){  string str="HE_";   string hid=(unsigned int)GetId();  return str+hid;}void ADSHyperEdge::WriteMembers(OutputFile *f){  (*f) << "HYPEREDGE ID " << GetId() <<"\n";  HyperEdge::WriteMembers(f);  for (propl.first();!propl.done();propl.next()){     (*f) << "\tPRoperty\n";    propl.cur()->Write(f);    (*f) << "\n";  }  (*f) << "Clock constraint\n";  if (cc!=NULL) cc->Write(f);  if (sendevent!=NULL){    (*f) << "\tSEND EVENT:\t";     sendevent->Write(f);    (*f) << "\n";  }  for (inlist.first();!inlist.done();inlist.next()){     (*f) << "INLIST\n\t\t";    inlist.cur()->Write(f);    (*f) << "\n";  }  for (notinlist.first();!notinlist.done();notinlist.next()){     (*f) << "NOT INLIST\n\t\t";    notinlist.cur()->Write(f);    (*f) << "\n";  }  for (edgelist.first();!edgelist.done();edgelist.next()){    (*f) << "\tedge ID:\t" << edgelist.cur()->GetId() << "\n";  }  (*f) << "\n";}void ADSHyperEdge::WriteScreen(){  std::cout << "HYPEREDGE ID " << GetId() <<"\n";  for (propl.first();!propl.done();propl.next()){     std::cout << "\tPRoperty\n";    propl.cur()->Write();    std::cout << "\n";  }}

⌨️ 快捷键说明

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