Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion MEOS.NET.Tests/GeneratedObjectLayerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ public void MakingAnInstantFromAValueAndAMomentReadsBack()
[TestMethod]
public void MalformedTextRaisesTheMeosError()
{
MEOSException raised = Assert.ThrowsException<MEOSUnspecifiedInternalException>(
MEOSException raised = Assert.ThrowsException<MEOSInternalErrorException>(
() => TFloat.In("e" + Instant));

StringAssert.Contains(raised.Message, "e25.0");
Expand Down
29 changes: 0 additions & 29 deletions MEOS.NET/Errors/MEOSErrorCodes.cs

This file was deleted.

91 changes: 91 additions & 0 deletions MEOS.NET/Errors/MEOSErrorCodes.g.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#nullable enable

namespace MEOS.NET.Errors
{
/// <summary>Every code MEOS raises with, and what each one means.</summary>
[System.CodeDom.Compiler.GeneratedCode("MEOS.NET.ObjectGen", "0.1.0")]
public enum MEOSErrorCodes
{
/// <summary>Successful operation (<c>MEOS_SUCCESS</c>).</summary>
Success = 0,

/// <summary>Unspecified internal error (<c>MEOS_ERR_INTERNAL_ERROR</c>).</summary>
InternalError = 1,

/// <summary>Internal type error (<c>MEOS_ERR_INTERNAL_TYPE_ERROR</c>).</summary>
InternalTypeError = 2,

/// <summary>Internal out of range error (<c>MEOS_ERR_VALUE_OUT_OF_RANGE</c>).</summary>
ValueOutOfRange = 3,

/// <summary>Internal division by zero error (<c>MEOS_ERR_DIVISION_BY_ZERO</c>).</summary>
DivisionByZero = 4,

/// <summary>Internal malloc error (<c>MEOS_ERR_MEMORY_ALLOC_ERROR</c>).</summary>
MemoryAllocError = 5,

/// <summary>Internal aggregation error (<c>MEOS_ERR_AGGREGATION_ERROR</c>).</summary>
AggregationError = 6,

/// <summary>Internal directory error (<c>MEOS_ERR_DIRECTORY_ERROR</c>).</summary>
DirectoryError = 7,

/// <summary>Internal file error (<c>MEOS_ERR_FILE_ERROR</c>).</summary>
FileError = 8,

/// <summary>Out of memory error (<c>MEOS_ERR_OUT_OF_MEMORY</c>).</summary>
OutOfMemory = 9,

/// <summary>Invalid argument (<c>MEOS_ERR_INVALID_ARG</c>).</summary>
InvalidArg = 10,

/// <summary>Invalid argument type (<c>MEOS_ERR_INVALID_ARG_TYPE</c>).</summary>
InvalidArgType = 11,

/// <summary>Invalid argument value (<c>MEOS_ERR_INVALID_ARG_VALUE</c>).</summary>
InvalidArgValue = 12,

/// <summary>Feature not currently supported (<c>MEOS_ERR_FEATURE_NOT_SUPPORTED</c>).</summary>
FeatureNotSupported = 13,

/// <summary>Indeterminate collation (<c>MEOS_ERR_INDETERMINATE_COLLATION</c>).</summary>
IndeterminateCollation = 14,

/// <summary>Syntax error (<c>MEOS_ERR_SYNTAX_ERROR</c>).</summary>
SyntaxError = 15,

/// <summary>Operation returned null (<c>MEOS_ERR_NULL_RESULT</c>).</summary>
NullResult = 16,

/// <summary>MFJSON input error (<c>MEOS_ERR_MFJSON_INPUT</c>).</summary>
MFJSONInput = 20,

/// <summary>MFJSON output error (<c>MEOS_ERR_MFJSON_OUTPUT</c>).</summary>
MFJSONOutput = 21,

/// <summary>Text input error (<c>MEOS_ERR_TEXT_INPUT</c>).</summary>
TextInput = 22,

/// <summary>Text output error (<c>MEOS_ERR_TEXT_OUTPUT</c>).</summary>
TextOutput = 23,

/// <summary>WKB input error (<c>MEOS_ERR_WKB_INPUT</c>).</summary>
WKBInput = 24,

/// <summary>WKB output error (<c>MEOS_ERR_WKB_OUTPUT</c>).</summary>
WKBOutput = 25,

/// <summary>GEOJSON input error (<c>MEOS_ERR_GEOJSON_INPUT</c>).</summary>
GEOJSONInput = 26,

/// <summary>GEOJSON output error (<c>MEOS_ERR_GEOJSON_OUTPUT</c>).</summary>
GEOJSONOutput = 27,

/// <summary>SQL JSON error (<c>MEOS_ERR_SQL_JSON_ERROR</c>).</summary>
SQLJSONError = 28,

/// <summary>Regular expression error (<c>MEOS_ERR_INVALID_REGULAR_EXPRESSION</c>).</summary>
InvalidRegularExpression = 29,

}
}
123 changes: 0 additions & 123 deletions MEOS.NET/Errors/MEOSErrorHandling.cs

This file was deleted.

63 changes: 63 additions & 0 deletions MEOS.NET/Errors/MEOSErrorHandling.g.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#nullable enable

using MEOS.NET.Exceptions;

namespace MEOS.NET.Errors
{
/// <summary>Turns the error MEOS reports into the exception for its code.</summary>
[System.CodeDom.Compiler.GeneratedCode("MEOS.NET.ObjectGen", "0.1.0")]
internal static class MEOSErrorHandling
{
private static MEOSException? pending;

/// <summary>Raise what MEOS reported since the last check, if anything.</summary>
internal static void CheckError()
{
if (pending is null)
{
return;
}

var raised = pending;
pending = null;
throw raised;
}

/// <summary>The handler MEOS calls; it records, and CheckError raises.</summary>
internal static void InternalErrorHandler(int level, int errorCode, string message)
=> pending = errorCode switch
{
0 => null, // MEOS_SUCCESS
1 => new MEOSInternalErrorException(level, MEOSErrorCodes.InternalError, message),
2 => new MEOSInternalTypeErrorException(level, MEOSErrorCodes.InternalTypeError, message),
3 => new MEOSValueOutOfRangeException(level, MEOSErrorCodes.ValueOutOfRange, message),
4 => new MEOSDivisionByZeroException(level, MEOSErrorCodes.DivisionByZero, message),
5 => new MEOSMemoryAllocErrorException(level, MEOSErrorCodes.MemoryAllocError, message),
6 => new MEOSAggregationErrorException(level, MEOSErrorCodes.AggregationError, message),
7 => new MEOSDirectoryErrorException(level, MEOSErrorCodes.DirectoryError, message),
8 => new MEOSFileErrorException(level, MEOSErrorCodes.FileError, message),
9 => new MEOSOutOfMemoryException(level, MEOSErrorCodes.OutOfMemory, message),
10 => new MEOSInvalidArgException(level, MEOSErrorCodes.InvalidArg, message),
11 => new MEOSInvalidArgTypeException(level, MEOSErrorCodes.InvalidArgType, message),
12 => new MEOSInvalidArgValueException(level, MEOSErrorCodes.InvalidArgValue, message),
13 => new MEOSFeatureNotSupportedException(level, MEOSErrorCodes.FeatureNotSupported, message),
14 => new MEOSIndeterminateCollationException(level, MEOSErrorCodes.IndeterminateCollation, message),
15 => new MEOSSyntaxErrorException(level, MEOSErrorCodes.SyntaxError, message),
16 => new MEOSNullResultException(level, MEOSErrorCodes.NullResult, message),
20 => new MEOSMFJSONInputException(level, MEOSErrorCodes.MFJSONInput, message),
21 => new MEOSMFJSONOutputException(level, MEOSErrorCodes.MFJSONOutput, message),
22 => new MEOSTextInputException(level, MEOSErrorCodes.TextInput, message),
23 => new MEOSTextOutputException(level, MEOSErrorCodes.TextOutput, message),
24 => new MEOSWKBInputException(level, MEOSErrorCodes.WKBInput, message),
25 => new MEOSWKBOutputException(level, MEOSErrorCodes.WKBOutput, message),
26 => new MEOSGEOJSONInputException(level, MEOSErrorCodes.GEOJSONInput, message),
27 => new MEOSGEOJSONOutputException(level, MEOSErrorCodes.GEOJSONOutput, message),
28 => new MEOSSQLJSONErrorException(level, MEOSErrorCodes.SQLJSONError, message),
29 => new MEOSInvalidRegularExpressionException(level, MEOSErrorCodes.InvalidRegularExpression, message),
// A code this binding does not name is still an error MEOS
// raised, so it reaches the caller rather than being dropped.
_ => new MEOSInternalErrorException(
level, MEOSErrorCodes.InternalError, message),
};
}
}
15 changes: 15 additions & 0 deletions MEOS.NET/Exceptions/MEOSAggregationErrorException.g.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#nullable enable

using MEOS.NET.Errors;

namespace MEOS.NET.Exceptions
{
/// <summary>Internal aggregation error (<c>MEOS_ERR_AGGREGATION_ERROR</c>).</summary>
[System.CodeDom.Compiler.GeneratedCode("MEOS.NET.ObjectGen", "0.1.0")]
public class MEOSAggregationErrorException : MEOSException
{
internal MEOSAggregationErrorException(int level, MEOSErrorCodes code, string message)
: base(level, code, message)
{ }
}
}
11 changes: 0 additions & 11 deletions MEOS.NET/Exceptions/MEOSAggregationException.cs

This file was deleted.

11 changes: 0 additions & 11 deletions MEOS.NET/Exceptions/MEOSBadGeoJSONInputException.cs

This file was deleted.

11 changes: 0 additions & 11 deletions MEOS.NET/Exceptions/MEOSBadGeoJSONOutputException.cs

This file was deleted.

11 changes: 0 additions & 11 deletions MEOS.NET/Exceptions/MEOSBadMFJSONInputException.cs

This file was deleted.

11 changes: 0 additions & 11 deletions MEOS.NET/Exceptions/MEOSBadMFJSONOutputException.cs

This file was deleted.

Loading
Loading