ns-3 Direct Code Execution
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
linux-socket-fd.h
Go to the documentation of this file.
1 #ifndef LINUX_SOCKET_FD_H
2 #define LINUX_SOCKET_FD_H
3 
4 #include "unix-fd.h"
5 #include "ns3/ptr.h"
6 
7 extern "C" {
8 struct SimSocket;
9 }
10 
11 namespace ns3 {
12 
13 class LinuxSocketFdFactory;
14 
15 class Waiter;
16 
17 class LinuxSocketFd : public UnixFd
18 {
19 public:
20  LinuxSocketFd (Ptr<LinuxSocketFdFactory> factory, struct SimSocket *socket);
21  virtual ~LinuxSocketFd ();
22 
23  virtual int Close (void);
24  virtual ssize_t Write (const void *buf, size_t count);
25  virtual ssize_t Read (void *buf, size_t count);
26  virtual ssize_t Recvmsg (struct msghdr *msg, int flags);
27  virtual ssize_t Sendmsg (const struct msghdr *msg, int flags);
28  virtual bool Isatty (void) const;
29  virtual int Setsockopt (int level, int optname,
30  const void *optval, socklen_t optlen);
31  virtual int Getsockopt (int level, int optname,
32  void *optval, socklen_t *optlen);
33  virtual int Getsockname (struct sockaddr *name, socklen_t *namelen);
34  virtual int Getpeername (struct sockaddr *name, socklen_t *namelen);
35  virtual int Ioctl (int request, char *argp);
36  virtual int Bind (const struct sockaddr *my_addr, socklen_t addrlen);
37  virtual int Connect (const struct sockaddr *my_addr, socklen_t addrlen);
38  virtual int Listen (int backlog);
39  virtual int Shutdown (int how);
40  virtual int Accept (struct sockaddr *my_addr, socklen_t *addrlen);
41  virtual void * Mmap (void *start, size_t length, int prot, int flags, off64_t offset);
42  virtual off64_t Lseek (off64_t offset, int whence);
43  virtual int Fxstat (int ver, struct ::stat *buf);
44  virtual int Fxstat64 (int ver, struct ::stat64 *buf);
45  virtual int Fcntl (int cmd, unsigned long arg);
46  virtual int Settime (int flags,
47  const struct itimerspec *new_value,
48  struct itimerspec *old_value);
49  virtual int Gettime (struct itimerspec *cur_value) const;
50 
51  virtual bool HangupReceived (void) const;
52 
53  virtual int Poll (PollTable* ptable);
54  virtual int Ftruncate (off_t length);
55 
56  void PollEvent (int flag);
57 
58 
59 private:
60  Ptr<LinuxSocketFdFactory> m_factory;
61  struct SimSocket *m_socket;
64 };
65 
66 } // namespace ns3
67 
68 #endif /* LINUX_SOCKET_FD_H */