From cea64e619e714f6dbe51d37ca8329b58d8c271fb Mon Sep 17 00:00:00 2001 From: vman Date: Mon, 26 Dec 2022 16:47:10 -0500 Subject: License + global cache removal --- .../Exceptions/InvalidStatusException.cs | 63 ++++++++++++++++++++++ .../Exceptions/MessageTooLargeException.cs | 50 +++++++++++++++++ .../Exceptions/ObjectNotFoundException.cs | 47 ++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 VNLib.Data.Caching/Exceptions/InvalidStatusException.cs create mode 100644 VNLib.Data.Caching/Exceptions/MessageTooLargeException.cs create mode 100644 VNLib.Data.Caching/Exceptions/ObjectNotFoundException.cs (limited to 'VNLib.Data.Caching/Exceptions') diff --git a/VNLib.Data.Caching/Exceptions/InvalidStatusException.cs b/VNLib.Data.Caching/Exceptions/InvalidStatusException.cs new file mode 100644 index 0000000..2296774 --- /dev/null +++ b/VNLib.Data.Caching/Exceptions/InvalidStatusException.cs @@ -0,0 +1,63 @@ +/* +* Copyright (c) 2022 Vaughn Nugent +* +* Library: VNLib +* Package: VNLib.Data.Caching +* File: InvalidStatusException.cs +* +* InvalidStatusException.cs is part of VNLib.Data.Caching which is part of the larger +* VNLib collection of libraries and utilities. +* +* VNLib.Data.Caching is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* VNLib.Data.Caching is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see https://www.gnu.org/licenses/. +*/ + +using System; + +using VNLib.Net.Messaging.FBM; + +namespace VNLib.Data.Caching.Exceptions +{ + /// + /// Raised when the response status code of an FBM Request message is not valid for + /// the specified request + /// + public class InvalidStatusException : InvalidResponseException + { + private readonly string? StatusCode; + /// + /// Initalizes a new with the specfied status code + /// + /// + /// + public InvalidStatusException(string message, string statusCode):this(message) + { + this.StatusCode = statusCode; + } + + /// + public InvalidStatusException() + { + } + /// + public InvalidStatusException(string message) : base(message) + { + } + /// + public InvalidStatusException(string message, Exception innerException) : base(message, innerException) + { + } + /// + public override string Message => $"InvalidStatusException: Status Code {StatusCode} \r\n {base.Message}"; + } +} diff --git a/VNLib.Data.Caching/Exceptions/MessageTooLargeException.cs b/VNLib.Data.Caching/Exceptions/MessageTooLargeException.cs new file mode 100644 index 0000000..c306ba5 --- /dev/null +++ b/VNLib.Data.Caching/Exceptions/MessageTooLargeException.cs @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2022 Vaughn Nugent +* +* Library: VNLib +* Package: VNLib.Data.Caching +* File: MessageTooLargeException.cs +* +* MessageTooLargeException.cs is part of VNLib.Data.Caching which is part of the larger +* VNLib collection of libraries and utilities. +* +* VNLib.Data.Caching is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* VNLib.Data.Caching is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see https://www.gnu.org/licenses/. +*/ + +using System; +using System.Runtime.Serialization; + +using VNLib.Net.Messaging.FBM; + +namespace VNLib.Data.Caching.Exceptions +{ + /// + /// Raised when a request (or server response) calculates the size of the message to be too large to proccess + /// + public class MessageTooLargeException : FBMException + { + /// + public MessageTooLargeException() + {} + /// + public MessageTooLargeException(string message) : base(message) + {} + /// + public MessageTooLargeException(string message, Exception innerException) : base(message, innerException) + {} + /// + protected MessageTooLargeException(SerializationInfo info, StreamingContext context) : base(info, context) + {} + } +} diff --git a/VNLib.Data.Caching/Exceptions/ObjectNotFoundException.cs b/VNLib.Data.Caching/Exceptions/ObjectNotFoundException.cs new file mode 100644 index 0000000..e996ad6 --- /dev/null +++ b/VNLib.Data.Caching/Exceptions/ObjectNotFoundException.cs @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2022 Vaughn Nugent +* +* Library: VNLib +* Package: VNLib.Data.Caching +* File: ObjectNotFoundException.cs +* +* ObjectNotFoundException.cs is part of VNLib.Data.Caching which is part of the larger +* VNLib collection of libraries and utilities. +* +* VNLib.Data.Caching is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* VNLib.Data.Caching is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see https://www.gnu.org/licenses/. +*/ + +using System; + +namespace VNLib.Data.Caching.Exceptions +{ + /// + /// Raised when a command was executed on a desired object in the remote cache + /// but the object was not found + /// + public class ObjectNotFoundException : InvalidStatusException + { + internal ObjectNotFoundException() + {} + + internal ObjectNotFoundException(string message) : base(message) + {} + + internal ObjectNotFoundException(string message, string statusCode) : base(message, statusCode) + {} + + internal ObjectNotFoundException(string message, Exception innerException) : base(message, innerException) + {} + } +} -- cgit