Amnesia.Access behaviour (nuamnesia v0.3.0)

This behavior is used to implement a different system while taking advantage of mnesia.

It's used by mnesia itself to implement fragmentation using mnesia_frag and mnesia:activity.

Summary

Types

id()

@opaque id()

lock_item()

@type lock_item() :: {:table, atom()} | {:global, any(), [node()]}

lock_kind()

@type lock_kind() :: :write | :read | :sticky_write

Callbacks

all_keys(id, any, atom, lock_kind)

@callback all_keys(id(), any(), atom(), lock_kind()) :: [any()] | no_return()

clear_table(id, any, atom, any)

@callback clear_table(id(), any(), atom(), any()) :: {:atomic, :ok} | {:aborted, any()}

delete(id, any, atom, any, lock_kind)

@callback delete(id(), any(), atom(), any(), lock_kind()) :: :ok | no_return()

delete_object(id, any, atom, tuple, lock_kind)

@callback delete_object(id(), any(), atom(), tuple(), lock_kind()) :: :ok | no_return()

first(id, any, atom)

@callback first(id(), any(), atom()) :: any()

foldl(id, any, function, any, atom, lock_kind)

@callback foldl(id(), any(), (tuple(), any() -> any()), any(), atom(), lock_kind()) ::
  any() | no_return()

foldr(id, any, function, any, atom, lock_kind)

@callback foldr(id(), any(), (tuple(), any() -> any()), any(), atom(), lock_kind()) ::
  any() | no_return()

index_match_object(id, any, atom, any, arg5, lock_kind)

@callback index_match_object(id(), any(), atom(), any(), atom() | integer(), lock_kind()) ::
  [any()] | no_return()

index_read(id, any, atom, any, arg5, lock_kind)

@callback index_read(id(), any(), atom(), any(), atom() | integer(), lock_kind()) ::
  [tuple()] | no_return()

last(id, any, atom)

@callback last(id(), any(), atom()) :: any()

lock(id, any, lock_item, lock_kind)

@callback lock(id(), any(), lock_item(), lock_kind()) :: [node()] | :ok | no_return()

match_object(id, any, atom, any, lock_kind)

@callback match_object(id(), any(), atom(), any(), lock_kind()) :: [any()] | no_return()

next(id, any, atom, any)

@callback next(id(), any(), atom(), any()) :: any()

prev(id, any, atom, any)

@callback prev(id(), any(), atom(), any()) :: any()

read(id, any, atom, any, lock_kind)

@callback read(id(), any(), atom(), any(), lock_kind()) :: [tuple()] | no_return()

select(id, any, atom, any, lock_kind)

@callback select(id(), any(), atom(), any(), lock_kind()) :: [any()]

select(id, any, atom, any, integer, lock_kind)

@callback select(id(), any(), atom(), any(), integer(), lock_kind()) :: [any()]

select_cont(id, any, any)

@callback select_cont(id(), any(), any()) :: :"$end_of_table" | {[any()], any()}

table_info(id, any, arg3, atom)

@callback table_info(id(), any(), atom() | {atom(), atom()}, atom()) :: any()

write(id, any, atom, tuple, lock_kind)

@callback write(id(), any(), atom(), tuple(), lock_kind()) :: :ok | no_return()

Functions

all_keys(id, opaque, table, lock)

@spec all_keys(id(), any(), atom(), lock_kind()) :: [any()]

clear_table(id, opaque, table, object)

@spec clear_table(id(), any(), atom(), any()) :: {:atomic, :ok} | {:aborted, any()}

delete(id, opaque, table, key, lock)

@spec delete(id(), any(), atom(), atom(), lock_kind()) :: :ok | no_return()

delete_object(id, opaque, table, record, lock)

@spec delete_object(id(), any(), atom(), tuple(), lock_kind()) :: :ok | no_return()

first(id, opaque, table)

@spec first(id(), any(), atom()) :: any()

foldl(id, opaque, fun, acc, table, lock)

@spec foldl(id(), any(), function(), any(), atom(), lock_kind()) ::
  any() | no_return()

foldr(id, opaque, fun, acc, table, lock)

@spec foldr(id(), any(), function(), any(), atom(), lock_kind()) ::
  any() | no_return()

index_match_object(id, opaque, table, pattern, attribute, lock)

@spec index_match_object(id(), any(), atom(), any(), atom() | integer(), lock_kind()) ::
  [any()] | no_return()

index_read(id, opaque, table, key, attribute, lock)

@spec index_read(id(), any(), atom(), any(), atom() | integer(), lock_kind()) ::
  [tuple()] | no_return()

last(id, opaque, table)

@spec last(id(), any(), atom()) :: any()

lock(id, opaque, item, kind)

@spec lock(id(), any(), lock_item(), lock_kind()) :: [node()] | :ok | no_return()

match_object(id, opaque, table, pattern, lock)

@spec match_object(id(), any(), atom(), any(), lock_kind()) :: [tuple()] | no_return()

next(id, opaque, table, key)

@spec next(id(), any(), atom(), any()) :: any()

prev(id, opaque, table, key)

@spec prev(id(), any(), atom(), any()) :: any()

read(id, opaque, table, key, lock)

@spec read(id(), any(), atom(), any(), lock_kind()) :: [tuple()] | no_return()

select(id, opaque, table, spec, lock)

@spec select(id(), any(), atom(), any(), lock_kind()) :: [any()]

select(id, opaque, table, spec, limit, lock)

@spec select(id(), any(), atom(), any(), integer(), lock_kind()) :: [any()]

select_cont(id, opaque, cont)

@spec select_cont(id(), any(), any()) :: :"$end_of_table" | {[any()], any()}

table_info(id, opaque, of, key)

@spec table_info(id(), any(), atom() | {atom(), atom()}, atom()) :: any()

write(id, opaque, table, record, lock)

@spec write(id(), any(), atom(), tuple(), lock_kind()) :: :ok | no_return()