Go to the documentation of this file. 1 #ifndef _POLL_MONITOR_HPP_
2 #define _POLL_MONITOR_HPP_ "$Id: poll_monitor.hpp 318 2020-03-26 17:44:18Z geoff $"
10 #if __MACH__ == 1 || __OpenBSD__ == 1
11 #include <sys/types.h>
12 #include <sys/event.h>
16 #include <sys/epoll.h>
18 #ifndef INVALID_HANDLE_VALUE
19 #define INVALID_HANDLE_VALUE -1
23 #ifndef OS_HANDLE_TYPE
25 #define OS_HANDLE_TYPE HANDLE
27 #define OS_HANDLE_TYPE int
45 #if __MACH__ == 1 || __OpenBSD__ == 1
46 int addKevent(
const struct kevent &ev);
73 #elif __MACH__ == 1 || __OpenBSD__ == 1
83 struct epoll_event eventInfo[
MAX_FDS];
84 #elif __MACH__ == 1 || __OpenBSD__ == 1
85 std::vector<struct kevent> wantedEvents;
95 int addFile(
const char *fileName,
int connType=0,
void *extraInfo=
nullptr,
101 int rc =
addFile(
"", connType, extraInfo, openedFD);
115 int doPoll(PollResult interestingFds[
MAX_FDS],
int timeout=-1);
@ NEW_FILE_DATA_AVAILABLE
Indicates new data available.
Definition: poll_monitor.hpp:55
int doPoll(PollResult interestingFds[MAX_FDS], int timeout=-1)
Definition: poll_monitor.cpp:231
int addFile(const char *fileName, int connType=0, void *extraInfo=nullptr, OS_HANDLE_TYPE openedFD=INVALID_HANDLE_VALUE)
Monitor a file for changes.
Definition: poll_monitor.cpp:126
main()
Definition: pamtest.c:28
OMEstring * OMEmakeSHA1hash(const OMEstring &message)
Compute Secure Hash Algorithm 1 over an OMEstring.
Definition: pkRoutines.cpp:83
OMEtype DEtype
Definition: perfTest.cpp:14
OME string implementation.
int whyReady
Definition: poll_monitor.hpp:65
int fdToWatchID[MAX_FDS]
Definition: poll_monitor.hpp:80
int watchIdToFd[MAX_FDS]
Definition: poll_monitor.hpp:79
int addDescriptor(OS_HANDLE_TYPE openedFD, int connType=0, void *extraInfo=nullptr)
Monitor an open descriptor.
Definition: poll_monitor.hpp:100
Implements text and binary string storage.
Definition: OMEstring.h:305
PollMonitor()
Definition: poll_monitor.cpp:21
#define t_ARRAY
Definition: perfTest.cpp:15
PollResult fdInfo[MAX_FDS]
Definition: poll_monitor.hpp:77
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
OMEstring * OMEmakePublicKey(const OMEstring &privateKey)
Definition: pkRoutines.cpp:192
void determineCharacterSet()
Definition: OMEstring.h:391
OMEstring * OMEmakeMD5hash(const OMEstring &message)
Compute Message Digest 5 over an OMEstring.
Definition: pkRoutines.cpp:100
OMEstring * OMEmakeSessionKeyFromPublicKey(const OMEstring &publicKey, OMEstring &randomDataInSessionKeyOut)
Definition: pkRoutines.cpp:255
#define INVALID_HANDLE_VALUE
Definition: poll_monitor.hpp:19
Monitor files and directories for changes.
Definition: poll_monitor.hpp:41
#define ntohs(x)
Definition: tmp.o.cpp:3103
char * crypt(const char *, const char *)
int connectionType
Definition: poll_monitor.hpp:63
@ WRITER_CLOSED
Indicates writer closed file.
Definition: poll_monitor.hpp:56
const char srcID[]
Definition: catSym.c:17
int findFDentry(OS_HANDLE_TYPE fd)
Definition: poll_monitor.cpp:53
OMEstring * OMEdecryptSessionKeyWithPrivateKey(const OMEstring &privateKey, const OMEstring &data)
Definition: pkRoutines.cpp:296
OMEstring * OMEmakePrivateKey(const OMEstring &secretPhrase)
Definition: pkRoutines.cpp:156
~PollMonitor()
Definition: poll_monitor.cpp:39
@ WATCHED_BY_INOTIFY
Being watched via inotify()
Definition: poll_monitor.hpp:58
int watchId
Definition: poll_monitor.hpp:66
@ OME_INIT_VEC_LEN_IN_HEX_BYTES
Definition: OMEcrypto.h:14
#define htons(x)
Definition: tmp.o.cpp:3100
OME fundamental type implementation.
size_t length() const
Definition: OMEstring.h:401
int getInotifyResults(OS_HANDLE_TYPE *interestingFds, int *eventType)
#define EPERM
Definition: tmp.o.cpp:139
main()
Definition: perfTest.cpp:19
Return result from polling monitor.
Definition: poll_monitor.hpp:61
int addWatchFileForAddedContent(const char *fileName, OS_HANDLE_TYPE openedFD)
Watch file for increase in size.
Definition: poll_monitor.cpp:100
const char srcID[] OME_USED
Definition: tick_time.cpp:24
STREAMTYPE & outputOnStreamAsHex(STREAMTYPE &outputStream, int_fast16_t indent=0, bool dense=false) const
Output the contents of an OMEstring object to an output stream as a collection of hexadecimal charact...
Definition: OMEstring.h:564
@ POLLING_STOPPED
Polling stopped.
Definition: poll_monitor.hpp:57
uint32_t fdsInUse
Definition: poll_monitor.hpp:69
int dropDescriptor(OS_HANDLE_TYPE fd)
Definition: poll_monitor.cpp:201
int errno
Definition: ethers.c:41
void * extraData
Definition: poll_monitor.hpp:64
@ MAX_FDS
Definition: poll_monitor.hpp:68
static uint64_t getFileSizeForDescriptor(OS_HANDLE_TYPE fd)
Definition: poll_monitor.cpp:70
int addWatchDirectoryForNewFiles(const char *dirName)
Watch directory for appearance of new files.
Definition: poll_monitor.cpp:176
char * malloc(unsigned int bytes)
Definition: test_malloc.c:441
int pamConvFunc(int numMess, struct pam_message **msg, struct pam_response **pam_resp, void *appData)
Definition: pamtest.c:10
#define LOG_ENDLINE
Closing clause for text line output using << operators.
Definition: logging_api.hpp:2956
OMEstring * OMEmakeRandomKey(int32_t desiredBits)
Generate a random sequence of bits.
Definition: pkRoutines.cpp:46
#define OS_HANDLE_TYPE
Definition: io_processor.hpp:48
#define OS_HANDLE_TYPE
Definition: poll_monitor.hpp:27
OS_HANDLE_TYPE fd
Definition: poll_monitor.hpp:62
int fdToEntry[MAX_FDS]
Definition: poll_monitor.hpp:81
#define RAND_MAX
Definition: tmp.o.cpp:455
#define htonl(x)
Definition: tmp.o.cpp:3098
const unsigned char OMEhexDigits[]
Definition: OMEstring.cpp:19
int main(int argc, const char *argv[])
Definition: tick_test.cpp:5
int fd
Definition: ethers.c:41
#define LOG_CERR(lvl)
Convenience macro that uses LOG_INTO() to conditionally log a message to standard error.
Definition: logging_api.hpp:3014