Autonomous Solutions receives high-frequency sensor readings that must be buffered briefly before downstream processing. Design the deterministic behavior of a bounded FIFO buffer: every put adds the newest reading, and when the buffer is full, it discards the oldest reading. In a production C++ implementation, all state-changing operations must be protected by one mutex so concurrent producers and consumers cannot observe inconsistent state.
Implement process_sensor_buffer, which models the buffer operations in order.
capacity is a positive integer.operations is a list of two-element lists.['put', value] inserts value. If the buffer is full, remove its oldest value first. This operation produces no output.['get'] removes and returns the oldest value, or returns None when empty.['peek'] returns the oldest value without removing it, or None when empty.['size'] returns the current number of buffered values.get, peek, and size operation in order.A C++ production solution should use a fixed-size circular array, a mutex, and condition variables if blocking behavior is added. This task uses drop-oldest semantics so the operation log has deterministic results.
def process_sensor_buffer(capacity, operations):