/* Filename: INonBlockingTupleExchange.java, no STUDENT changes needed. ************************************************************ Author: Dr. Parson Student co-author: Major: Professor Creation Date: 2/23/2024 Due Date: 3/28/2024 after spring break Course: CSC543 spring 2024 Professor Name: D. Parson Assignment: #3 Interface INonBlockingTupleExchange for NonBlockingQueue, NonBlockingAtomicReference, and NonBlockingAtomicReferenceArray implementing classes. @see CSC543s24NonBlockingDataflowAssn3NoThreads @see FiveTuple */ package CSC543s24NonBlockingDataflowAssn3 ; public interface INonBlockingTupleExchange { /* TupleType will be FiveTuple or TenTuple in this assignment. */ void spinUntilPut(TupleType tuple) ; /* * spinUntilPut spins until it succeeds in calling non-blocking * offer() into a supporting Queue or performs successful insertion * into an AtomicReference or AtomicReferenceArray * via compareAndSet(). */ TupleType spinUntilTake(); /* * spinUntilTake spins until it succeeds in calling non-blocking * poll() out of a supporting Queue or performs successful retrieval * from an AtomicReference or AtomicReferenceArray * via getAndSet(). */ }