Exercise+6.1

=Exercise 1=

I denne opgave skal vi lave Exercise 5.1 om, så den virker på en Windows platform ved hjælp af win32-api. Vi bruger den udleverede win32wrap.h hvor følgende blive stillet til rådighed. Disse ressourcer er beskrevet i det udleveret materiale "Specifikation af OS API.pdf"
 * Tråde
 * Timere
 * Semaforer (tællesemaforer og mutex’er)
 * Scoped Lockers
 * Mailboxe

Vi opretter en klasse til "Sender" og en til "Receiver"

code format="cpp" // Sender.h class Sender : public Thread { public: Sender(Mailbox& mailb); void run; private: Mailbox& mailbox; }; // Sender.cpp --- Sender::Sender(Mailbox& mailb) : Thread(Thread::PRIORITY_NORMAL, "Sender"), mailbox(mailb) { }

void Sender::run {   Point3D p3d; SleepTimer t;   while(true) {       p3d.x++; p3d.y++; p3d.z++; // SKRIV mailbox.put(p3d); t.sleep(1000); } } code Receiver

code format="cpp" // Receiver.h class Receiver : public Thread { public: Receiver(Mailbox& mailb); void run; private: Mailbox& mailbox; }; // Receiver.cpp -- Receiver::Receiver(Mailbox& mailb) : Thread(Thread::PRIORITY_NORMAL, "Receiver"), mailbox(mailb) { }

void Receiver::run {   Point3D p3d; while(true) {       // SKRIV p3d=mailbox.get; cout << "Funktion recv: " << "X: " << p3d.x << " " << "Y: " << p3d.y << "  "  << "Z: " << p3d.z << endl; } } code

Vores nye main. code format="cpp" int main {   // oprettelse af timer objekt SleepTimer t;   // Her laves en mailkø på 10 Mailbox mailb(10);

// Sender objekt oprettes Sender send(mailb); // Receiver objekt oprettes Receiver recv(mailb);http://duus-skydt.wikispaces.com/Exercise+6.1

// Start Sender og Receiver send.start; recv.start; // main bliver ved med at cykle rundt, med 1 sek sleep. while(true) t.sleep(1000); } code

Design af system.