NAVTOR SDK  v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
communication_line_interfaces.h
1 #ifndef SDK_COMMUNICATION_LINE_INTERFACES_H
2 #define SDK_COMMUNICATION_LINE_INTERFACES_H
3 
4 #include <base/inc/platform.h>
5 #include <base/inc/base_types.h>
6 #include <base/inc/sdk_results.h>
9 #include <base/inc/sdk_ref_ptr.h>
10 
15 
16 #ifndef SDK_COMMUNICATIONLINE_NAMESPACE
17 #define SDK_COMMUNICATIONLINE_NAMESPACE SDK_NAMESPACE::communication_line
18 #endif // SDK_COMMUNICATIONLINE_NAMESPACE
19 
20 #ifndef SDK_COMMUNICATIONLINE_BEGIN_NAMESPACE
21 #define SDK_COMMUNICATIONLINE_BEGIN_NAMESPACE SDK_BEGIN_NAMESPACE \
22  namespace communication_line {
23 #endif // SDK_COMMUNICATIONLINE_BEGIN_NAMESPACE
24 
25 #ifndef SDK_COMMUNICATIONLINE_END_NAMESPACE
26 #define SDK_COMMUNICATIONLINE_END_NAMESPACE SDK_END_NAMESPACE }
27 #endif // SDK_COMMUNICATIONLINE_END_NAMESPACE
28 
29 SDK_COMMUNICATIONLINE_BEGIN_NAMESPACE
30 
33 
34 class ICommunicationLine : public ISDKProperties {
37 public:
39  virtual SDKResult SDK_CALLTYPE Initialize(
40  const ISDKParameters* params) throw() = 0;
42  virtual SDKResult SDK_CALLTYPE Start() throw() = 0;
44  virtual SDKResult SDK_CALLTYPE Stop() throw() = 0;
46  virtual SDKResult SDK_CALLTYPE Send(
47  const void* buffer,
48  SDKUInt32 size,
49  SDKUInt32** cookie) throw() = 0;
51  virtual SDKResult SDK_CALLTYPE GetStatus(ISDKProperties* prop) throw() = 0;
52 
53  SDK_IMPLEMENT_IID(ICommunicationLine)
54  SDK_END_INTERFACE(ICommunicationLine)
55 };
56 SDK_DECLARE_IID(ICommunicationLine)
57 
61 public:
62  enum EventID
63  {
64  kNone = 0,
79  };
80 
82  virtual SDKResult SDK_CALLTYPE OnCommunicationEvent(
83  EventID id,
84  SDKUIntptr cookie,
85  const SDKAny *data) throw() = 0;
86 
87  SDK_IMPLEMENT_IID(ICommunicationLineEvent)
88  SDK_END_INTERFACE(ICommunicationLineEvent)
89 };
90 SDK_DECLARE_IID(ICommunicationLineEvent)
91 
92 namespace utils {
93  FWD_DECL_INTERFACE(ICommunicationLineUtils)
94 
95  enum InterfaceFlags {
96  kInterfaceStatus_Up = 0x1,
97  kInterfaceStatus_IPv4 = 0x2,
98  kInterfaceStatus_IPv6 = 0x4,
99  kInterfaceStatus_DHCP = 0x8,
100  kInterfaceStatus_Multicast = 0x10,
101  };
102 
103  enum InterfaceType {
104  kInterfaceType_Ethernet = 1,
105  kInterfaceType_Loopback = 2,
106  kInterfaceType_Wlan = 3,
107  kInterfaceType_Other = 4,
108  };
109 
110  enum InterfaceProperties {
111  kInterfaceProperties_Name,
112  kInterfaceProperties_Friendlyname,
113  kInterfaceProperties_Description,
114  kInterfaceProperties_Type,
115  kInterfaceProperties_UnicastIP,
116  kInterfaceProperties_UnicastIPv6,
117  kInterfaceProperties_MTU,
118  kInterfaceProperties_MAC,
119  kInterfaceProperties_Flags,
120  kInterfaceProperties_TransmitLinkSpeed,
121  kInterfaceProperties_ReceiveLinkSpeed,
122  };
123 
124  class ICommunicationLineUtils : public SDK_NAMESPACE::ISDKComponent {
125  public:
127  virtual SDKResult SDK_CALLTYPE EnumNetworkInterfaces(
128  SDK_NAMESPACE::IEnumSDKComponentSP& itfs) = 0;
130  virtual SDKResult SDK_CALLTYPE IPv4ToString(const SDKUInt32 addr,
131  SDKString& s) const throw() = 0;
133  virtual SDKResult SDK_CALLTYPE StringToIPv4(const SDKString& s,
134  SDKUInt32& addr) const throw() = 0;
135 
136  SDK_IMPLEMENT_IID(ICommunicationLineUtils)
137  SDK_END_INTERFACE(ICommunicationLineUtils)
138  };
139  SDK_DECLARE_IID(ICommunicationLineUtils)
140 } // namespace utils
141 
142 
143 SDK_COMMUNICATIONLINE_END_NAMESPACE
144 
145 #endif //SDK_COMMUNICATION_LINE_INTERFACES_H
ICommunicationLine
Communication line interface.
Definition: communication_line_interfaces.h:36
ICommunicationLineEvent::kAcceptConnection
@ kAcceptConnection
Connection request received.
Definition: communication_line_interfaces.h:70
sdk_results.h
A list of SDK error/return results.
ICommunicationLineEvent::kConnected
@ kConnected
Connection established.
Definition: communication_line_interfaces.h:69
connection_points_interface.h
Object generic properties interface.
base_types.h
SDK base types.
ICommunicationLineEvent::kReceived
@ kReceived
Data has been received (connection cookie, data)
Definition: communication_line_interfaces.h:77
ICommunicationLine::Stop
virtual SDKResult SDK_CALLTYPE Stop()=0
Stop a communication session.
sdk_ref_ptr.h
Interfaces wrapper with reference count control.
properties_interface.h
Object generic properties interface.
ICommunicationLine::Initialize
virtual SDKResult SDK_CALLTYPE Initialize(const ISDKParameters *params)=0
Set the communication parameters.
parameters_interface.h
Provides access to members for managing a parameter set.
sdk_string_handler.h
Wrappers and helper functions for SDKString.
SDKResult
SDKInt32 SDKResult
Type of all error or return codes which SDK functions can end with.
Definition: sdk_results.h:17
ICommunicationLineEvent::kStopped
@ kStopped
Line thread has stopped.
Definition: communication_line_interfaces.h:73
ICommunicationLineEvent
Communication line events interface.
Definition: communication_line_interfaces.h:60
ICommunicationLineEvent::kSent
@ kSent
Data has been sent (send cookie)
Definition: communication_line_interfaces.h:75
sdk_component_interface.h
Common base SDK interfaces.
ICommunicationLineEvent::kSending
@ kSending
Data is being sent (send cookie)
Definition: communication_line_interfaces.h:74
ICommunicationLine::Send
virtual SDKResult SDK_CALLTYPE Send(const void *buffer, SDKUInt32 size, SDKUInt32 **cookie)=0
Send bytes.
ICommunicationLineEvent::EventID
EventID
Definition: communication_line_interfaces.h:62
ICommunicationLineEvent::kStopping
@ kStopping
Line thread is being stopped.
Definition: communication_line_interfaces.h:72
ICommunicationLineEvent::kStarted
@ kStarted
Line thread has started.
Definition: communication_line_interfaces.h:67
platform.h
Describes the platform constants.
ICommunicationLineEvent::kConnecting
@ kConnecting
Connecting to the line.
Definition: communication_line_interfaces.h:68
ICommunicationLineEvent::kStarting
@ kStarting
Line thread is being started.
Definition: communication_line_interfaces.h:66
ICommunicationLineEvent::kConnectionAccepted
@ kConnectionAccepted
Connection request accepted (connection cookie)
Definition: communication_line_interfaces.h:71
ISDKComponent
Base interface for all SDK interfaces.
Definition: sdk_component_interface.h:41
enum_interface.h
Describes a basic enumeration interfaces.
ICommunicationLineEvent::kTimer
@ kTimer
Periodical timeout invoke.
Definition: communication_line_interfaces.h:78
ICommunicationLineEvent::kStatusChanged
@ kStatusChanged
Status of the line has changed (with error code)
Definition: communication_line_interfaces.h:65
ICommunicationLineEvent::kReceiving
@ kReceiving
Data is being received (connection cookie, data)
Definition: communication_line_interfaces.h:76
ICommunicationLine::GetStatus
virtual SDKResult SDK_CALLTYPE GetStatus(ISDKProperties *prop)=0
Retrieve component status.
FWD_DECL_INTERFACE
FWD_DECL_INTERFACE(ILWEParserWrapper)
Provides a wrapper around the message parser to get, add or remove the.
ICommunicationLine::Start
virtual SDKResult SDK_CALLTYPE Start()=0
Start a communication session.