YDLIDAR SDK  V1.3.6
ActiveSocket.h
1 /*---------------------------------------------------------------------------*/
2 /* */
3 /* ActiveSocket.h - Active Socket Decleration */
4 /* */
5 /* Author : Mark Carrier (mark@carrierlabs.com) */
6 /* */
7 /*---------------------------------------------------------------------------*/
8 /* Copyright (c) 2007-2009 CarrierLabs, LLC. All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  *
14  * 1. Redistributions of source code must retain the above copyright
15  * notice, this list of conditions and the following disclaimer.
16  *
17  * 2. Redistributions in binary form must reproduce the above copyright
18  * notice, this list of conditions and the following disclaimer in
19  * the documentation and/or other materials provided with the
20  * distribution.
21  *
22  * 3. The name of the author may not be used to endorse or promote products
23  * derived from this software without specific prior written permission.
24  *
25  * 4. The name "CarrierLabs" must not be used to
26  * endorse or promote products derived from this software without
27  * prior written permission. For written permission, please contact
28  * mark@carrierlabs.com.
29  *
30  * THIS SOFTWARE IS PROVIDED BY MARK CARRIER ``AS IS'' AND ANY
31  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
33  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MARK CARRIER OR
34  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
35  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
36  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
40  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
41  * OF THE POSSIBILITY OF SUCH DAMAGE.
42  *----------------------------------------------------------------------------*/
43 #ifndef __ACTIVESOCKET_H__
44 #define __ACTIVESOCKET_H__
45 
46 #include "SimpleSocket.h"
47 
48 namespace ydlidar {
49 
50 class CPassiveSocket;
51 
56 class CActiveSocket : public CSimpleSocket {
57 public:
58  friend class CPassiveSocket;
59 
60  explicit CActiveSocket(CSocketType type = SocketTypeTcp);
61  virtual ~CActiveSocket() {
62  Close();
63  };
64 
73  virtual bool Open(const char *pAddr, uint16_t nPort);
74 
75 private:
78  bool ConnectTCP(const char *pAddr, uint16_t nPort);
79 
82  bool ConnectUDP(const char *pAddr, uint16_t nPort);
83 
86  bool ConnectRAW(const char *pAddr, uint16_t nPort);
87 
88 private:
89  struct hostent *m_pHE;
90 
91 };
92 
93 }
94 
95 #endif /* __ACTIVESOCKET_H__ */
96 
Definition: ActiveSocket.h:48
CSocketType
Defines the socket types defined by CSimpleSocket class.
Definition: SimpleSocket.h:125
virtual bool Open(const char *pAddr, uint16_t nPort)
Definition: ActiveSocket.cpp:256
Definition: SimpleSocket.h:114
virtual bool Close(void)
Definition: SimpleSocket.cpp:490
Defines socket as TCP socket.
Definition: SimpleSocket.h:128
Definition: PassiveSocket.h:58
Definition: ActiveSocket.h:56