/** * glamac_errors.h - Unified error handling for GlaMaC * * Copyright (C) 2025 https://optics-design.com * * This program 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. * * See the COPYING file for the full license text. */ #ifndef GLAMAC_ERRORS_H #define GLAMAC_ERRORS_H #include "glamacdef.h" // Error codes for GlaMaC operations typedef enum { GLAMAC_SUCCESS = 0, GLAMAC_ERROR_MEMORY = -1, GLAMAC_ERROR_FILE_NOT_FOUND = -2, GLAMAC_ERROR_FILE_TOO_LARGE = -3, GLAMAC_ERROR_INVALID_JSON = -4, GLAMAC_ERROR_INVALID_PATH = -5, GLAMAC_ERROR_BUFFER_OVERFLOW = -6, GLAMAC_ERROR_MANUFACTURER_NOT_FOUND = -7, GLAMAC_ERROR_NO_GLASSES_FOUND = -8, GLAMAC_ERROR_INVALID_ARGUMENT = -9 } GlamacResult; // Convert error code to human-readable string const char* glamac_error_string(GlamacResult error); // Security limits #define MAX_JSON_FILE_SIZE (10 * 1024 * 1024) // 10MB limit #define MAX_JSON_STRING_LEN 1024 // Max string field length #define MAX_PATH_LEN 4096 // Max file path length #define MAX_MANUFACTURER_NAME_LEN 64 // Max manufacturer name length #endif /* GLAMAC_ERRORS_H */