in Azure Cloud Tutorials/Assets/AzureSpatialAnchors.SDK/Plugins/Common/AzureSpatialAnchorsBridge.cs [150:236]
internal static void CheckStatus(IntPtr handle, status value)
{
if (value == status.OK)
{
return;
}
string message;
string requestCorrelationVector;
string responseCorrelationVector;
status code = NativeLibrary.ssc_get_error_details(handle, out message, out requestCorrelationVector, out responseCorrelationVector);
string fullMessage;
if (code == status.Failed)
{
throw new InvalidOperationException("Unexpected error in exception handling.");
}
else if (code != status.OK)
{
fullMessage = "Exception thrown and an unexpected error in exception handling.";
}
else
{
fullMessage = message + ". Request CV: " + requestCorrelationVector + ". Response CV: " + responseCorrelationVector + ".";
}
switch (value)
{
case status.OK:
return;
case status.Failed:
throw new InvalidOperationException(fullMessage);
case status.ObjectDisposed:
throw new ObjectDisposedException(fullMessage);
case status.OutOfMemory:
throw new OutOfMemoryException(fullMessage);
case status.InvalidArgument:
throw new ArgumentException(fullMessage);
case status.OutOfRange:
throw new ArgumentOutOfRangeException("", fullMessage);
case status.NotImplemented:
throw new NotImplementedException(fullMessage);
case status.KeyNotFound:
throw new KeyNotFoundException(fullMessage);
case status.MetadataTooLarge:
throw new CloudSpatialException(CloudSpatialErrorCode.MetadataTooLarge, message, requestCorrelationVector, responseCorrelationVector);
case status.ApplicationNotAuthenticated:
throw new CloudSpatialException(CloudSpatialErrorCode.ApplicationNotAuthenticated, message, requestCorrelationVector, responseCorrelationVector);
case status.ApplicationNotAuthorized:
throw new CloudSpatialException(CloudSpatialErrorCode.ApplicationNotAuthorized, message, requestCorrelationVector, responseCorrelationVector);
case status.ConcurrencyViolation:
throw new CloudSpatialException(CloudSpatialErrorCode.ConcurrencyViolation, message, requestCorrelationVector, responseCorrelationVector);
case status.NotEnoughSpatialData:
throw new CloudSpatialException(CloudSpatialErrorCode.NotEnoughSpatialData, message, requestCorrelationVector, responseCorrelationVector);
case status.NoSpatialLocationHint:
throw new CloudSpatialException(CloudSpatialErrorCode.NoSpatialLocationHint, message, requestCorrelationVector, responseCorrelationVector);
case status.CannotConnectToServer:
throw new CloudSpatialException(CloudSpatialErrorCode.CannotConnectToServer, message, requestCorrelationVector, responseCorrelationVector);
case status.ServerError:
throw new CloudSpatialException(CloudSpatialErrorCode.ServerError, message, requestCorrelationVector, responseCorrelationVector);
case status.AlreadyAssociatedWithADifferentStore:
throw new CloudSpatialException(CloudSpatialErrorCode.AlreadyAssociatedWithADifferentStore, message, requestCorrelationVector, responseCorrelationVector);
case status.AlreadyExists:
throw new CloudSpatialException(CloudSpatialErrorCode.AlreadyExists, message, requestCorrelationVector, responseCorrelationVector);
case status.NoLocateCriteriaSpecified:
throw new CloudSpatialException(CloudSpatialErrorCode.NoLocateCriteriaSpecified, message, requestCorrelationVector, responseCorrelationVector);
case status.NoAccessTokenSpecified:
throw new CloudSpatialException(CloudSpatialErrorCode.NoAccessTokenSpecified, message, requestCorrelationVector, responseCorrelationVector);
case status.UnableToObtainAccessToken:
throw new CloudSpatialException(CloudSpatialErrorCode.UnableToObtainAccessToken, message, requestCorrelationVector, responseCorrelationVector);
case status.TooManyRequests:
throw new CloudSpatialException(CloudSpatialErrorCode.TooManyRequests, message, requestCorrelationVector, responseCorrelationVector);
case status.LocateCriteriaMissingRequiredValues:
throw new CloudSpatialException(CloudSpatialErrorCode.LocateCriteriaMissingRequiredValues, message, requestCorrelationVector, responseCorrelationVector);
case status.LocateCriteriaInConflict:
throw new CloudSpatialException(CloudSpatialErrorCode.LocateCriteriaInConflict, message, requestCorrelationVector, responseCorrelationVector);
case status.LocateCriteriaInvalid:
throw new CloudSpatialException(CloudSpatialErrorCode.LocateCriteriaInvalid, message, requestCorrelationVector, responseCorrelationVector);
case status.LocateCriteriaNotSupported:
throw new CloudSpatialException(CloudSpatialErrorCode.LocateCriteriaNotSupported, message, requestCorrelationVector, responseCorrelationVector);
case status.Unknown:
throw new CloudSpatialException(CloudSpatialErrorCode.Unknown, message, requestCorrelationVector, responseCorrelationVector);
case status.HttpTimeout:
throw new CloudSpatialException(CloudSpatialErrorCode.HttpTimeout, message, requestCorrelationVector, responseCorrelationVector);
}
}