int main(int argc, char *argv[]) { Activity::Manager::Ptr activityManager = activityManagerInstance(); Activity::Ptr loc1 = activityManager->activityNew("location 1"); //loc1->lastNotifieeIs(new InjectActivityReactor(activityManager, loc1.ptr(), 2)); loc1->statusIs(Activity::nextTimeScheduled); Ptr<Instance::Manager> manager = shippingInstanceManager(); Ptr<Instance> stats = manager->instanceNew("myStats", "Stats"); Ptr<Instance> fleet = manager->instanceNew("myFleet", "Fleet"); fleet->attributeIs("Boat, speed", "1"); fleet->attributeIs("Truck, speed", "2"); fleet->attributeIs("Plane, speed", "4"); fleet->attributeIs("Truck, capacity", "50"); fleet->attributeIs("Plane, cost", "1"); Ptr<Instance> customer1 = manager->instanceNew("customer1", "Customer"); Ptr<Instance> customer2 = manager->instanceNew("customer2", "Customer"); Ptr<Instance> boatSeg1 = manager->instanceNew("boatSeg1", "Boat segment"); Ptr<Instance> boatSeg2 = manager->instanceNew("boatSeg2", "Boat segment"); boatSeg1->attributeIs("source", "customer1"); boatSeg2->attributeIs("source", "customer2"); boatSeg1->attributeIs("return segment", "boatSeg2"); // Example using customer reactor customer1->attributeIs("Shipment Size", "3"); customer1->attributeIs("Transfer Rate", "3"); customer1->attributeIs("Destination", "customer2"); activityManager->nowIs(6.0); cout << "Done!" << endl; return 0; }
int main(int argc, char *argv[]) { try { Ptr<Instance::Manager> manager = shippingInstanceManager(); Ptr<Instance> fleet = manager->instanceNew("fleet", "Fleet"); fleet->attributeIs("Truck, speed", "50"); fleet->attributeIs("Truck, cost", "1"); fleet->attributeIs("Truck, capacity", "50"); fleet->attributeIs("Plane, speed", "100"); fleet->attributeIs("Plane, cost", "2.0"); fleet->attributeIs("Plane, capacity", "100"); /******************************************************** ******************* | NETWORK SETUP | ****************** ********************************************************/ Ptr<Instance> source = manager->instanceNew("source", "Customer"); Ptr<Instance> otherCustomer = manager->instanceNew("other", "Customer"); Ptr<Instance> dest = manager->instanceNew("dest", "Customer"); source->attributeIs("Destination", "dest"); Ptr<Instance> truckT = manager->instanceNew("truckT", "Truck terminal"); Ptr<Instance> planeT = manager->instanceNew("planeT", "Plane terminal"); // source <-seg1-> truck terminal <-seg2-> dest Ptr<Instance> seg1 = manager->instanceNew("seg1", "Truck segment"); Ptr<Instance> rseg1 = manager->instanceNew("rseg1", "Truck segment"); seg1->attributeIs("source", "source"); rseg1->attributeIs("source", "truckT"); seg1->attributeIs("return segment", "rseg1"); Ptr<Instance> seg2 = manager->instanceNew("seg2", "Truck segment"); Ptr<Instance> rseg2 = manager->instanceNew("rseg2", "Truck segment"); seg2->attributeIs("source", "truckT"); rseg2->attributeIs("source", "dest"); seg2->attributeIs("return segment", "rseg2"); seg1->attributeIs( "length", "400"); rseg1->attributeIs("length", "400"); seg2->attributeIs( "length", "400"); rseg2->attributeIs("length", "400"); // source <-seg3-> port terminal <-seg4-> dest Ptr<Instance> seg3 = manager->instanceNew("seg3", "Plane segment"); Ptr<Instance> rseg3 = manager->instanceNew("rseg3", "Plane segment"); seg3->attributeIs("source", "source"); rseg3->attributeIs("source", "planeT"); seg3->attributeIs("return segment", "rseg3"); Ptr<Instance> seg4 = manager->instanceNew("seg4", "Plane segment"); Ptr<Instance> rseg4 = manager->instanceNew("rseg4", "Plane segment"); seg4->attributeIs("source", "planeT"); rseg4->attributeIs("source", "dest"); seg4->attributeIs("return segment", "rseg4"); seg3->attributeIs("length", "400"); rseg3->attributeIs("length", "400"); seg4->attributeIs("length", "400"); rseg4->attributeIs("length", "400"); //source <-seg5-> other customer <-seg6-> dest //to verify customers do not get routed to Ptr<Instance> seg5 = manager->instanceNew("seg5", "Plane segment"); Ptr<Instance> rseg5 = manager->instanceNew("rseg5", "Plane segment"); seg5->attributeIs("source", "source"); rseg5->attributeIs("source", "other"); seg5->attributeIs("return segment", "rseg5"); Ptr<Instance> seg6 = manager->instanceNew("seg6", "Plane segment"); Ptr<Instance> rseg6 = manager->instanceNew("rseg6", "Plane segment"); seg6->attributeIs("return segment", "rseg6"); seg6->attributeIs("source", "other"); rseg6->attributeIs("source", "dest"); seg5->attributeIs("length", "200"); rseg5->attributeIs("length", "200"); seg6->attributeIs("length", "200"); rseg6->attributeIs("length", "200"); /******************************************************** ****************| END NETWORK SETUP | ****************** ********************************************************/ // TRUCK SEGMENTS seg1->attributeIs( "Capacity", CAPACITY_TRUCK); rseg1->attributeIs("Capacity", CAPACITY_TRUCK); seg2->attributeIs( "Capacity", CAPACITY_TRUCK); rseg2->attributeIs("Capacity", CAPACITY_TRUCK); // PLANE SEGMENTS seg3->attributeIs( "Capacity", CAPACITY_PLANE); rseg3->attributeIs("Capacity", CAPACITY_PLANE); seg4->attributeIs( "Capacity", CAPACITY_PLANE); rseg4->attributeIs("Capacity", CAPACITY_PLANE); //OTHER ATTRIBUTES source->attributeIs("Transfer Rate", TRANSFER_RATE); source->attributeIs("Shipment Size", SHIPMENT_SIZE); Activity::Manager::Ptr activityManager = activityManagerInstance(); // RealTimeManager::Ptr realTimeManager = realTimeManagerInstance(); for ( int i = 1; i <= STEPS; i++){ activityManager->nowIs(TIME_STEP * i); // realTimeManager->realTimePassedIs(TIME_STEP); cout << "AT TIME: " << TIME_STEP * i << endl; cout << "SOURCE->TRUCK: Capacity " << seg1->attribute("Capacity") << " recieved " << seg1->attribute("Shipments Received") << " refused " << seg1->attribute("Shipments Refused") << endl; cout << "TRUCK->DEST : Capacity " << seg2->attribute("Capacity") << " recieved " << seg2->attribute("Shipments Received") << " refused " << seg2->attribute("Shipments Refused") << endl; cout << "SOURCE->PLANE: Capacity " << seg3->attribute("Capacity") << " recieved " << seg3->attribute("Shipments Received") << " refused " << seg3->attribute("Shipments Refused") << endl; cout << "PLANE->DEST: Capacity " << seg4->attribute("Capacity") << " recieved " << seg4->attribute("Shipments Received") << " refused " << seg4->attribute("Shipments Refused") << endl << endl; cout << "DESTINATION: " << endl << " Recieved Shipments:" << dest->attribute("Shipments Received") << " Average latency: " << dest->attribute("Average Latency") << " Total cost: " << dest->attribute("Total Cost") << endl; cout << endl << endl;; } } catch(Exception e) { cout << e.what() << endl; } catch(...) { } return 0; }