import gr.grnet.aquarium.message.avro.{AvroHelpers, MessageHelpers}
import gr.grnet.aquarium.message.avro.gen._
import gr.grnet.aquarium.util.json.JsonSupport
-import gr.grnet.aquarium.{Aquarium, ResourceLocator, AquariumBuilder}
+import gr.grnet.aquarium.{Real, Aquarium, ResourceLocator, AquariumBuilder}
import java.io.File
import java.util.concurrent.atomic.AtomicLong
import scala.collection.immutable.TreeMap
/*
* @author Prodromos Gerakios <pgerakios@grnet.gr>
*/
-
+/*
case class ChargeEntry(val id:String,
val unitPrice:String,
val startTime:String,
val bill:List[ServiceEntry]
)
extends JsonSupport {}
+*/
-
-object BillEntry {
+object BillEntryMsg {
private[this] val counter = new AtomicLong(0L)
private[this] def nextUIDObject() = counter.getAndIncrement
}
- private[this] def toChargeEntry(c:ChargeslotMsg) : (ChargeEntryMsg,Long,Double) = {
+ private[this] def toChargeEntry(c:ChargeslotMsg) : (ChargeEntryMsg,Long,Real) = {
val unitPrice = c.getUnitPrice.toString
val startTime = c.getStartMillis.toString
val endTime = c.getStopMillis.toString
val difTime = (c.getStopMillis - c.getStartMillis).toLong
- val unitsD = (c.getCreditsToSubtract/c.getUnitPrice)
+ val unitsD = (Real(c.getCreditsToSubtract)/Real(c.getUnitPrice))
val credits = c.getCreditsToSubtract.toString
(newChargeEntry(counter.getAndIncrement.toString,unitPrice,
startTime,endTime,difTime.toString,unitsD.toString,credits),difTime,unitsD)
- private[this] def toEventEntry(eventType:String,c:ChargeslotMsg) : (EventEntryMsg,Long,Double) = {
+ private[this] def toEventEntry(eventType:String,c:ChargeslotMsg) : (EventEntryMsg,Long,Real) = {
val (c1,l1,d1) = toChargeEntry(c)
(newEventEntry(eventType,javaList(c1)),l1,d1)
}
///FIXME: val elapsedTime = w.getChargeslots.asScala.foldLeft()
//c.getStopMillis - c.getStartMillis
var totalElapsedTime = 0L
- var totalUnits = 0.0D
+ var totalUnits = Real.Zero
val eventEntry = new java.util.ArrayList[EventEntryMsg]() //new ListBuffer[EventEntry]
for { c <- w.getChargeslots.asScala }{
if(c.getCreditsToSubtract != 0.0) {