package com.num.helpers;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import org.json.JSONObject;
import android.content.Context;
import com.num.listeners.BaseResponseListener;
import com.num.listeners.ResponseListener;
import com.num.models.Battery;
import com.num.models.Device;
import com.num.models.GPS;
import com.num.models.LastMile;
import com.num.models.Link;
import com.num.models.Loss;
import com.num.models.MainModel;
import com.num.models.Measure;
import com.num.models.Measurement;
import com.num.models.Network;
import com.num.models.Ping;
import com.num.models.Sim;
import com.num.models.Throughput;
import com.num.models.Traceroute;
import com.num.models.TracerouteEntry;
import com.num.models.Usage;
import com.num.models.WarmupExperiment;
import com.num.models.Wifi;
import com.num.utils.CommandLineUtil;
import com.num.utils.ParseUtil;
import com.num.utils.ThroughputUtil;
public class ThroughputHelper {
public static CommandLineUtil cmdUtil;
public static String throughputOutput;
public static Throughput t = new Throughput();
public static ResponseListener listener;
/**
* Pinghelp helps run ping command by creating cmd and inputs
* @param responseListener
* @return
*/
public static Throughput getThroughput(Context context, ResponseListener responseListener) {
listener = responseListener;
t = new Throughput();
try {
Link up=ThroughputUtil.uplinkmeasurement(context,new ThroughputListener());
t.setUpLink(up);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Link down=ThroughputUtil.downlinkmeasurement(context,new ThroughputListener());
t.setDownLink(down);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//TRIGGER DB
t.isComplete=true;
return t;
}
public static class ThroughputListener extends BaseResponseListener{
public void onCompletePing(Ping response) { }
public void onCompleteDevice(Device response) { }
public void onCompleteMeasurement(Measurement response) { }
public void onCompleteOutput(MainModel model) { }
public void onComplete(String response) { }
public void onUpdateProgress(int val){ }
public void onCompleteGPS(GPS response) { }
public void makeToast(String text) { }
public void onCompleteSignal(String signalStrength) { }
public void onCompleteUsage(Usage response) { }
public void onCompleteThroughput(Throughput response) { }
public void onCompleteWifi(Wifi response) { }
public void onCompleteBattery(Battery response) { }
public void onCompleteNetwork(Network response) { }
public void onCompleteSIM(Sim response) { }
public void onCompleteSummary(JSONObject Object) { }
public void onFail(String response) { }
public void onCompleteLastMile(LastMile lastMile) { }
public void onUpdateUpLink(Link link) {
t.setUpLink(link);
listener.onUpdateThroughput(t);
}
public void onUpdateDownLink(Link link) {
t.setDownLink(link);
listener.onUpdateThroughput(t);
}
public void onUpdateThroughput(Throughput throughput) {
listener.onUpdateThroughput(throughput);
}
public void onCompleteTraceroute(Traceroute traceroute) {
// TODO Auto-generated method stub
}
public void onCompleteTracerouteHop(TracerouteEntry traceroute) {
// TODO Auto-generated method stub
}
public void onCompleteWarmupExperiment(WarmupExperiment experiment) {
// TODO Auto-generated method stub
}
public void onCompleteLoss(Loss loss) {
// TODO Auto-generated method stub
}
}
}