This is my implementation of the SMS Simulation Exercise.
I have created five classes as below:
- Message - Represents a single SMS message.
- Producer - Generates a set number of random messages.
- Sender - Simulates sending of SMS messages.
- ProgressMonitor - Monitors and displays the progress of sent and failed messages.
- Main - Entry point to start the simulation.
My assumptions:
- Message generating and message picking are concurrent. This saves time as the producer can produce messages while senders are picking them up
- Message picking and progress monitoring are concurrent. The progress monitor would be able to update every N seconds (configurable) to display the progress of sending the messages