diff options
author | Zach Smith <zach@driver.xyz> | 2017-10-16 11:54:59 -0700 |
---|---|---|
committer | Zach Smith <zach@driver.xyz> | 2017-10-16 11:54:59 -0700 |
commit | 354a21d1a72867b352edbd0aa25b4980938d2749 (patch) | |
tree | 402bef387ab0e56da82820027f2b46ee4aa08df1 /src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala | |
parent | 8a34b953fa480bfea7e80a46eb4de6b20b4bca68 (diff) | |
download | driver-core-354a21d1a72867b352edbd0aa25b4980938d2749.tar.gz driver-core-354a21d1a72867b352edbd0aa25b4980938d2749.tar.bz2 driver-core-354a21d1a72867b352edbd0aa25b4980938d2749.zip |
Consolidate files
Diffstat (limited to 'src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala b/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala index f0f3b5b..5f589a9 100644 --- a/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala +++ b/src/main/scala/xyz/driver/core/rest/ServiceDiscovery.scala @@ -6,3 +6,21 @@ trait ServiceDiscovery { def discover[T <: Service](serviceName: Name[Service]): T } + +object ServiceDiscovery { + trait SavingUsedServiceDiscovery { + private val usedServices = new scala.collection.mutable.HashSet[String]() + + def saveServiceUsage(serviceName: Name[Service]): Unit = usedServices.synchronized { + usedServices += serviceName.value + } + + def getUsedServices: Set[String] = usedServices.synchronized { usedServices.toSet } + } + + class NoServiceDiscovery extends ServiceDiscovery with SavingUsedServiceDiscovery { + + def discover[T <: Service](serviceName: Name[Service]): T = + throw new IllegalArgumentException(s"Service with name $serviceName is unknown") + } +} |