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