@ -1892,77 +1892,6 @@ typedef MmsDataAccessError
LIB61850_API void
IedServer_setReadAccessHandler ( IedServer self , ReadAccessHandler handler , void * parameter ) ;
/**
* \ brief Callback that is called in case of RCB access to give the user the opportunity to block or allow the operation
*
* \ note This callback is called before the IedServer_RCBEventHandler and only in case of operations ( RCB_EVENT_GET_PARAMETER , RCB_EVENT_SET_PARAMETER , RCB_EVENT_ENABLE
*
* \ param parameter user provided parameter
* \ param rcb affected report control block
* \ param connection client connection that is involved
* \ param operation one of the following operation event types : RCB_EVENT_GET_PARAMETER , RCB_EVENT_SET_PARAMETER
*/
typedef bool
( * IedServer_RCBAccessHandler ) ( void * parameter , ReportControlBlock * rcb , ClientConnection connection , IedServer_RCBEventType operation ) ;
/**
* \ brief Set a handler to control read and write access to report control blocks ( RCBs )
*
* \ param self the instance of IedServer to operate on .
* \ param handler the event handler to be used
* \ param parameter a user provided parameter that is passed to the handler .
*/
LIB61850_API void
IedServer_setRCBAccessHandler ( IedServer self , IedServer_RCBAccessHandler handler , void * parameter ) ;
typedef enum {
LCB_EVENT_GET_PARAMETER ,
LCB_EVENT_SET_PARAMETER
} IedServer_LCBEventType ;
/**
* \ brief Callback that is called in case of LCB access to give the user the opportunity to block or allow the operation
*
*
* \ param parameter user provided parameter
* \ param lcb affected log control block
* \ param connection client connection that is involved
* \ param operation one of the following operation event types : LCB_EVENT_GET_PARAMETER , LCB_EVENT_SET_PARAMETER
*/
typedef bool
( * IedServer_LCBAccessHandler ) ( void * parameter , LogControlBlock * lcb , ClientConnection connection , IedServer_LCBEventType operation ) ;
/**
* \ brief Set a handler to control read and write access to log control blocks ( LCBs )
*
* \ param self the instance of IedServer to operate on .
* \ param handler the event handler to be used
* \ param parameter a user provided parameter that is passed to the handler .
*/
LIB61850_API void
IedServer_setLCBAccessHandler ( IedServer self , IedServer_LCBAccessHandler handler , void * parameter ) ;
/**
* \ brief Callback that is called when the client is trying to read log data
*
* \ param parameter user provided parameter
* \ param logRef object reference of the log
* \ param connection client connection that is involved
*
* \ return true to allow read log data , false to deny
*/
typedef bool
( * IedServer_LogAccessHandler ) ( void * parameter , const char * logRef , ClientConnection connection ) ;
/**
* \ brief Set a handler control access to a log ( read log data )
*
* \ param handler the callback handler to be used
* \ param parameter a user provided parameter that is passed to the handler .
*/
LIB61850_API void
IedServer_setLogAccessHandler ( IedServer self , IedServer_LogAccessHandler handler , void * parameter ) ;
typedef enum {
DATASET_CREATE ,
DATASET_DELETE ,
@ -2040,9 +1969,31 @@ typedef enum {
IEC61850_CB_ACCESS_TYPE_WRITE
} IedServer_ControlBlockAccessType ;
/**
* \ brief Callback that is called when a client is invoking a read or write service to a control block or log
*
* This callback can be used to control the read and write access to control blocks and logs ( SGCB , LCBs , URCBs , BRCBs , GoCBs , SVCBs , logs )
*
* \ param parameter user provided parameter
* \ param connection client connection that is involved
* \ param acsiClass the ACSI class of the object
* \ param ld the logical device of the object
* \ param ln the logical node of the object
* \ param objectName the name of the object ( e . g . data object name , data set name , log name , RCB name , . . . )
* \ param subObjectName the name of a sub element of an object or NULL
* \ param accessType access type ( read = IEC61850_CB_ACCESS_TYPE_READ or write = IEC61850_CB_ACCESS_TYPE_WRITE )
*
* \ return true to include the object in the service response , otherwise false
*/
typedef bool
( * IedServer_ControlBlockAccessHandler ) ( void * parameter , ClientConnection connection , ACSIClass acsiClass , LogicalDevice * ld , LogicalNode * ln , const char * objectName , const char * subObjectName , IedServer_ControlBlockAccessType accessType ) ;
/**
* \ brief Set a handler to control read and write access to control blocks and logs
*
* \ param handler the callback handler to be used
* \ param parameter a user provided parameter that is passed to the handler .
*/
LIB61850_API void
IedServer_setControlBlockAccessHandler ( IedServer self , IedServer_ControlBlockAccessHandler handler , void * parameter ) ;