// generated by machine

#include "SidStuff.hh" 
#include "LogicalProcess.hh"
#include "CommMgrInterface.hh"
#include "SimulationTime.hh" 

const VTime LogicalProcess::SIMUNTIL = PINFINITY;

int main(int argc, char *argv[]) {
  int id=0;
 physicalCommInit( &argc, &argv );
 id = physicalCommGetId();
#ifdef MESSAGE_AGGREGATION
  getMessageManagerParameters(argc, argv);
#endif
  if(id == 0) {
    LogicalProcess lp(34,15,2); // total, local, LPs
    MemSourceObject source0("source0", 4);
    source0.id = 0;
    source0.setDistribution(FIXED,1);
    source0.dest = 1;
    lp.registerObject(&source0);

    JoinObject join1("join1");
    join1.id = 1;
    join1.dest = 2;
    lp.registerObject(&join1);

    QueueObject queue2("queue2");
    queue2.id = 2;
    queue2.serverID = 3;
    lp.registerObject(&queue2);

    ForkObject fork3("fork3");
    fork3.id = 3;
    int outputs3[2] = { 4,30 };
    fork3.setForkDistribution(SPECIAL, 2, outputs3,0.85);
    lp.registerObject(&fork3);

    ServerObject server4("server4");
    server4.id = 4;
    server4.setServerDistribution(FIXED, 10);
    server4.dest = 5;
    lp.registerObject(&server4);

    JoinObject join5("join5");
    join5.id = 5;
    join5.dest = 0;
    lp.registerObject(&join5);

    MemSourceObject source6("source6", 4);
    source6.id = 6;
    source6.setDistribution(FIXED,7);
    source6.dest = 7;
    lp.registerObject(&source6);

    JoinObject join7("join7");
    join7.id = 7;
    join7.dest = 8;
    lp.registerObject(&join7);

    QueueObject queue8("queue8");
    queue8.id = 8;
    queue8.serverID = 9;
    lp.registerObject(&queue8);

    ForkObject fork9("fork9");
    fork9.id = 9;
    int outputs9[2] = { 10,30 };
    fork9.setForkDistribution(SPECIAL, 2, outputs9,0.85);
    lp.registerObject(&fork9);

    ServerObject server10("server10");
    server10.id = 10;
    server10.setServerDistribution(FIXED, 10);
    server10.dest = 11;
    lp.registerObject(&server10);

    JoinObject join11("join11");
    join11.id = 11;
    join11.dest = 6;
    lp.registerObject(&join11);

lp.allRegistered();
lp.simulate();
  }
  else  if(id == 1) {
    LogicalProcess lp(34,19,2); // total, local, LPs
    MemSourceObject source12("source12", 4);
    source12.id = 12;
    source12.setDistribution(FIXED,13);
    source12.dest = 13;
    lp.registerObject(&source12);

    JoinObject join13("join13");
    join13.id = 13;
    join13.dest = 14;
    lp.registerObject(&join13);

    QueueObject queue14("queue14");
    queue14.id = 14;
    queue14.serverID = 15;
    lp.registerObject(&queue14);

    ForkObject fork15("fork15");
    fork15.id = 15;
    int outputs15[2] = { 16,30 };
    fork15.setForkDistribution(SPECIAL, 2, outputs15,0.85);
    lp.registerObject(&fork15);

    ServerObject server16("server16");
    server16.id = 16;
    server16.setServerDistribution(FIXED, 10);
    server16.dest = 17;
    lp.registerObject(&server16);

    JoinObject join17("join17");
    join17.id = 17;
    join17.dest = 12;
    lp.registerObject(&join17);

    MemSourceObject source18("source18", 4);
    source18.id = 18;
    source18.setDistribution(FIXED,19);
    source18.dest = 19;
    lp.registerObject(&source18);

    JoinObject join19("join19");
    join19.id = 19;
    join19.dest = 20;
    lp.registerObject(&join19);

    QueueObject queue20("queue20");
    queue20.id = 20;
    queue20.serverID = 21;
    lp.registerObject(&queue20);

    ForkObject fork21("fork21");
    fork21.id = 21;
    int outputs21[2] = { 22,30 };
    fork21.setForkDistribution(SPECIAL, 2, outputs21,0.85);
    lp.registerObject(&fork21);

    ServerObject server22("server22");
    server22.id = 22;
    server22.setServerDistribution(FIXED, 10);
    server22.dest = 23;
    lp.registerObject(&server22);

    JoinObject join23("join23");
    join23.id = 23;
    join23.dest = 18;
    lp.registerObject(&join23);

    JoinObject join30("join30");
    join30.id = 30;
    join30.dest = 31;
    lp.registerObject(&join30);

    QueueObject queue31("queue31");
    queue31.id = 31;
    queue31.serverID = 32;
    lp.registerObject(&queue31);

    ServerObject server32("server32");
    server32.id = 32;
    server32.setServerDistribution(FIXED, 100);
    server32.dest = 33;
    lp.registerObject(&server32);

    MemRouterObject memRouter33("memRouter33");
    memRouter33.id = 33;
    lp.registerObject(&memRouter33);

lp.allRegistered();
lp.simulate();
  }
  return 0;
} // main
