Making C++ classes final
[iot2.git] / iotjava / iotruntime / cpp / IoTUDP.hpp
index ccdb5d92ec6c3e2bf26f5fb14892121a140a42ce..90e88ab96fab6ceef4eb46f4a87e7233449a4ce3 100644 (file)
@@ -13,24 +13,26 @@ using namespace std;
 // @version     1.0
 // @since       2017-01-09
 
-class IoTUDP
+class IoTUDP final
 {
        // IoTUDP class properties
        private:
+               UDPSocket *socket;
                string strHostAddress;
                int iSrcPort;
                int iDstPort;
-               UDPSocket *socket;
                bool didClose;
+               int timeOut;
 
        public:
 
                // Constructor
-               IoTUDP(IoTDeviceAddress iotDevAdd) {
+               IoTUDP(IoTDeviceAddress* iotDevAdd) {
 
-                       strHostAddress = iotDevAdd.getAddress();
-                       iSrcPort = iotDevAdd.getSourcePortNumber();
-                       iDstPort = iotDevAdd.getDestinationPortNumber();
+                       strHostAddress = iotDevAdd->getAddress();
+                       iSrcPort = iotDevAdd->getSourcePortNumber();
+                       iDstPort = iotDevAdd->getDestinationPortNumber();
+                       timeOut = 0;
 
                        socket = new UDPSocket(iSrcPort);
                        if (socket == NULL) {
@@ -50,19 +52,39 @@ class IoTUDP
                }
 
 
+               string getHostAddress() {
+                       return strHostAddress;
+               }
+
+
+               int getSourcePort() {
+                       return iSrcPort;
+               }
+
+
+               int getDestinationPort() {
+                       return iDstPort;
+               }
+
+
+               void setTimeOut(int interval) {
+
+                       timeOut = interval;
+               }
+
+
                // Send data packet
                void sendData(const void* buffer, int bufferLen) {
-
-                       unsigned short destinationPort = (unsigned short) iDstPort;             
+                       unsigned short destinationPort = (unsigned short) iDstPort;
                        socket->sendTo(buffer, bufferLen, strHostAddress, destinationPort);
                }
 
 
                // Receive data packet
                int receiveData(void* buffer, int iMaxDataLength) {
-
                        unsigned short destinationPort = (unsigned short) iDstPort;
-                       socket->recvFrom(buffer, iMaxDataLength, strHostAddress, destinationPort);
+                       //return socket->recvFrom(buffer, iMaxDataLength, strHostAddress, destinationPort);
+                       return socket->recvFrom(buffer, iMaxDataLength, strHostAddress, destinationPort, timeOut);
                }
 };
 #endif