X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2Frepository%2FEiProducer.java;h=99932a7237792fcb8eb112817497a3ccdd38cd74;hb=4c4a452097c16debab0177e9e87a33ae17d28e44;hp=30e62de3596bccd1f2c13de078308ff9a2c7027a;hpb=6a1eb6e2a6538decc54f5348fcb1589f5b829e68;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiProducer.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiProducer.java index 30e62de3..99932a72 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiProducer.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiProducer.java @@ -22,18 +22,49 @@ package org.oransc.enrichment.repository; import java.util.Collection; -import org.immutables.gson.Gson; -import org.immutables.value.Value; +import lombok.Getter; -@Value.Immutable -@Gson.TypeAdapters -public interface EiProducer { - public String id(); +public class EiProducer { + @Getter + private final String id; - public Collection eiTypes(); + @Getter + private final Collection eiTypes; - public String jobCreationCallbackUrl(); + @Getter + private final String jobCreationCallbackUrl; - public String jobDeletionCallbackUrl(); + @Getter + private final String jobDeletionCallbackUrl; + + @Getter + private final String producerSupervisionCallbackUrl; + + private int unresponsiveCounter = 0; + + public EiProducer(String id, Collection eiTypes, String jobCreationCallbackUrl, + String jobDeletionCallbackUrl, String producerSupervisionCallbackUrl) { + this.id = id; + this.eiTypes = eiTypes; + this.jobCreationCallbackUrl = jobCreationCallbackUrl; + this.jobDeletionCallbackUrl = jobDeletionCallbackUrl; + this.producerSupervisionCallbackUrl = producerSupervisionCallbackUrl; + } + + public synchronized void setAliveStatus(boolean isAlive) { + if (isAlive) { + unresponsiveCounter = 0; + } else { + unresponsiveCounter++; + } + } + + public synchronized boolean isDead() { + return this.unresponsiveCounter >= 3; + } + + public synchronized boolean isAvailable() { + return this.unresponsiveCounter == 0; + } }