We we receive a get request (currently only Do is supported) we should issue a response
To implement this, we need to add an outgoing queue to Mailman and Mr_Manager
Move both to a separate singleton class for organization. (See attached updated UML)
We also need there to be an additional thread. Basically rename the current run method in mailman to incoming and make another method called outgoing. Then call both on separate threads. A get from a queue in python is blocking IO, so we can just have that thread wait for NetMessages and send them.
Maybe later on we could add some sort of message collector (get 10 messages and then send) if needed, but that's probably a bit overkill.
Commands and Controllers should be added for each type of get.
EX: If its a Get System info (%cpu, ect) request, it would get deserialized to a GetSystemInfo command which would get passed to the SysInfo controller when executed. That controller would know how to get the cpu percentage and would in turn, construct some sort of response object. That response object would get added to the outgoing queue using DeliveryBoy. Then the mailman outgoing would grab the response object from the queue in DeliveryBoy and then convert it to json and send it.
We we receive a get request (currently only Do is supported) we should issue a response