Home | History | Annotate | Download | only in service

Lines Matching refs:service

16 package com.google.inject.service;
34 * A service that composes other services together in a fixed order.
41 private final Set<Key<? extends Service>> services = Sets.newLinkedHashSet();
44 * Represents the state of this composite service. Will equal FAILED
45 * even if only one component service fails to start or stop. In other
47 * service to be considered started and similarly for stopped.
49 private volatile Service.State compositeState;
57 public CompositeService add(Class<? extends Service> service) {
58 return add(Key.get(service));
61 public CompositeService add(Key<? extends Service> service) {
65 injector.getBinding(service);
67 services.add(service);
71 public Service compose() {
77 final List<Key<? extends Service>> services = ImmutableList.copyOf(this.services);
79 return new Service() {
82 for (Key<? extends Service> service : services) {
83 tasks.add(injector.getInstance(service).start());
91 for (Key<? extends Service> service : services) {
92 tasks.add(injector.getInstance(service).stop());
104 private FutureTask<Service.State> futureGet(final List<Future<Service.State>> tasks,
105 final Service.State state) {
106 return new FutureTask<Service.State>(new Callable<Service.State>() {
107 public Service.State call() {
109 for (Future<Service.State> task : tasks) {
113 return compositeState = Service.State.FAILED;
115 return compositeState = Service.State.FAILED;
119 return compositeState = ok ? state : Service.State.FAILED;