60#include <pdi/export.h>
61#include <pdi/version.h>
65#define PDI_UNAVAILABLE_DEPRECATED [[deprecated("PDI_UNAVAILABLE is never used")]]
66#define PDI_ERR_CONFIG_DEPRECATED [[deprecated("Use PDI_ERR_SPECTREE instead")]]
67#define PDI_ERR_RIGHT_DEPRECATED [[deprecated("Use PDI_ERR_PERMISSION instead")]]
69#define PDI_UNAVAILABLE_DEPRECATED
70#define PDI_ERR_CONFIG_DEPRECATED
71#define PDI_ERR_RIGHT_DEPRECATED
80typedef enum PDI_status_e {
85 PDI_UNAVAILABLE PDI_UNAVAILABLE_DEPRECATED = (
PDI_OK + 1),
119 char const *
const PDI_STATUS_MSG[]
122 "Invalid entry in specification tree",
123 "Invalid value expression",
127 "Precondition not respected",
130 "Invalid action requested",
142typedef struct PDI_errhandler_s {
215typedef enum PDI_inout_e {
303#ifdef PDI_WITH_DEPRECATED
319PDI_status_t PDI_DEPRECATED_EXPORT PDI_transaction_begin(
const char* name);
331PDI_status_t PDI_DEPRECATED_EXPORT PDI_transaction_end(
void);
PDI_status_t PDI_release(const char *name)
Releases ownership of a data shared with PDI.
PDI_inout_t
Access directions.
Definition pdi.h:215
PDI_status_t PDI_multi_expose(const char *event_name, const char *name, const void *data, PDI_inout_t access,...)
Performs multiple exposes at once.
PDI_status_t PDI_access(const char *name, void **buffer, PDI_inout_t inout)
Requests for PDI to access a data buffer.
PDI_status_t PDI_share(const char *name, const void *data, PDI_inout_t access)
Shares some data with PDI.
PDI_status_t PDI_event(const char *event)
Triggers a PDI "event".
PDI_status_t PDI_reclaim(const char *name)
Reclaims ownership of a data buffer shared with PDI.
PDI_status_t PDI_expose(const char *name, const void *data, PDI_inout_t access)
Shortly exposes some data to PDI.
@ PDI_OUT
data transfer from the main code to PDI
Definition pdi.h:221
@ PDI_INOUT
data transfer in both direction
Definition pdi.h:223
@ PDI_IN
data tranfer from PDI to the main code
Definition pdi.h:219
@ PDI_NONE
No data transfert.
Definition pdi.h:217
PDI_errfunc_f func
The function to handle the error (none if NULL).
Definition pdi.h:144
void * context
the context that will be provided to the function
Definition pdi.h:147
PDI_errhandler_t PDI_errhandler(PDI_errhandler_t handler)
Sets the error handler to use.
const PDI_errhandler_t PDI_ASSERT_HANDLER
Prints the error message and aborts if the status is invalid.
const PDI_errhandler_t PDI_NULL_HANDLER
Does nothing.
PDI_status_t
Error codes of PDI.
Definition pdi.h:80
const char * PDI_errmsg(void)
Return a human-readabe message describing the last error that occured in PDI.
const PDI_errhandler_t PDI_WARN_HANDLER
Prints the error message and continue if the status is invalid.
void(* PDI_errfunc_f)(PDI_status_t status, const char *message, void *context)
Type of a callback function used when an error occurs.
Definition pdi.h:138
@ PDI_ERR_VALUE
A value expression is invalid.
Definition pdi.h:90
@ PDI_ERR_SPECTREE
Invalid entry in the specification tree.
Definition pdi.h:87
@ PDI_ERR_STATE
A call to a function has been made at a wrong time (e.g.
Definition pdi.h:100
@ PDI_OK
everything went well
Definition pdi.h:82
@ PDI_ERR_TYPE
Invalid type error.
Definition pdi.h:105
@ PDI_ERR_PERMISSION
A conflict of ownership over a content has been raised.
Definition pdi.h:102
@ PDI_ERR_SYSTEM
A system error occurred (OS, etc.).
Definition pdi.h:96
@ PDI_ERR_INVALIDACTION
Action described in the specification tree is invalid.
Definition pdi.h:107
@ PDI_ERR_MULTIPLE
Multiple errors of different types append.
Definition pdi.h:109
@ PDI_ERR_IMPL
Implementation limitation (typically an unimplemented feature).
Definition pdi.h:94
@ PDI_NB_STATUSES_DEFINED
The amount of distinct error codes defined. This should not be used as an error code.
Definition pdi.h:112
@ PDI_ERR_PLUGIN
Tried to load a non-existing plugin.
Definition pdi.h:92
Definition of an error handler.
Definition pdi.h:142
PDI_status_t PDI_init(PC_tree_t conf)
Initializes PDI.
PDI_status_t PDI_finalize(void)
Finalizes PDI.
PDI_status_t PDI_version(unsigned long *provided, unsigned long expected)
Checks PDI API version.