// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/trafficgen/ipgen/IPGeneratorType.java
// public enum IPGeneratorType {
// 
//     SERIAL,
//     RANDOM
// }
// 
// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/trafficgen/macgen/MACGeneratorType.java
// public enum MACGeneratorType {
// 
//     SERIAL,
//     RANDOM
// }
// 
// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/trafficgen/portgen/PortGeneratorType.java
// public enum PortGeneratorType {
// 
//     SERIAL,
//     RANDOM
// }


import de.uniwuerzburg.info3.ofcprobe.vswitch.trafficgen.ipgen.IPGeneratorType;
import de.uniwuerzburg.info3.ofcprobe.vswitch.trafficgen.macgen.MACGeneratorType;
import de.uniwuerzburg.info3.ofcprobe.vswitch.trafficgen.portgen.PortGeneratorType;
/* 
 * Copyright 2016 christopher.metter.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package de.uniwuerzburg.info3.ofcprobe.vswitch.main.config;


/**
 * Configuration of a ofcprobe.vswitch.trafficgen.TrafficGen Module
 *
 * @author Christopher Metter(christopher.metter@informatik.uni-wuerzburg.de)
 *
 */
public class TrafficGenConfig {

    /**
     * The time between two RefillEvents
     */
    private int iat;
    /**
     * Use a static Payload?
     */
    private boolean staticPayload;
    /**
     * Fill every queue up to this threshold
     */
    private int threshold;
    /**
     * Number of Payloads generated per Event
     */
    private int countPerEvent;
    private String scenario;
    private boolean switchHasSettings;
    private boolean arpEnabled;
    private MACGeneratorType macGenType;
    private IPGeneratorType ipGenType;
    private PortGeneratorType portGenType;
    private int iatType;
    private String distriType;
    private Double distriPara1;
    private Double distriPara2;
    private boolean onlyTopoPayloads;
    boolean getOnlyOneHostPerSwitch;

    /**
     * Constructor with default values.
     */
    public TrafficGenConfig() {
        this.iat = 100;
// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/trafficgen/ipgen/IPGeneratorType.java
// public enum IPGeneratorType {
// 
//     SERIAL,
//     RANDOM
// }
// 
// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/trafficgen/macgen/MACGeneratorType.java
// public enum MACGeneratorType {
// 
//     SERIAL,
//     RANDOM
// }
// 
// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/trafficgen/portgen/PortGeneratorType.java
// public enum PortGeneratorType {
// 
//     SERIAL,
//     RANDOM
// }


// Path: src/main/java/de/uniwuerzburg/info3/ofcprobe/vswitch/main/config/TrafficGenConfig.java
import de.uniwuerzburg.info3.ofcprobe.vswitch.trafficgen.ipgen.IPGeneratorType;
import de.uniwuerzburg.info3.ofcprobe.vswitch.trafficgen.macgen.MACGeneratorType;
import de.uniwuerzburg.info3.ofcprobe.vswitch.trafficgen.portgen.PortGeneratorType;

/* 
 * Copyright 2016 christopher.metter.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package de.uniwuerzburg.info3.ofcprobe.vswitch.main.config;


/**
 * Configuration of a ofcprobe.vswitch.trafficgen.TrafficGen Module
 *
 * @author Christopher Metter(christopher.metter@informatik.uni-wuerzburg.de)
 *
 */
public class TrafficGenConfig {

    /**
     * The time between two RefillEvents
     */
    private int iat;
    /**
     * Use a static Payload?
     */
    private boolean staticPayload;
    /**
     * Fill every queue up to this threshold
     */
    private int threshold;
    /**
     * Number of Payloads generated per Event
     */
    private int countPerEvent;
    private String scenario;
    private boolean switchHasSettings;
    private boolean arpEnabled;
    private MACGeneratorType macGenType;
    private IPGeneratorType ipGenType;
    private PortGeneratorType portGenType;
    private int iatType;
    private String distriType;
    private Double distriPara1;
    private Double distriPara2;
    private boolean onlyTopoPayloads;
    boolean getOnlyOneHostPerSwitch;

    /**
     * Constructor with default values.
     */
    public TrafficGenConfig() {
        this.iat = 100;
        this.staticPayload = false;