4 #ifndef RUDIMENTS_FILEDESCRIPTOR_H
5 #define RUDIMENTS_FILEDESCRIPTOR_H
7 #include <rudiments/private/filedescriptorincludes.h>
10 class filedescriptorprivate;
36 int32_t getFileDescriptor()
const;
40 void setFileDescriptor(int32_t filedesc);
51 int32_t duplicate()
const;
59 bool duplicate(int32_t newfd)
const;
72 void setSSLContext(
void *ctx);
80 void *getSSLContext();
100 void *getSSL()
const;
106 void deInitializeSSL();
114 int32_t getSSLResult()
const;
118 virtual bool supportsBlockingNonBlockingModes();
123 virtual bool useNonBlockingMode()
const;
128 virtual bool useBlockingMode()
const;
132 virtual bool isUsingNonBlockingMode()
const;
137 ssize_t write(uint16_t number)
const;
142 ssize_t write(uint32_t number)
const;
147 ssize_t write(uint64_t number)
const;
152 ssize_t write(int16_t number)
const;
157 ssize_t write(int32_t number)
const;
162 ssize_t write(int64_t number)
const;
167 ssize_t write(
float number)
const;
172 ssize_t write(
double number)
const;
177 ssize_t write(
unsigned char character)
const;
182 ssize_t write(
char character)
const;
187 ssize_t write(
bool value)
const;
192 ssize_t write(
const unsigned char *
string)
const;
197 ssize_t write(
const char *
string)
const;
204 ssize_t write(
const unsigned char *
string,
size_t size)
const;
211 ssize_t write(
const char *
string,
size_t size)
const;
216 ssize_t write(
const void *buffer,
size_t size)
const;
223 ssize_t write(uint16_t number, int32_t sec, int32_t usec)
const;
230 ssize_t write(uint32_t number, int32_t sec, int32_t usec)
const;
237 ssize_t write(uint64_t number, int32_t sec, int32_t usec)
const;
244 ssize_t write(int16_t number, int32_t sec, int32_t usec)
const;
251 ssize_t write(int32_t number, int32_t sec, int32_t usec)
const;
258 ssize_t write(int64_t number, int32_t sec, int32_t usec)
const;
265 ssize_t write(
float number, int32_t sec, int32_t usec)
const;
272 ssize_t write(
double number, int32_t sec, int32_t usec)
const;
279 ssize_t write(
unsigned char character,
280 int32_t sec, int32_t usec)
const;
287 ssize_t write(
char character, int32_t sec, int32_t usec)
const;
294 ssize_t write(
bool value, int32_t sec, int32_t usec)
const;
301 ssize_t write(
const unsigned char *
string,
302 int32_t sec, int32_t usec)
const;
309 ssize_t write(
const char *
string,
310 int32_t sec, int32_t usec)
const;
318 ssize_t write(
const unsigned char *
string,
size_t size,
319 int32_t sec, int32_t usec)
const;
327 ssize_t write(
const char *
string,
size_t size,
328 int32_t sec, int32_t usec)
const;
335 ssize_t write(
const void *buffer,
size_t size,
336 int32_t sec, int32_t usec)
const;
340 size_t printf(
const char *format, ...);
347 size_t printf(
const char *format, va_list *argp);
353 void safePrint(
unsigned char c);
359 void safePrint(
const unsigned char *str);
365 void safePrint(
const unsigned char *str, int32_t length);
371 void safePrint(
char c);
377 void safePrint(
const char *str);
383 void safePrint(
const char *str, int32_t length);
387 void printBits(
unsigned char value);
391 void printBits(uint16_t value);
395 void printBits(uint32_t value);
399 void printBits(uint64_t value);
403 void printBits(
char value);
407 void printBits(int16_t value);
411 void printBits(int32_t value);
415 void printBits(int64_t value);
419 void printBits(
unsigned char *bits, uint64_t size);
425 ssize_t read(uint16_t *buffer)
const;
431 ssize_t read(uint32_t *buffer)
const;
437 ssize_t read(uint64_t *buffer)
const;
442 ssize_t read(int16_t *buffer)
const;
447 ssize_t read(int32_t *buffer)
const;
452 ssize_t read(int64_t *buffer)
const;
458 ssize_t read(
float *buffer)
const;
464 ssize_t read(
double *buffer)
const;
470 ssize_t read(
unsigned char *buffer)
const;
475 ssize_t read(
char *buffer)
const;
480 ssize_t read(
bool *buffer)
const;
485 ssize_t read(
unsigned char *buffer,
size_t size)
const;
490 ssize_t read(
char *buffer,
size_t size)
const;
495 ssize_t read(
void *buf,
size_t size)
const;
505 ssize_t read(
char **buffer,
const char *terminator)
const;
512 ssize_t read(uint16_t *buffer, int32_t sec, int32_t usec)
const;
519 ssize_t read(uint32_t *buffer, int32_t sec, int32_t usec)
const;
526 ssize_t read(uint64_t *buffer, int32_t sec, int32_t usec)
const;
533 ssize_t read(int16_t *buffer, int32_t sec, int32_t usec)
const;
540 ssize_t read(int32_t *buffer, int32_t sec, int32_t usec)
const;
547 ssize_t read(int64_t *buffer, int32_t sec, int32_t usec)
const;
554 ssize_t read(
float *buffer, int32_t sec, int32_t usec)
const;
561 ssize_t read(
double *buffer, int32_t sec, int32_t usec)
const;
568 ssize_t read(
unsigned char *buffer,
569 int32_t sec, int32_t usec)
const;
576 ssize_t read(
char *buffer, int32_t sec, int32_t usec)
const;
583 ssize_t read(
bool *buffer, int32_t sec, int32_t usec)
const;
590 ssize_t read(
unsigned char *buffer,
size_t size,
591 int32_t sec, int32_t usec)
const;
598 ssize_t read(
char *buffer,
size_t size,
599 int32_t sec, int32_t usec)
const;
606 ssize_t read(
void *buf,
size_t size,
607 int32_t sec, int32_t usec)
const;
618 ssize_t read(
char **buffer,
const char *terminator,
619 int32_t sec, int32_t usec)
const;
641 int32_t waitForNonBlockingRead(int32_t sec, int32_t usec)
664 int32_t waitForNonBlockingWrite(int32_t sec, int32_t usec)
672 void retryInterruptedReads();
679 void dontRetryInterruptedReads();
683 bool getRetryInterruptedReads()
const;
689 void retryInterruptedWrites();
696 void dontRetryInterruptedWrites();
700 bool getRetryInterruptedWrites()
const;
707 void retryInterruptedWaits();
714 void dontRetryInterruptedWaits();
718 bool getRetryInterruptedWaits()
const;
725 void retryInterruptedFcntl();
732 void dontRetryInterruptedFcntl();
736 bool getRetryInterruptedFcntl()
const;
743 void retryInterruptedIoctl();
750 void dontRetryInterruptedIoctl();
754 bool getRetryInterruptedIoctl()
const;
767 void allowShortReads();
774 void dontAllowShortReads();
787 void allowShortWrites();
794 void dontAllowShortWrites();
800 virtual bool passFileDescriptor(int32_t fd)
const;
805 virtual bool receiveFileDescriptor(int32_t *fd)
const;
811 virtual bool passSocket(int32_t sock)
const;
816 virtual bool receiveSocket(int32_t *sock)
const;
822 void translateByteOrder();
827 void dontTranslateByteOrder();
831 virtual int32_t fCntl(int32_t command,
long arg)
const;
835 virtual int32_t ioCtl(int32_t command,
void *arg)
const;
845 bool useNaglesAlgorithm();
851 bool dontUseNaglesAlgorithm();
857 bool setTcpWriteBufferSize(int32_t size);
863 bool getTcpWriteBufferSize(int32_t *size);
869 bool setTcpReadBufferSize(int32_t size);
875 bool getTcpReadBufferSize(int32_t *size);
892 const char *getType()
const;
900 char *getPeerAddress()
const;
924 bool setWriteBufferSize(ssize_t size)
const;
952 bool flushWriteBuffer(int32_t sec, int32_t usec)
const;
974 bool setReadBufferSize(ssize_t size)
const;
989 bool dontCloseOnExec();
997 bool getCloseOnExec();
1001 static uint16_t hostToNet(uint16_t value);
1005 static uint32_t hostToNet(uint32_t value);
1009 static uint64_t hostToNet(uint64_t value);
1013 static uint16_t netToHost(uint16_t value);
1017 static uint32_t netToHost(uint32_t value);
1021 static uint64_t netToHost(uint64_t value);
1023 #include <rudiments/private/filedescriptor.h>
Definition: character.h:11
Definition: listener.h:16
Definition: filedescriptor.h:14