net.corda.node.services.network / InMemoryNetworkMapCache

# InMemoryNetworkMapCache

`open class InMemoryNetworkMapCache : SingletonSerializeAsToken, NetworkMapCache`

Extremely simple in-memory cache of the network map.

TODO: some method implementations can be moved up to NetworkMapCache

### Constructors

<init> | `InMemoryNetworkMapCache()` Extremely simple in-memory cache of the network map.

### Properties

changed | `open val changed: <ERROR CLASS><MapChange>` Tracks changes to the network map cache
mapServiceRegistered | `open val mapServiceRegistered: <ERROR CLASS><Unit>` Future to track completion of the NetworkMapService registration.
networkMapNodes | `open val networkMapNodes: List<NodeInfo>` A list of nodes that advertise a network map service
notaryNodes | `open val notaryNodes: List<NodeInfo>` A list of nodes that advertise a notary service
partyNodes | `open val partyNodes: List<NodeInfo>` A list of all nodes the cache is aware of
registeredNodes | `var registeredNodes: MutableMap<Party, NodeInfo>`
regulators | `open val regulators: List<NodeInfo>` A list of nodes that advertise a regulatory service. Identifying the correct regulator for a trade is outside the scope of the network map service, and this is intended solely as a sanity check on configuration stored elsewhere.

### Functions

addMapService | `open fun addMapService(net: MessagingService, networkMapAddress: SingleMessageRecipient, subscribe: Boolean, ifChangedSinceVer: Int?): <ERROR CLASS><Unit>` Add a network map service; fetches a copy of the latest map from the service and subscribes to any further updates.
addNode | `open fun addNode(node: NodeInfo): Unit` Adds a node to the local cache (generally only used for adding ourselves).
deregisterForUpdates | `open fun deregisterForUpdates(net: MessagingService, service: NodeInfo): <ERROR CLASS><Unit>` Unsubscribes from updates from the given map service.
get | `open fun get(): <ERROR CLASS>` Get a copy of all nodes in the map. `open fun get(serviceType: ServiceType): <ERROR CLASS>` Get the collection of nodes which advertise a specific service.
getAnyNotary | `open fun getAnyNotary(type: ServiceType?): Party?` Returns a notary identity advertised by any of the nodes on the network (chosen at random)
getNodeByCompositeKey | `open fun getNodeByCompositeKey(compositeKey: CompositeKey): NodeInfo?` Look up the node info for a composite key.
getNodeByLegalName | `open fun getNodeByLegalName(name: String): <ERROR CLASS>` Look up the node info for a legal name.
getNotary | `open fun getNotary(name: String): Party?` Gets a notary identity by the given name.
getRecommended | `open fun getRecommended(type: ServiceType, contract: Contract, vararg party: Party): NodeInfo?` Get a recommended node that advertises a service, and is suitable for the specified contract and parties. Implementations might understand, for example, the correct regulator to use for specific contracts/parties, or the appropriate oracle for a contract.
getRepresentativeNode | `open fun getRepresentativeNode(party: Party): NodeInfo?` Given a party, returns a node advertising it as an identity. If more than one node found the result is chosen at random.
isNotary | `open fun isNotary(party: Party): <ERROR CLASS>` Checks whether a given party is an advertised notary identity
processUpdatePush | `fun processUpdatePush(req: Update): Unit`
removeNode | `open fun removeNode(node: NodeInfo): Unit` Removes a node from the local cache.
runWithoutMapService | `open fun runWithoutMapService(): Unit` For testing where the network map cache is manipulated marks the service as immediately ready.
track | `open fun track(): <ERROR CLASS><List<NodeInfo>, <ERROR CLASS><MapChange>>` Atomically get the current party nodes and a stream of updates. Note that the Observable buffers updates until the first subscriber is registered so as to avoid racing with early updates.

### Inherited Functions

toToken | `open fun toToken(context: SerializeAsTokenContext): SerializationToken`