Neonode zForce(TM) SDK
Connection.h
Go to the documentation of this file.
1 
12 #if !defined(CONNECTION_CONNECTION_H) && !defined(CONTAINS_CONNECTION)
13 
14 #ifndef ZFORCECOMMON_H
15  #error Please include "zForceCommon.h" before this file.
16 #endif // ZFORCECOMMON_H
17 
20 {
24 };
27 
32 {
34  uint32_t ErrorCode;
35  void ( * Destructor)(ConnectionMessage * self);
36 };
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif // __cplusplus
42 
55  ConnectionStatus connectionStatus, uint32_t errorCode);
56 
57 #ifdef __cplusplus
58 }
59 #endif // __cplusplus
60 
62 typedef struct Connection Connection;
64 struct Connection
65 {
66 #endif // !defined(CONNECTION_CONNECTION_H) && !defined(CONTAINS_CONNECTION)
67 #if !defined(CONNECTION_CONNECTION_H) || defined(CONTAINS_CONNECTION)
74  uint32_t NumberOfDevices;
75  bool IsConnected;
79  uint64_t LastResponseSerialNumber;
81 
99  void ( * Destructor)(Connection * self);
111  bool ( * AddDevice)(Connection * self, Device * device);
150  Device * ( * FindDevice)(Connection * self, DeviceType deviceType,
151  uint32_t deviceIndex);
163  bool ( * ReceiveDataFrame)(Connection * self, DataFrame * dateFrame);
178  bool ( * SendDataFrame)(Connection * self, DataFrame * dataFrame);
195  bool ( * SetMessageFilter)(Connection * self, Device * device,
196  MessageType messageType);
213  void ( * ClearMessageFilter)(Connection * self);
232  bool ( * EnqueueMessage)(Connection * self, Device * device,
233  Message * message);
265  bool ( * Connect)(Connection * self);
290  bool ( * Disconnect)(Connection * self);
311  void ( * Timeout)(Connection * self);
330  void ( * SetTimeout)(Connection * self,
331  uint64_t relativeTimeoutMilliSeconds);
346  void ( * SignalConnectionEstablished)(Connection * self);
347 #endif // !defined(CONNECTION_CONNECTION_H) || defined(CONTAINS_CONNECTION)
348 #if !defined(CONNECTION_CONNECTION_H) && !defined(CONTAINS_CONNECTION)
349 };
350 
351 #ifdef __cplusplus
352 extern "C"
353 {
354 #endif // __cplusplus
355 
405 DLLEXTERNAL Connection * Connection_New (char * connectionString,
406  char * protocolString,
407  char * dataFrameType);
408 
409 #ifdef __cplusplus
410 }
411 #endif // __cplusplus
412 
413 #define CONNECTION_CONNECTION_H
414 #endif // !defined(CONNECTION_CONNECTION_H) && !defined(CONTAINS_CONNECTION)
415 
Connection Fault.
Definition: Connection.h:23
void zForceMutex
Typecast to underlying (system) type.
Definition: OsAbstractionLayer.h:18
Device * FilterDevice
Which Device the filter is set to.
Definition: Connection.h:77
The main Connection struct.
Definition: Connection.h:64
bool IsConnected
Connected to unit.
Definition: Connection.h:75
Transport struct. This structure represents the base class of all Transport definitions.
Definition: Transport.h:46
Device ** Devices
List of Devices.
Definition: Connection.h:73
MessageType FilterMessageType
Definition: Connection.h:78
Queue * DeviceQueue
Queue to report Device events.
Definition: Connection.h:72
The Queue struct.
Definition: Queue.h:25
uint32_t ErrorCode
Error code if connection error.
Definition: Connection.h:34
The main Message struct.
Definition: Message.h:20
Struct containing the DataFrame information.
Definition: DataFrame.h:26
Queue * ConnectionQueue
Queue to report Connection events.
Definition: Connection.h:71
This structure represents the base class of all protocol definitions.
Definition: Protocol.h:30
MessageType
Enum describing the different message types that exists.
Definition: zForceTypes.h:96
Status changed to Connected.
Definition: Connection.h:21
ConnectionStatus
Connection events.
Definition: Connection.h:19
Main struct.
Definition: zForce.h:28
DeviceType
Enum describing the different device types that exists.
Definition: zForceTypes.h:82
zForce * zForce
Pointer to zForce instance.
Definition: Connection.h:68
Brief Device base class.
Definition: Device.h:23
zForceMutex * MessageFilterMutex
Message Filter Mutex.
Definition: Connection.h:76
DLLEXTERNAL Connection * Connection_New(char *connectionString, char *protocolString, char *dataFrameType)
Create a new Connection.
uint32_t NumberOfDevices
Number of Devices detected.
Definition: Connection.h:74
ConnectionStatus ConnectionStatus
New status of Connection.
Definition: Connection.h:33
Status changed to Disconnected.
Definition: Connection.h:22
Connection messages struct.
Definition: Connection.h:31
Protocol * Protocol
Protocol this Connection uses.
Definition: Connection.h:70
DLLINTERNAL ConnectionMessage * ConnectionMessage_New(ConnectionStatus connectionStatus, uint32_t errorCode)
Internal call used to create a new ConnectionMessage.
void(* Destructor)(ConnectionMessage *self)
Destructor.
Definition: Connection.h:35
Transport * Transport
Transport this Connection uses.
Definition: Connection.h:69