NAME
Zing::Domain - Aggregate Root
ABSTRACT
Aggregate Root Construct
SYNOPSIS
use Zing::Domain;
my $domain = Zing::Domain->new(name => 'user-1');
# $domain->recv;
DESCRIPTION
This package provides an aggregate abstraction and real-time cross-process sharable data structure which offers many benefits, not least being able to see a full history of state changes.
LIBRARIES
This package uses type constraints from:
ATTRIBUTES
This package has the following attributes:
channel
channel(Channel)
This attribute is read-only, accepts (Channel)
values, and is optional.
name
name(Str)
This attribute is read-only, accepts (Str)
values, and is required.
threshold
threshold(Str)
This attribute is read-only, accepts (Str)
values, and is optional.
METHODS
This package implements the following methods:
apply
apply() : Object
The apply method receives events from the channel and applies the operations.
change
change(Str $op, Str $key, Any @val) : Object
The change method commits an operation (and snapshot) to the channel. This method is used internally and shouldn't need to be called directly.
data
data() : HashRef
The data method returns the raw aggregate data associated with the object.
decr
decr(Str $key, Int $val = 1) : Object
The decr method decrements the data associated with a specific key.
del
del(Str $key) : Object
The del method deletes the data associated with a specific key.
get
get(Str $key) : Any
The get method return the data associated with a specific key.
incr
incr(Str $key, Int $val = 1) : Object
The incr method increments the data associated with a specific key.
pop
pop(Str $key) : Object
The pop method pops the data off of the stack associated with a specific key.
push
push(Str $key, Any @val) : Object
The push method pushes data onto the stack associated with a specific key.
set
set(Str $key, Any $val) : Object
The set method commits the data associated with a specific key to the channel.
shift
shift(Str $key) : Object
The shift method shifts data off of the stack associated with a specific key.
unshift
unshift(Str $key, Any @val) : Object
The unshift method unshifts data onto the stack associated with a specific key.
AUTHOR
Al Newkirk, awncorp@cpan.org
LICENSE
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".