sketch out some service code
[scpubgit/Clifton.git] / lib / App / Clifton / Server.pm
CommitLineData
20038dd8 1package App::Clifton::Server;
2
3use aliased 'App::Clifton::ServiceContainer';
4use aliased 'App::Clifton::ConfigLoader';
5use Moo;
6
7extends 'App::Clifton::Service';
8
9sub BUILD {
10 my ($self, $args) = @_;
11 $args->{loop}->add($self);
12 $self->$_ for qw(services);
13}
14
15has config_file => (is => 'ro', required => 1);
16
17has config_loader => (is => 'lazy');
18
19sub _build_config_loader { ConfigLoader->new }
20
21has services => (is => 'lazy');
22
23sub _build_services {
24 shift->_new_child(ServiceContainer, {});
25}
26
27sub reload_config { shift->_do(reload_config => @_) }
28sub shutdown { shift->_do(shutdown => @_) }
29
30sub _body_for_reload_config {
31 my ($self, $args) = @_;
32 $args->{on_finished}->();
33}
34
351;