*/ class implementation_wrapper/**/ implements interface_storage/**/ { /** * @var struct_wrapper $subject * @author Christian Fraß */ private $subject; /** * @param struct_wrapper $subject * @author Christian Fraß */ protected function __construct(struct_wrapper $subject) {$this->subject = $subject;} /** * @return implementation_wrapper * @author Christian Fraß */ public static function make( \alveolata\storage\interface_storage/**/ $core, \Closure $convert_key_in, \Closure $convert_key_out, \Closure $convert_value_in, \Closure $convert_value_out ) : implementation_wrapper { $subject = wrapper_make( function () use ($core) {$core->setup();}, function () use ($core) {$core->teardown();}, function ($value) use ($core) {return $core->create($value);}, function ($key, $value) use ($core) {$core->update($key, $value);}, function ($key) use ($core) {$core->delete($key);}, function ($key) use ($core) {return $core->read($key);}, function ($parameters) use ($core) {return $core->search($parameters);}, $convert_key_in, $convert_key_out, $convert_value_in, $convert_value_out ); return (new implementation_wrapper($subject)); } /** * implementations * * @author Christian Fraß */ public function teardown() : void {wrapper_teardown($this->subject);} public function setup() : void {wrapper_setup($this->subject);} public function create($value) {return wrapper_create($this->subject, $value);} public function update($key, $value) : void {wrapper_update($this->subject, $key, $value);} public function delete($key) : void {wrapper_delete($this->subject, $key);} public function read($key) {return wrapper_read($this->subject, $key);} public function search(array $parameters) : array {return wrapper_search($this->subject, $parameters);} } ?>