libiec61850  1.2.0
Macros | Typedefs | Enumerations | Functions
mms_server.h File Reference
#include "mms_device_model.h"
#include "mms_value.h"
#include "iso_server.h"

Go to the source code of this file.

Macros

#define MMS_LOGICAL_STATE_STATE_CHANGES_ALLOWED   0
 
#define MMS_LOGICAL_STATE_NO_STATE_CHANGES_ALLOWED   1
 
#define MMS_LOGICAL_STATE_LIMITED_SERVICES_PERMITTED   2
 
#define MMS_LOGICAL_STATE_SUPPORT_SERVICES_ALLOWED   3
 
#define MMS_PHYSICAL_STATE_OPERATIONAL   0
 
#define MMS_PHYSICAL_STATE_PARTIALLY_OPERATIONAL   1
 
#define MMS_PHYSICAL_STATE_INOPERATIONAL   2
 
#define MMS_PHYSICAL_STATE_NEEDS_COMMISSIONING   3
 

Typedefs

typedef struct sMmsServer * MmsServer
 
typedef struct sMmsServerConnection * MmsServerConnection
 
typedef MmsValue *(* MmsReadVariableHandler) (void *parameter, MmsDomain *domain, char *variableId, MmsServerConnection connection)
 
typedef MmsDataAccessError(* MmsReadAccessHandler) (void *parameter, MmsDomain *domain, char *variableId, MmsServerConnection connection)
 
typedef MmsDataAccessError(* MmsWriteVariableHandler) (void *parameter, MmsDomain *domain, char *variableId, MmsValue *value, MmsServerConnection connection)
 
typedef void(* MmsConnectionHandler) (void *parameter, MmsServerConnection connection, MmsServerEvent event)
 
typedef MmsError(* MmsNamedVariableListChangedHandler) (void *parameter, bool create, MmsVariableListType listType, MmsDomain *domain, char *listName, MmsServerConnection connection)
 callback handler that is called whenever a named variable list changes More...
 
typedef bool(* MmsObtainFileHandler) (void *parameter, MmsServerConnection connection, const char *sourceFilename, const char *destinationFilename)
 ObtainFile service callback handler. More...
 
typedef void(* MmsGetFileCompleteHandler) (void *parameter, MmsServerConnection connection, const char *destinationFilename)
 Get file complete (obtainFile service terminated) callback handler. More...
 
typedef MmsError(* MmsFileAccessHandler) (void *parameter, MmsServerConnection connection, MmsFileServiceType service, const char *localFilename, const char *otherFilename)
 MmsFileAccessHandler callback function. Use to monitor and control file access. More...
 
typedef void(* MmsStatusRequestListener) (void *parameter, MmsServer mmsServer, MmsServerConnection connection, bool extendedDerivation)
 User provided handler that is invoked on a MMS status request. More...
 

Enumerations

enum  MmsServerEvent { MMS_SERVER_NEW_CONNECTION, MMS_SERVER_CONNECTION_CLOSED }
 
enum  MmsVariableListType { MMS_DOMAIN_SPECIFIC, MMS_ASSOCIATION_SPECIFIC, MMS_VMD_SPECIFIC }
 
enum  MmsFileServiceType {
  MMS_FILE_ACCESS_TYPE_READ_DIRECTORY, MMS_FILE_ACCESS_TYPE_OPEN, MMS_FILE_ACCESS_TYPE_OBTAIN, MMS_FILE_ACCESS_TYPE_DELETE,
  MMS_FILE_ACCESS_TYPE_RENAME
}
 

Functions

MmsServer MmsServer_create (MmsDevice *device, TLSConfiguration tlsConfiguration)
 
void MmsServer_destroy (MmsServer self)
 
void MmsServer_installReadHandler (MmsServer self, MmsReadVariableHandler, void *parameter)
 
void MmsServer_installReadAccessHandler (MmsServer self, MmsReadAccessHandler, void *parameter)
 
void MmsServer_installWriteHandler (MmsServer self, MmsWriteVariableHandler, void *parameter)
 
void MmsServer_setLocalIpAddress (MmsServer self, const char *localIpAddress)
 
bool MmsServer_isRunning (MmsServer self)
 
void MmsServer_installConnectionHandler (MmsServer self, MmsConnectionHandler, void *parameter)
 
void MmsServer_setClientAuthenticator (MmsServer self, AcseAuthenticator authenticator, void *authenticatorParameter)
 
MmsDeviceMmsServer_getDevice (MmsServer self)
 
MmsValueMmsServer_getValueFromCache (MmsServer self, MmsDomain *domain, const char *itemId)
 
bool MmsServer_isLocked (MmsServer self)
 
void MmsServer_installVariableListChangedHandler (MmsServer self, MmsNamedVariableListChangedHandler handler, void *parameter)
 Install callback handler that is called when a named variable list changes (is created or deleted) More...
 
void MmsServer_installObtainFileHandler (MmsServer self, MmsObtainFileHandler handler, void *parameter)
 Install callback handler that is invoked when the file upload (obtainFile service) is invoked by the client. More...
 
void MmsServer_installGetFileCompleteHandler (MmsServer self, MmsGetFileCompleteHandler handler, void *parameter)
 Install callback handler that is invoked when the file upload (obtainFile service) is completed and the file has been uploaded. More...
 
void MmsServer_installFileAccessHandler (MmsServer self, MmsFileAccessHandler handler, void *parameter)
 Install a callback handler this is invoked when the client requests a file server. This function can be used to monitor and control file access. More...
 
void MmsServer_setFilestoreBasepath (MmsServer self, const char *basepath)
 Set the virtual filestore basepath for the MMS file services. More...
 
void MmsServer_lockModel (MmsServer self)
 lock the cached server data model More...
 
void MmsServer_unlockModel (MmsServer self)
 unlock the cached server data model More...
 
void MmsServer_insertIntoCache (MmsServer self, MmsDomain *domain, char *itemId, MmsValue *value)
 
void MmsServer_startListening (MmsServer self, int tcpPort)
 Start a new server thread and listen for incoming connections. More...
 
void MmsServer_stopListening (MmsServer self)
 Stop server thread an all open connection threads. More...
 
void MmsServer_startListeningThreadless (MmsServer self, int tcpPort)
 Start a new server in non-threaded operation mode. More...
 
int MmsServer_waitReady (MmsServer self, unsigned int timeoutMs)
 Wait for the server to come ready in non-threaded operation mode. More...
 
void MmsServer_handleIncomingMessages (MmsServer self)
 Handle client connections (for non-threaded operation mode) More...
 
void MmsServer_handleBackgroundTasks (MmsServer self)
 Handle MmsServer background task. More...
 
void MmsServer_stopListeningThreadless (MmsServer self)
 Stop the server (for non-threaded operation mode) More...
 
void MmsServer_setServerIdentity (MmsServer self, char *vendorName, char *modelName, char *revision)
 set the values that the server will give as response for an MMS identify request More...
 
char * MmsServer_getVendorName (MmsServer self)
 get the vendor name attribute of the VMD identity More...
 
char * MmsServer_getModelName (MmsServer self)
 get the model name attribute of the VMD identity More...
 
char * MmsServer_getRevision (MmsServer self)
 get the revision attribute of the VMD identity More...
 
void MmsServer_setVMDStatus (MmsServer self, int vmdLogicalStatus, int vmdPhysicalStatus)
 set the VMD state values for the VMD status service More...
 
int MmsServer_getVMDLogicalStatus (MmsServer self)
 get the logical status attribute of the VMD More...
 
int MmsServer_getVMDPhysicalStatus (MmsServer self)
 get the physical status attribute of the VMD More...
 
void MmsServer_setStatusRequestListener (MmsServer self, MmsStatusRequestListener listener, void *parameter)
 set the MmsStatusRequestListener for this MmsServer More...
 
char * MmsServerConnection_getClientAddress (MmsServerConnection self)
 
IsoConnection MmsServerConnection_getIsoConnection (MmsServerConnection self)