ImageServerProxy.java 6.96 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.image_server.ImageServerProxy$
 *  com.scene7.is.image_server.ImageServerProxy$$anonfun
 *  com.scene7.is.image_server.ImageServerProxy$$anonfun$configure
 *  com.scene7.is.scalautil.PlatformUtil
 *  com.scene7.is.scalautil.PlatformUtil$
 *  com.scene7.is.scalautil.service.ArgSpec
 *  com.scene7.is.scalautil.service.ArgSpec$ArgValue
 *  com.scene7.is.scalautil.service.ArgSpec$Flag
 *  com.scene7.is.scalautil.service.ArgSpec$OptionValue
 *  com.scene7.is.scalautil.service.ArgSpec$Param
 *  com.scene7.is.scalautil.service.LogSink
 *  com.scene7.is.scalautil.service.Service
 *  com.scene7.is.scalautil.service.Service$
 *  scala.Function0
 *  scala.Predef
 *  scala.Predef$
 *  scala.collection.Seq
 *  scala.collection.Seq$
 *  scala.collection.SeqLike
 *  scala.collection.generic.CanBuildFrom
 *  scala.collection.immutable.Map
 *  scala.reflect.ScalaSignature
 *  scala.runtime.AbstractFunction0
 *  scala.runtime.BoxedUnit
 *  scala.runtime.BoxesRunTime
 */
package com.scene7.is.image_server;

import com.scene7.is.image_server.ISConfig$;
import com.scene7.is.image_server.ImageServerProxy;
import com.scene7.is.image_server.IsBinaries;
import com.scene7.is.image_server.IsBinaries$;
import com.scene7.is.scalautil.PlatformUtil;
import com.scene7.is.scalautil.service.ArgSpec;
import com.scene7.is.scalautil.service.LogSink;
import com.scene7.is.scalautil.service.Service;
import java.io.File;
import scala.Function0;
import scala.Predef;
import scala.collection.Seq;
import scala.collection.SeqLike;
import scala.collection.generic.CanBuildFrom;
import scala.collection.immutable.Map;
import scala.reflect.ScalaSignature;
import scala.runtime.AbstractFunction0;
import scala.runtime.BoxedUnit;
import scala.runtime.BoxesRunTime;

@ScalaSignature(bytes="\u0006\u0001\u00194A!\u0001\u0002\u0001\u0017\t\u0001\u0012*\\1hKN+'O^3s!J|\u00070\u001f\u0006\u0003\u0007\u0011\tA\"[7bO\u0016|6/\u001a:wKJT!!\u0002\u0004\u0002\u0005%\u001c(BA\u0004\t\u0003\u0019\u00198-\u001a8fo)\t\u0011\"A\u0002d_6\u001c\u0001a\u0005\u0002\u0001\u0019A\u0011Q\u0002E\u0007\u0002\u001d)\tq\"A\u0003tG\u0006d\u0017-\u0003\u0002\u0012\u001d\t1\u0011I\\=SK\u001aD\u0001b\u0005\u0001\u0003\u0002\u0003\u0006I\u0001F\u0001\u0007SN\u0014vn\u001c;\u0011\u0005UQR\"\u0001\f\u000b\u0005]A\u0012AA5p\u0015\u0005I\u0012\u0001\u00026bm\u0006L!a\u0007\f\u0003\t\u0019KG.\u001a\u0005\t;\u0001\u0011\t\u0011)A\u0005=\u0005!\u0011M]4t!\riq$I\u0005\u0003A9\u0011!\u0002\u0010:fa\u0016\fG/\u001a3?!\t\u0011cE\u0004\u0002$I5\t!!\u0003\u0002&\u0005\u0005A\u0011jU\"p]\u001aLw-\u0003\u0002(Q\tA\u0011I]4WC2,X-\u0003\u0002*U\t9\u0011I]4Ta\u0016\u001c'BA\u0016-\u0003\u001d\u0019XM\u001d<jG\u0016T!!\f\u0003\u0002\u0013M\u001c\u0017\r\\1vi&d\u0007\"B\u0018\u0001\t\u0003\u0001\u0014A\u0002\u001fj]&$h\bF\u00022eM\u0002\"a\t\u0001\t\u000bMq\u0003\u0019\u0001\u000b\t\u000buq\u0003\u0019\u0001\u0010\t\u000fU\u0002!\u0019!C\u0005m\u0005)Q.\u001e;fqV\tq\u0007\u0005\u00029w5\t\u0011H\u0003\u0002;1\u0005!A.\u00198h\u0013\ta\u0014H\u0001\u0004PE*,7\r\u001e\u0005\u0007}\u0001\u0001\u000b\u0011B\u001c\u0002\r5,H/\u001a=!\u0011\u001d\u0001\u0005\u00011A\u0005\n\u0005\u000bqa\u001d;beR,G-F\u0001C!\ti1)\u0003\u0002E\u001d\t9!i\\8mK\u0006t\u0007b\u0002$\u0001\u0001\u0004%IaR\u0001\fgR\f'\u000f^3e?\u0012*\u0017\u000f\u0006\u0002I\u0017B\u0011Q\"S\u0005\u0003\u0015:\u0011A!\u00168ji\"9A*RA\u0001\u0002\u0004\u0011\u0015a\u0001=%c!1a\n\u0001Q!\n\t\u000b\u0001b\u001d;beR,G\r\t\u0005\b!\u0002\u0011\r\u0011\"\u0003R\u0003!\u0011\u0017N\\1sS\u0016\u001cX#\u0001*\u0011\u0005\r\u001a\u0016B\u0001+\u0003\u0005)I5OQ5oCJLWm\u001d\u0005\u0007-\u0002\u0001\u000b\u0011\u0002*\u0002\u0013\tLg.\u0019:jKN\u0004\u0003\u0002C\u0016\u0001\u0011\u000b\u0007I\u0011\u0002-\u0016\u0003e\u0003\"AW.\u000e\u0003)J!\u0001\u0018\u0016\u0003\u000fM+'O^5dK\"Aa\f\u0001E\u0001B\u0003&\u0011,\u0001\u0005tKJ4\u0018nY3!\u0011\u0015\u0001\u0007\u0001\"\u0001b\u0003%\u0019wN\u001c4jOV\u0014X\rF\u0001I\u0011\u0015\u0019\u0007\u0001\"\u0001b\u0003\u0015\u0019H/\u0019:u\u0011\u0015)\u0007\u0001\"\u0001b\u0003\u0011\u0019Ho\u001c9")
public class ImageServerProxy {
    private final Seq<ArgSpec.ArgValue> args;
    private final Object mutex;
    private boolean started;
    private final IsBinaries binaries;
    private Service service;
    private volatile boolean bitmap$0;

    private Service service$lzycompute() {
        ImageServerProxy imageServerProxy = this;
        synchronized (imageServerProxy) {
            if (!this.bitmap$0) {
                String cmd = this.binaries().imageServer().getAbsolutePath();
                Seq cmdArgs = (Seq)((SeqLike)this.args.$colon$plus((Object)ISConfig$.MODULE$.Monitored(), Seq..MODULE$.canBuildFrom())).$colon$plus((Object)ISConfig$.MODULE$.ParentProcessId().apply((Object)BoxesRunTime.boxToLong((long)PlatformUtil..MODULE$.myPid())), Seq..MODULE$.canBuildFrom());
                String string = cmd;
                Seq x$2 = (Seq)ISConfig$.MODULE$.apply(cmdArgs).$plus$colon((Object)string, Seq..MODULE$.canBuildFrom());
                Map<String, String> x$3 = this.binaries().env();
                File x$4 = this.binaries().home();
                boolean x$5 = false;
                LogSink x$6 = Service..MODULE$.apply$default$4();
                LogSink x$7 = Service..MODULE$.apply$default$5();
                this.service = Service..MODULE$.apply(x$2, x$3, x$4, x$6, x$7, x$5);
                this.bitmap$0 = true;
            }
            return this.service;
        }
    }

    private Object mutex() {
        return this.mutex;
    }

    private boolean started() {
        return this.started;
    }

    private void started_$eq(boolean x$1) {
        this.started = x$1;
    }

    private IsBinaries binaries() {
        return this.binaries;
    }

    private Service service() {
        return this.bitmap$0 ? this.service : this.service$lzycompute();
    }

    public void configure() {
        Predef..MODULE$.require(this.service() != null, (Function0)new scala.Serializable(this){
            public static final long serialVersionUID = 0;

            public final String apply() {
                return "service not initialized";
            }
        });
    }

    public void start() {
        Object object = this.mutex();
        synchronized (object) {
            this.service().start();
            this.started_$eq(true);
            return;
        }
    }

    public void stop() {
        Object object = this.mutex();
        synchronized (object) {
            BoxedUnit boxedUnit;
            if (this.started()) {
                this.service().stop();
                this.started_$eq(false);
                boxedUnit = BoxedUnit.UNIT;
            } else {
                boxedUnit = BoxedUnit.UNIT;
            }
            return;
        }
    }

    public ImageServerProxy(File isRoot, Seq<ArgSpec.ArgValue> args) {
        this.args = args;
        this.mutex = new Object();
        this.started = false;
        this.binaries = IsBinaries$.MODULE$.apply(isRoot);
    }
}