Øvelse+7.1+-+Basic+OS+API+use

=Lab Exercise 7.1 – Basic OS API use=

Opgaven var at løse send/recieve opgaven med det udleverede OSApi.

Da OSApiet allerede indeholder klasser til tråde, messageques og så videre ar det bare med at gå i gang.

Den første umiddelbare forskel var at namespacet osapi:: skulle benyttes til at tilgå klasser fra biblioteket.

Tråde
I øvelse 5.1 brugte vi posix-systemet til tråde. Her blev det implementeret noget anderledes.

Vores to tråde sender og receiver blev implementeret som klasser der nedaver fra OSApiets Thread-klasse.

Her implementeres trådfunktionerne som run der er lavet ren virtuelt i Thread-klassen.

Disse run-funktioner implementeres ellers stort set som trådfunktionerne i 5.1.

Der oprette så objekter af trådklasserne og start kaldes for at starte tråden.

Message Queues
OSApiet indeholder en standart MessageQueue klasse, som bruges i stedet for vores deque fra 5.1. Receiver indeholder et objekt af typen osapi::messageque og det er denne der bruge til at sende beskeder til.

Det der sendes er af typen besked som igen hentes fra osapiet. Ligesom i 5.1 sendes noget af typen Point3D som er en struct der indeholder 3 koordinater. Ligesom i 5.1 switches der på id'et af beskeden, svarer id'et til noget af typen Point3D laves en dynamic_cast på Message, så det typecastes til et Point3D obj og koordinaterne udskrives.