Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
Socket.hxx
Go to the documentation of this file.
1
34#ifndef _FREERTOS_DRIVERS_COMMON_SOCKET_HXX_
35#define _FREERTOS_DRIVERS_COMMON_SOCKET_HXX_
36
37#include "Devtab.hxx"
38#include "os/OS.hxx"
39#include "DeviceBuffer.hxx"
40
41#include <sys/stat.h>
42
44class Socket : public Node
45{
46protected:
50 Socket(const char *name)
51 : Node(name)
52 , selInfoRd()
53 , selInfoWr()
54 {
55 mode_ = S_IFSOCK;
56 }
57
61 {
62 }
63
69 int ioctl(File *file, unsigned long int key, unsigned long data) override;
70
77 bool select(File* file, int mode) override;
78
82private:
90 ssize_t read(File *file, void *buf, size_t count) override;
91
99 ssize_t write(File *file, const void *buf, size_t count) override;
100
108 off_t lseek(File* f, off_t offset, int whence) override
109 {
110 return (off_t)-ESPIPE;
111 }
112
113 void enable() override {}
114 void disable() override {};
117 void flush_buffers() override {};
118
120};
121
122#endif /* _FREERTOS_DRIVERS_COMMON_SOCKET_HXX_ */
const char * name
device name
Definition Devtab.hxx:266
Node information.
Definition Devtab.hxx:549
mode_t mode_
File open mode, such as O_NONBLOCK.
Definition Devtab.hxx:590
Implement a BSD compatible socket device.
Definition Socket.hxx:45
void enable() override
function to enable device
Definition Socket.hxx:113
off_t lseek(File *f, off_t offset, int whence) override
Seek method.
Definition Socket.hxx:108
ssize_t write(File *file, const void *buf, size_t count) override
Write to a file or device.
Definition Socket.cxx:67
bool select(File *file, int mode) override
Device select method.
Definition Socket.cxx:94
SelectInfo selInfoRd
select wakeup metadata for read active
Definition Socket.hxx:79
int ioctl(File *file, unsigned long int key, unsigned long data) override
Request an ioctl transaction.
Definition Socket.cxx:83
SelectInfo selInfoWr
select wakeup metadata for write active
Definition Socket.hxx:80
void flush_buffers() override
function to disable device
Definition Socket.hxx:117
void disable() override
This will be called when reference count goes from non-zero to 0.
Definition Socket.hxx:114
Socket(const char *name)
Constructor.
Definition Socket.hxx:50
~Socket()
Destructor.
Definition Socket.hxx:60
ssize_t read(File *file, void *buf, size_t count) override
Read from a file or device.
Definition Socket.cxx:50
#define DISALLOW_COPY_AND_ASSIGN(TypeName)
Removes default copy-constructor and assignment added by C++.
Definition macros.h:171
Select wakeup information.
Definition Devtab.hxx:491
File information.
Definition Devtab.hxx:52