Question: You are asked to implement a message queue connector class using Java. The following figure depicts a message queue connector class, followed by the detailed

You are asked to implement a message queue connector class using Java. The following figure depicts a message queue connector class, followed by the detailed specifications of operations. The message queue connector class has send() and receive(), and the size of queue is 3. To test your implementation, your program should create two separate threads, a producer thread and a consumer thread. The producer thread sends a message having a structure, (string, integer) e.g., (add, 3) or (multiply, 7) - to a consumer thread via a message queue connector. There is a SimpleCalculation class that has two operations, add() and multiply(). You should implement the SimpleCalculation class. When the consumer thread receives a message from the connector, it extracts the message and then calls one of operations on the SimpleCalculation class depending on the message. For example, the consumer thread calls the add() operation if it receives a message like (add, 3), while it calls the multiply() operation if it receives a message like (multiply, 3). The add() operation in the SimpleCalculation adds 10 to the integer in a message from the producer thread and displays the result on the screen. The multiply() operation multiplies the integer by 10 and displays the result on the screen. The producer thread should displays the messages on the screen before it sends the messages to the consumer thread. The messages are (add, 4), (multiply, 1), (multiply, 8), (add, 2), (add, 3), (add, 99), (multiply, 53) sent to the consumer

You are asked to implement a message queue connector class using Java.

message queue connector aProducerThread er Threa receive (out d (in message) message) cconnecton> MessageQueue messageQ: Queue +send (in message) +receive (out message) Message queue connector monitor MessageQueue - Encapsulate message queue that holds max of maxCount messages -- Monitor operations are executed mutually exclusively; Private messag ueue private maxCount : Integer; private messageCount: Integer0 public send (in message) while messageCountmaxCount do wait; place message in messge: Increment messageCount; if messageCount -1 then notify; end send public receive (out message) while messageCount 0 do wait; remove message from messageQ: Decrement messageCount; if me33ageCount maxCount-1 then notify: end receive; end MessageQueue: message queue connector aProducerThread er Threa receive (out d (in message) message) cconnecton> MessageQueue messageQ: Queue +send (in message) +receive (out message) Message queue connector monitor MessageQueue - Encapsulate message queue that holds max of maxCount messages -- Monitor operations are executed mutually exclusively; Private messag ueue private maxCount : Integer; private messageCount: Integer0 public send (in message) while messageCountmaxCount do wait; place message in messge: Increment messageCount; if messageCount -1 then notify; end send public receive (out message) while messageCount 0 do wait; remove message from messageQ: Decrement messageCount; if me33ageCount maxCount-1 then notify: end receive; end MessageQueue

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!