Current section
Files
Jump to
Current section
Files
lib/types/types.ex
defmodule Noizu.Service.Types do
require Record
# Ack
@type ack_type :: :receipt | :process | :link_update | :response | :none | nil
Record.defrecord(:ack, type: nil, to: nil)
# Recipient
Record.defrecord(:link, node: nil, process: nil, recipient: nil)
Record.defrecord(:gen_server, module: nil)
Record.defrecord(:pool, recipient: nil)
Record.defrecord(:server, recipient: nil)
Record.defrecord(:monitor, recipient: nil)
Record.defrecord(:worker_supervisor, recipient: nil)
Record.defrecord(:target_node, node: nil)
Record.defrecord(:node_manager, recipient: nil)
# Settings
Record.defrecord(:settings, safe: nil, spawn?: nil, task: nil, ack?: nil, sticky?: nil, timeout: nil)
# Msg
Record.defrecord(:s, call: nil, context: nil, options: nil)
# Call
Record.defrecord(:call, handler: nil, args: [])
# Msg Envelope
Record.defrecord(:msg_envelope,
id: nil,
type: nil,
recipient: nil,
settings: nil,
msg: nil,
)
#-----------------
#
#-----------------
def sticky?(nil), do: false
def sticky?(settings(sticky?: v)), do: v
#-----------------
#
#-----------------
def spawn?(nil), do: false
def spawn?(settings(spawn?: v)), do: v
#-----------------
#
#-----------------
def ack?(nil), do: false
def ack?(settings(ack?: v)), do: v
#-----------------
#
#-----------------
def timeout(nil), do: nil
def timeout(settings(timeout: v)), do: v
#-----------------
#
#-----------------
def safe(nil), do: nil
def safe(settings(safe: v)), do: v
#-----------------
#
#-----------------
def task(nil), do: nil
def task(settings(task: v)), do: v
#-----------------
#
#-----------------
def call_context(nil), do: nil
def call_context(s(context: v)), do: v
end