SolutionCacheIfc

A solution cache should be designed to efficiently look up a solution based on a given set of input settings.

Inheritors

Properties

Link copied to clipboard

If true input infeasible solutions are allowed to be saved in the cache. If false, input-infeasible solutions should not be saved in the cache. Implementors are free to decide how to handle what to do with unsaved input infeasible solutions. The default is false (do not allow input infeasible solutions to be saved)

Link copied to clipboard
abstract val capacity: Int

The maximum permitted size of the cache

Link copied to clipboard

A rule to govern which solution should be evicted when the cache capacity is met.

Functions

Link copied to clipboard
open fun clear()

Removes all items from the cache

Link copied to clipboard
abstract fun put(requestData: RequestData, solution: Solution): Solution?

Places the solution into the cache. It is important that implementors handle the insertion of infeasible inputs and ensure that the input map is associated with the solution

Link copied to clipboard
open fun putAll(from: Map<out RequestData, Solution>)

Places all input-solution pairs into the cache

Link copied to clipboard
abstract fun remove(requestData: RequestData): Solution?

Looks up and removes the solution associated with the supplied input map. Null is returned if there is no associated solution. It is important that implementor handle the reduced size relative to the cache.

Link copied to clipboard

Retrieves the solutions associated with the requests

Link copied to clipboard
open operator fun set(requestData: RequestData, solution: Solution)

Allows use of bracket operator for setting values

Link copied to clipboard
abstract fun solutions(): Solutions

Retrieves the solution in the cache as a group of solutions