{
internal static class StcErrorFactory
{
- internal static void ThrowStcException(int exception)
+ internal static Exception GetStcException(int exception)
{
StcError _error = (StcError)exception;
switch (_error)
{
- case StcError.NotPermitted:
- throw new InvalidOperationException("Operation not permitted");
- case StcError.OutOfMemory:
- throw new InvalidOperationException("Out of memory");
- case StcError.PermissionDenied:
- throw new UnauthorizedAccessException("Permission denied (http://tizen.org/privilege/network.get)");
- case StcError.ResourceBusy:
- throw new InvalidOperationException("Resource is busy");
- case StcError.InvalidOperation:
- throw new InvalidOperationException("Invalid operation");
- case StcError.InvalidParameter:
- throw new InvalidOperationException("Invalid parameter");
- case StcError.NotSupported:
- throw new NotSupportedException("Unsupported STC feature http://tizen.org/feature/network.traffic_control");
- case StcError.OperationFailed:
- throw new InvalidOperationException("Operation failed");
- case StcError.NotInitialized:
- throw new InvalidOperationException("Not initialized");
- case StcError.AlreadyInitialized:
- throw new InvalidOperationException("Already initialized");
- case StcError.InProgress:
- throw new InvalidOperationException("In progress");
- default:
- throw new InvalidOperationException("Unexpected value error = " + exception);
+ case StcError.NotPermitted:
+ return new InvalidOperationException("Operation not permitted");
+ case StcError.OutOfMemory:
+ return new InvalidOperationException("Out of memory");
+ case StcError.PermissionDenied:
+ return new UnauthorizedAccessException("Permission denied (http://tizen.org/privilege/network.get)");
+ case StcError.ResourceBusy:
+ return new InvalidOperationException("Resource is busy");
+ case StcError.InvalidOperation:
+ return new InvalidOperationException("Invalid operation");
+ case StcError.InvalidParameter:
+ return new ArgumentException("Invalid parameter");
+ case StcError.NotSupported:
+ return new NotSupportedException("Unsupported STC feature http://tizen.org/feature/network.traffic_control");
+ case StcError.OperationFailed:
+ return new InvalidOperationException("Operation failed");
+ case StcError.NotInitialized:
+ return new InvalidOperationException("Not initialized");
+ case StcError.AlreadyInitialized:
+ return new InvalidOperationException("Already initialized");
+ case StcError.InProgress:
+ return new InvalidOperationException("In progress");
+ default:
+ return new InvalidOperationException("Unexpected value error = " + exception);
}
}
}
/// <returns>True if the handle is released successfully, otherwise false.</returns>
protected override bool ReleaseHandle()
{
- Interop.Stc.Deinitialize(this.handle);
+ int ret = Interop.Stc.Deinitialize(this.handle);
+ if (ret != (int)StcError.None)
+ {
+ Log.Error(Globals.LogTag, "Failed to deinitialize Stc, Error - " + (StcError)ret);
+ return false;
+ }
this.SetHandle(IntPtr.Zero);
return true;
}
/// <returns>The instance of the SafeStcHandle.</returns>
/// <feature>http://tizen.org/feature/network.traffic_control</feature>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
+ /// <exception cref="InvalidOperationException">Thrown when the method failed due to an invalid operation.</exception>
/// <exception cref="NotSupportedException">Thrown when the Stc is not supported.</exception>
/// <exception cref="UnauthorizedAccessException">Thrown when the permission is denied.</exception>
- /// <exception cref="InvalidOperationException">Thrown when the method failed due to an invalid operation.</exception>
[EditorBrowsable(EditorBrowsableState.Never)]
internal static SafeStcHandle GetStcHandle()
{
/// <returns>A list of the NetworkStatistics objects.</returns>
/// <feature>http://tizen.org/feature/network.traffic_control</feature>
/// <privilege>http://tizen.org/privilege/network.get</privilege>
- /// <exception cref="NotSupportedException">Thrown when the Stc is not supported.</exception>
- /// <exception cref="UnauthorizedAccessException">Thrown when the permission is denied.</exception>
/// <exception cref="InvalidOperationException">Thrown when the method failed due to an invalid operation.</exception>
/// <exception cref="ArgumentException">Thrown when the method is provided with invalid argument.</exception>
+ /// <exception cref="NotSupportedException">Thrown when the Stc is not supported.</exception>
+ /// <exception cref="UnauthorizedAccessException">Thrown when the permission is denied.</exception>
public static Task<IEnumerable<NetworkStatistics>> GetStatisticsAsync(StatisticsFilter filter)
{
return StcManagerImpl.Instance.GetStatisticsAsync(filter);
if (ret != (int)StcError.None)
{
Log.Error(Globals.LogTag, "Failed to initialize Stc, Error - " + (StcError)ret);
- StcErrorFactory.ThrowStcException(ret);
+ throw StcErrorFactory.GetStcException(ret);
}
return handle;
}
if (result != (int)StcError.None)
{
Log.Error(Globals.LogTag, "GetAllStats failed, Error - " + (StcError)result);
- task.SetException(new InvalidOperationException("Error occurs during GetAllStats(), " + (StcError)result));
+ task.SetException(StcErrorFactory.GetStcException(result));
}
List<NetworkStatistics> statsList = new List<NetworkStatistics>();
if (resultTemp != (int)StcError.None)
{
Log.Error(Globals.LogTag, "ForeachAllStats failed, Error - " + (StcError)resultTemp);
- task.SetException(new InvalidOperationException("Error occurs during ForeachAllStats(), " + (StcError)resultTemp));
+ task.SetException(StcErrorFactory.GetStcException(resultTemp));
}
Interop.Stc.SafeStatsHandle cloned;
if (retValue != (int)StcError.None)
{
Log.Error(Globals.LogTag, "StatsClone() failed , Error - " + (StcError)retValue);
- task.SetException(new InvalidOperationException("Error occurs during StatsClone(), " + (StcError)retValue));
+ task.SetException(StcErrorFactory.GetStcException(retValue));
}
statsList.Add(new NetworkStatistics(cloned));
if(retTemp != (int)StcError.None)
{
Log.Error(Globals.LogTag, "foreachAllStatus() failed , Error - " + (StcError)retTemp);
- task.SetException(new InvalidOperationException("Error occurs during foreachAllStatus(), " + (StcError)retTemp));
+ task.SetException(StcErrorFactory.GetStcException(retTemp));
}
else
{
if (ret != (int)StcError.None)
{
Log.Error(Globals.LogTag, "GetAllStatus() failed , Error - " + (StcError)ret);
- StcErrorFactory.ThrowStcException(ret);
+ throw StcErrorFactory.GetStcException(ret);
}
}
return task.Task;