Neonode zForce(TM) SDK
Connection.h
Go to the documentation of this file.
1 
12 #ifndef CONNECTION_CONNECTION_H
13 #define CONNECTION_CONNECTION_H
14 
15 #ifndef ZFORCECOMMON_H
16  #error Please include "zForceCommon.h" before this file.
17 #endif // ZFORCECOMMON_H
18 
23 {
27 };
28 
31 {
33  uint32_t ErrorCode;
34  void ( * Destructor)(ConnectionMessage * self);
35 };
36 
37 DLLINTERNAL ConnectionMessage * ConnectionMessage_New (
38  ConnectionStatus connectionStatus, uint32_t errorCode);
39 
41 typedef struct Connection Connection;
43 struct Connection
44 {
51  uint32_t NumberOfDevices;
52  bool IsConnected;
55  MessageType FilterMessageType;
56  uint64_t LastResponseSerialNumber;
58 
76  void ( * Destructor)(Connection * self);
88  bool ( * AddDevice)(Connection * self, Device * device);
127  Device * ( * FindDevice)(Connection * self, DeviceType deviceType,
128  uint32_t deviceIndex);
140  bool ( * ReceiveDataFrame)(Connection * self, DataFrame * dateFrame);
155  bool ( * SendDataFrame)(Connection * self, DataFrame * dataFrame);
172  bool ( * SetMessageFilter)(Connection * self, Device * device,
173  MessageType messageType);
190  void ( * ClearMessageFilter)(Connection * self);
209  bool ( * EnqueueMessage)(Connection * self, Device * device,
210  Message * message);
242  bool ( * Connect)(Connection * self);
267  bool ( * Disconnect)(Connection * self);
288  void ( * Timeout)(Connection * self);
307  void ( * SetTimeout)(Connection * self,
308  uint64_t relativeTimeoutMilliSeconds);
323  void ( * SignalConnectionEstablished)(Connection * self);
324 };
325 
355 DLLEXTERNAL Connection * Connection_New (char * connectionString,
356  char * protocolString,
357  char * dataFrameType);
358 
359 #endif // CONNECTION_CONNECTION_H
360 
Connection Fault.
Definition: Connection.h:26
void zForceMutex
Typecast to underlying (system) type.
Definition: OsAbstractionLayer.h:19
Device * FilterDevice
Which Device the filter is set to.
Definition: Connection.h:54
The main Connection struct.
Definition: Connection.h:43
bool IsConnected
Connected to unit.
Definition: Connection.h:52
Transport struct. This structure represents the base class of all Transport definitions.
Definition: Transport.h:46
Device ** Devices
List of Devices.
Definition: Connection.h:50
MessageType FilterMessageType
Definition: Connection.h:55
Queue * DeviceQueue
Queue to report Device events.
Definition: Connection.h:49
The Queue struct.
Definition: Queue.h:26
uint32_t ErrorCode
Error code if connection error.
Definition: Connection.h:33
Definition: Message.h:16
Struct containing the DataFrame information.
Definition: DataFrame.h:27
Queue * ConnectionQueue
Queue to report Connection events.
Definition: Connection.h:48
This structure represents the base class of all protocol definitions.
Definition: Protocol.h:31
Status changed to Connected.
Definition: Connection.h:24
ConnectionStatus
Connection events.
Definition: Connection.h:22
Main struct.
Definition: zForce.h:29
zForce * zForce
Pointer to zForce instance.
Definition: Connection.h:45
Brief Device base class.
Definition: Device.h:24
zForceMutex * MessageFilterMutex
Message Filter Mutex.
Definition: Connection.h:53
DLLEXTERNAL Connection * Connection_New(char *connectionString, char *protocolString, char *dataFrameType)
Create a new Connection.
uint32_t NumberOfDevices
Number of Devices detected.
Definition: Connection.h:51
ConnectionStatus ConnectionStatus
New status of Connection.
Definition: Connection.h:32
Status changed to Disconnected.
Definition: Connection.h:25
Definition: Connection.h:30
Protocol * Protocol
Protocol this Connection uses.
Definition: Connection.h:47
void(* Destructor)(ConnectionMessage *self)
Destructor.
Definition: Connection.h:34
Transport * Transport
Transport this Connection uses.
Definition: Connection.h:46