class Flow

Attributes

distribution_rate[RW]
distribution_size[RW]
id[RW]
paths[RW]
priority[RW]

Public Class Methods

new(id, priority, paths, distribution_rate, distribution_size) click to toggle source
# File lib/network_entities/abstracts/flow.rb, line 14
def initialize(id, priority, paths, distribution_rate, distribution_size)
    raise "Invalid 'priority' argument received. Priority must be a number, #{priority} was received" unless priority.is_a? Integer
    raise "Invalid 'paths' argument received. 'paths' must be an instance of Arry class, however the path received has class #{paths.class}" unless paths.is_a? Array
    raise "Invalid 'distribution_rate' received. Distribution rate cannot be nil" unless distribution_rate
    raise "Invalid 'distribution_size' received. Distribution size cannot be nil" unless distribution_size
    raise "Invalid 'distribution_rate' #{distribution_rate}. It is expected that the rate is an instance of a distribution" unless [ConstantDistribution, ExponentialDistribution, NormalDistribution, ParetoDistribution, SplitDistribution, FelixDistribution].include? distribution_rate.class
    raise "Invalid 'distribution_size' #{distribution_size}. It is expected that the size is an instance of a distribution" unless [ConstantDistribution, ExponentialDistribution, NormalDistribution, ParetoDistribution, SplitDistribution, FelixDistribution].include? distribution_size.class

    @id = id
    @priority = priority
    @paths = paths
    @distribution_rate = distribution_rate
    @distribution_size = distribution_size
end