const classafConcurrent::SynchronizedFileMap

sys::Obj
  afConcurrent::SynchronizedFileMap

A SynchronisedMap, keyed on File, that updates its contents if the file is updated. Use as a cache based on the content of the file, see getOrAddOrUpdate().

Note that all objects held in the map have to be immutable.

clear

Source

This clear()

Remove all key/value pairs from the map. Return this.

containsKey

Source

Bool containsKey(File key)

Returns true if the map contains the given file

def

Source

const Obj? def := null

The default value to use for get when a key isn't mapped.

get

Source

@Operator
Obj? get(Obj key, Obj? def := this.def)

Returns the value associated with the given key. If key is not mapped, then return the value of the def parameter. If def is omitted it defaults to null.

getOrAdd

Source

Obj? getOrAdd(File key, |File->Obj? valFunc)

Returns the value associated with the given key. If it doesn't exist then it is added from the value function.

getOrAddOrUpdate

Source

Obj? getOrAddOrUpdate(File key, |File->Obj? valFunc)

Returns the value associated with the given file. If it doesn't exist, or the file has been updated since the last read, then it is added from the given value function.

Set timeout in the ctor to avoid hitting the file system on every call to this method.

isEmpty

Source

Bool isEmpty()

Return true if size() == 0

keys

Source

Obj[] keys()

Returns a list of all the mapped keys.

make

Source

new make(ActorPool actorPool, Duration timeout := 30sec, |This? f := null)

Creates a SynchronizedMap with the given ActorPool.

timeout is how long to wait between individual file checks. Use to avoid excessive reads of the file system. Set to null to check the file every time.

map

Source

File:Obj? map { private set }

Gets or sets a read-only copy of the backing map.

remove

Source

Obj? remove(Obj key)

Remove the key/value pair identified by the specified key from the map and return the value. If the key was not mapped then return null.

rw

Source

Obj:Obj? rw()

Get a read-write, mutable Map instance with the same contents.

set

Source

@Operator
Void set(File key, Obj? val)

Sets the key / value pair, ensuring no data is lost during multi-threaded race conditions.

size

Source

Int size()

Get the number of key/value pairs in the map.

vals

Source

Obj?[] vals()

Returns a list of all the mapped values.