libtase2  2.4.0
TASE.2/ICCP Protocol Source Code Library for C/C++
Loading...
Searching...
No Matches
tase2_endpoint.h File Reference
#include "iso_connection_parameters.h"
#include "tls_config.h"
#include "asecurity.h"

Go to the source code of this file.

Data Structures

struct  Tase2_TSelector
 T selector (ISO transport layer address) More...
 
struct  Tase2_SSelector
 S selector (ISO session layer address) More...
 
struct  Tase2_PSelector
 P selector (ISO presentation layer address) More...
 
struct  Tase2_ApplicationAddress
 

Typedefs

typedef struct sTase2_BilateralTable * Tase2_BilateralTable
 
typedef struct sTase2_Endpoint * Tase2_Endpoint
 A TASE.2 endpoint that can be configured as passive (TCP server) or active (TCP client)
 
typedef struct sTase2_Endpoint_Connection * Tase2_Endpoint_Connection
 Represents a connection to another connected TASE.2 endpoint.
 
typedef struct sTase2_Client * Tase2_Client
 A TASE.2 client to communicate with a single TASE.2 server.
 
typedef struct sTase2_Server * Tase2_Server
 Handle for a Tase2_Server instance (representing a TASE.2/MMS server)
 
typedef void(* Tase2_Endpoint_StateChangedHandler) (Tase2_Endpoint endpoint, void *parameter, Tase2_Endpoint_State newState)
 Callback function is called whenever the state of the endpoint changes.
 
typedef void(* Tase2_Endpoint_ConnectionHandler) (Tase2_Endpoint endpoint, void *parameter, Tase2_Endpoint_Connection connection, bool connect)
 Callback function is called when another endpoint is connected or diconnected to the local endpoint.
 
typedef bool(* Tase2_Endpoint_ConnectionAcceptHandler) (Tase2_Endpoint endpoint, void *parameter, const char *peerAddress, Tase2_BilateralTable clientBlt, Tase2_AuthenticationMethod authType, uint8_t *authValue, int authValLen)
 Callback handler to accept/reject new connections.
 
typedef ASecurityConfiguration(* Tase2_Endpoint_ALSConfigurationProvider) (Tase2_Endpoint endpoint, void *parameter, const char *peerAddress, Tase2_ApplicationAddress localApAddr, Tase2_ApplicationAddress remoteApAddr)
 Callback handler to provide a connection specific ASecurityConfiguration instance for ALS setup.
 

Enumerations

enum  Tase2_Endpoint_State {
  TASE2_ENDPOINT_STATE_IDLE = 0 , TASE2_ENDPOINT_STATE_LISTENING = 1 , TASE2_ENDPOINT_STATE_CONNECTED = 2 , TASE2_ENDPOINT_STATE_CONNECTING = 3 ,
  TASE2_ENDPOINT_STATE_ERROR = 4
}
 
enum  Tase2_ALS_Mode { TASE2_ALS_MODE_UNSECURE = 0 , TASE2_ALS_MODE_BOTH = 1 , TASE2_ALS_MODE_SECURE = 2 }
 
enum  Tase2_AuthenticationMethod {
  TASE2_AUTH_TYPE_NONE = 0 , TASE2_AUTH_TYPE_PASSWORD = 1 , TASE2_AUTH_TYPE_CERTIFICATE = 2 , TASE2_AUTH_TYPE_TLS = 3 ,
  TASE2_AUTH_TYPE_UNKNOWN = 99
}
 Authentication mechanism used by peer. More...
 

Functions

TASE2_API Tase2_Endpoint Tase2_Endpoint_create (TLSConfiguration tlsConfig, bool passive)
 Create a new endpoint instance.
 
TASE2_API bool Tase2_Endpoint_isPassive (Tase2_Endpoint self)
 Check if endpoint is in passive mode.
 
TASE2_API void Tase2_Endpoint_setTLSConfiguration (Tase2_Endpoint self, TLSConfiguration tlsConfig)
 Set the TLS configuration.
 
TASE2_API void Tase2_Endpoint_setALSMode (Tase2_Endpoint self, Tase2_ALS_Mode mode)
 Set the ALS (application layer security) mode.
 
TASE2_API void Tase2_Endpoint_setALSConfiguration (Tase2_Endpoint self, ASecurityConfiguration secConfig)
 Set application layer security (ALS) configuration.
 
TASE2_API void Tase2_Endpoint_setStateChangedHandler (Tase2_Endpoint self, Tase2_Endpoint_StateChangedHandler handler, void *parameter)
 Set a handler that is called whenever the state of the endpoint changes.
 
TASE2_API void Tase2_Endpoint_setConnectionHandler (Tase2_Endpoint self, Tase2_Endpoint_ConnectionHandler handler, void *parameter)
 Set a handler that is called whenever a connection to a remote endpoint is opened or closed.
 
TASE2_API void Tase2_Endpoint_setConnectionAcceptHandler (Tase2_Endpoint self, Tase2_Endpoint_ConnectionAcceptHandler handler, void *parameter)
 Set the peer connection handler that is called when a peer tries to connect.
 
TASE2_API void Tase2_Endpoint_setALSConfigurationProvider (Tase2_Endpoint self, Tase2_Endpoint_ALSConfigurationProvider provider, void *parameter)
 Set a ALS configuration provider. This enables the user to provide a connection specific ASecurityConfiguration instance for ALS setup.
 
TASE2_API void Tase2_Endpoint_setAddressMatchingRules (Tase2_Endpoint self, bool apTitle, bool aeQualifier, bool pSelector, bool sSelector, bool tSelector)
 Set the address matching rules for identifying peer endpoints.
 
TASE2_API void Tase2_Endpoint_setIdentity (Tase2_Endpoint self, const char *vendor, const char *model, const char *revision)
 Set own identity for the identity service.
 
TASE2_API Tase2_ApplicationAddress Tase2_Endpoint_getLocalApplicationAddress (Tase2_Endpoint self)
 Get the local application address instance.
 
TASE2_API void Tase2_Endpoint_setLocalApTitle (Tase2_Endpoint self, const char *apTitle, int aeQualifier)
 Set the local AP-title value.
 
TASE2_API void Tase2_Endpoint_setLocalAddresses (Tase2_Endpoint self, Tase2_PSelector pSelector, Tase2_SSelector sSelector, Tase2_TSelector tSelector)
 Sets the local addresses for ISO layers (transport, session, presentation)
 
TASE2_API void Tase2_Endpoint_setLocalIpAddress (Tase2_Endpoint self, const char *ipAddress)
 Sets the local IP address (only for passive mode)
 
TASE2_API void Tase2_Endpoint_setLocalTcpPort (Tase2_Endpoint self, int tcpPort)
 Sets the local TCP port (only for passive mode)
 
TASE2_API void Tase2_Endpoint_setLocalApTitleEx (Tase2_Endpoint self, const char *apTitle)
 Set local AP-title.
 
TASE2_API void Tase2_Endpoint_setLocalAeQualifier (Tase2_Endpoint self, int aeQualifier)
 Set local AE-qualifier.
 
TASE2_API void Tase2_Endpoint_setLocalAeInvocationId (Tase2_Endpoint self, int aeInvocationId)
 Set local AE-invocation-ID.
 
TASE2_API void Tase2_Endpoint_setLocalApInvocationId (Tase2_Endpoint self, int apInvocationId)
 Set local AP-invocation-ID.
 
TASE2_API Tase2_ApplicationAddress Tase2_Endpoint_getRemoteApplicationAddress (Tase2_Endpoint self)
 Get the default remote application address instance.
 
TASE2_API void Tase2_Endpoint_setRemoteApTitle (Tase2_Endpoint self, const char *apTitle, int aeQualifier)
 Set remote AP-title and AE-qualifier (for active endpoint)
 
TASE2_API void Tase2_Endpoint_setRemoteAddresses (Tase2_Endpoint self, Tase2_PSelector pSelector, Tase2_SSelector sSelector, Tase2_TSelector tSelector)
 Sets the remote addresses for ISO layers (transport, session, presentation)
 
TASE2_API void Tase2_Endpoint_setRemoteIpAddress (Tase2_Endpoint self, const char *ipAddress)
 Sets the remote IP address (only for active mode)
 
TASE2_API void Tase2_Endpoint_setRemoteTcpPort (Tase2_Endpoint self, int tcpPort)
 Sets the remote TCP port (only for active mode)
 
TASE2_API void Tase2_Endpoint_setRemoteApTitleEx (Tase2_Endpoint self, const char *apTitle)
 Set remote AP-title (for active endpoint)
 
TASE2_API void Tase2_Endpoint_setRemoteAeQualifier (Tase2_Endpoint self, int aeQualifier)
 Set remote AE-qualifier (for active endpoint)
 
TASE2_API void Tase2_Endpoint_setRemoteAeInvocationId (Tase2_Endpoint self, int aeInvocationId)
 Set remote AE-invocation-ID (for active endpoint)
 
TASE2_API void Tase2_Endpoint_setRemoteApInvocationId (Tase2_Endpoint self, int apInvocationId)
 Set remote AP-invocation-ID (for active endpoint)
 
TASE2_API void Tase2_Endpoint_setMaxMmsPduSize (Tase2_Endpoint self, int maxPduSize)
 Sets the maximum MMS PDU size used by the endpoint.
 
TASE2_API void Tase2_Endpoint_setMaxServOutstandingCalling (Tase2_Endpoint self, int value)
 Set the maximum number of outstanding service calls.
 
TASE2_API void Tase2_Endpoint_setMaxServOutstandingCalled (Tase2_Endpoint self, int value)
 Set the maximum number of outstanding service calls.
 
TASE2_API void Tase2_Endpoint_setRequestTimeout (Tase2_Endpoint self, int timeoutInMs)
 Sets the timeout for confirmed request messages.
 
TASE2_API void Tase2_Endpoint_setWriteTimeout (Tase2_Endpoint self, int timeoutInMs)
 Sets the timeout for writing to TCP sockets.
 
TASE2_API void Tase2_Endpoint_setConnectTimeout (Tase2_Endpoint self, int timeoutInMs)
 Sets the connect timeout of active endpoints.
 
TASE2_API void Tase2_Endpoint_connect (Tase2_Endpoint self)
 Connect the endpoint (start a passive or active TCP endpoint)
 
TASE2_API void Tase2_Endpoint_disconnect (Tase2_Endpoint self, int disconnectMethod)
 Disconnect (close all connections and stop listening for new connections)
 
TASE2_API void Tase2_Endpoint_disconnectPeer (Tase2_Endpoint self, const char *peerIpAddress)
 Disconnect a specific connection identified by the IP address and optionally by the port number.
 
TASE2_API bool Tase2_Endpoint_isConnected (Tase2_Endpoint self)
 Check if the endpoint is connected with at least one TCP client (passive endpoint) or connected to a TCP server (active endpoint)
 
TASE2_API int Tase2_Endpoint_connectedPeers (Tase2_Endpoint self)
 Get number of connected peers.
 
TASE2_API bool Tase2_Endpoint_waitForState (Tase2_Endpoint self, Tase2_Endpoint_State state, int timeoutInMs)
 Wait until the endpoint enters a specific state of state changes to TASE2_ENDPOINT_STATE_ERROR.
 
TASE2_API Tase2_Endpoint_State Tase2_Endpoint_getState (Tase2_Endpoint self)
 Get the current state of the endpoint.
 
TASE2_API void Tase2_Endpoint_addServer (Tase2_Endpoint self, Tase2_Server server)
 Add a server to the endpoint.
 
TASE2_API Tase2_Server Tase2_Endpoint_removeServer (Tase2_Endpoint self, Tase2_Server server)
 Remove a server from the endpoint.
 
TASE2_API Tase2_Client Tase2_Endpoint_removeClient (Tase2_Endpoint self, Tase2_Client client)
 Remove a client from the endpoint.
 
TASE2_API void Tase2_Endpoint_destroy (Tase2_Endpoint self)
 Delete the endpoint and release all resources.
 
TASE2_API const char * Tase2_Endpoint_getId (Tase2_Endpoint self)
 Get the ID string of the endpoint.
 
TASE2_API void Tase2_Endpoint_setId (Tase2_Endpoint self, const char *id)
 Set the ID string of the endpoint.
 
TASE2_API char * Tase2_Endpoint_Connection_getPeerIpAddress (Tase2_Endpoint_Connection self)
 Get the address of the peer application (IP address and port number)
 
TASE2_API char * Tase2_Endpoint_Connection_getPeerApTitle (Tase2_Endpoint_Connection self)
 Get the ISO ACSE AP-title of the peer.
 
TASE2_API Tase2_TSelectorTase2_Endpoint_Connection_getPeerTSel (Tase2_Endpoint_Connection self)
 Get the T selector of the peer.
 
TASE2_API Tase2_SSelectorTase2_Endpoint_Connection_getPeerSSel (Tase2_Endpoint_Connection self)
 Get the S selector of the peer.
 
TASE2_API Tase2_PSelectorTase2_Endpoint_Connection_getPeerPSel (Tase2_Endpoint_Connection self)
 Get the P selector of the peer.
 
TASE2_API int Tase2_Endpoint_Connection_getPeerAeQualifier (Tase2_Endpoint_Connection self)
 Get the ISO ACSE AE-qualifier of the peer.
 
TASE2_API int Tase2_Endpoint_Connection_getMaxPduSize (Tase2_Endpoint_Connection self)
 Get the maximum MMS PDU size used by this connection.