efpip_pru.C
#include <stream.h>
#include <block.h>
#include <strio.h>
#include "all.h"
#include "new_ents.h"
main(int argc,char ** argv)
{
efa * efa1 = new efa("efa1");
block * pcells1 = new block("pcells1");
for (int i= 3;i>=0;i--)
for (int j= 0;j>=0;j--)
pcells1->add(new pcell(name_gen("pcell",i,j)
,new addrclass(i,j),3)) ;
pcells1->set_top_block();
pcells1->add_coupling("out","in");
efa1->add(pcells1);
ef * ef1 = new ef("ef1") ;
adgenr * adgenr1 = new adgenr("adgenr1",10);
Note: constructors must be hand taylored
ef1->add(adgenr1); transd * transd1 = new transd("transd1",100); ef1->add(transd1);
pcells1->add_coupling("finalout",ef1,"in");
Note: block output coupling was relocated to occur after ef1
adgenr1->add_coupling(adgenr1,"out",transd1,"ariv"); adgenr1->add_coupling(adgenr1,"out",ef1,"out");
transd1->add_coupling(transd1,"out",ef1,"result"); transd1->add_coupling(transd1,"out",adgenr1,"stop");
ef1->add_coupling(ef1,"start",adgenr1,"start"); ef1->add_coupling(ef1,"in",transd1,"solved");
efa1->add(ef1); pcells1->add_coupling(pcells1,"out",ef1,"in"); ef1->add_coupling(ef1,"result",efa1,"out");
ef1->add_coupling(ef1,"out",pcells1,"in"); efa1->add_coupling(efa1,"start",ef1,"start");
efa1->initialize(); efa1->inject("start",new entity("null")); efa1->start_sim(argc,argv);
}