See Also
Quick Nav
Mpr - Portable Runtime Native API
Michael's Portable Runtime (MPR) is a portable runtime core for embedded applications.
The MPR provides management for logging, error handling, events, files, http, memory, ssl, sockets, strings, xml parsing, and date/time functions. It also provides a foundation of safe routines for secure programming, that help to prevent buffer overflows and other security threats. It is correctly handles null arguments without crashing. The MPR is a library and a C API that can be used in both C and C++ programs.
The MPR uses by convention a set extended typedefs for common types. These include: bool, cchar, cvoid, uchar, short, ushort, int, uint, long, ulong, int64, uint64, float, and double. The cchar type is a const char, cvoid is const void, and several types have "u" prefixes to denote unsigned qualifiers.
The MPR includes a memory manager to minimize memory leaks and maximize allocation efficiency. It utilizes a heap and slab allocators with tree links. All memory allocated is connected to a parent memory block thus forming a tree. When any block is freed, all child blocks are also freed. Most MPR APIs take a memory parent context as the first parameter.
Many of these APIs are not thread-safe. If utilizing multithreaded programming on a supporting operating system, be careful if you modify or delete the underlying data while accessing the resource from another thread.
Components
Mpr | Primary MPR application control structure. |
MprBuf | Dynamic Buffer Module. |
MprDate | Date and Time Service. |
MprEvent | Event object. |
MprFile | File I/O Module. |
MprHash | Hash table entry structure. |
MprList | List Module. |
MprLog | Logging Services. |
MprMem | Memory Allocation Service. |
MprModule | Loadable Module Service. |
MprPath | Path (filename) Services Module. |
MprPoolService | Thread Pool Service. |
MprSocket | Socket Service. |
MprSynch | Multithreaded Synchronization Services. |
MprThread | Thread Service. |
MprUri | URI management. |
MprWaitHandler | Wait Handler Service. |
Functions
char* | mprAsprintf(MprCtx ctx, int maxSize, cchar *fmt, ...) |
Format a string into an allocated buffer. | |
int | mprAtoi(cchar *str, int radix) |
Convert a string to an integer. | |
MprFile* | mprAttachFd(MprCtx ctx, int fd, cchar *name, int omode) |
Attach to an existing file descriptor. | |
int | mprAvailablePoolThreads(MprCtx ctx) |
Get the count of available pool threads Return the count of free threads in the thread pool. | |
void | mprBreakpoint() |
Trigger a breakpoint. | |
void | mprClearList(MprList *list) |
Clears the list of all items. | |
void | mprCloseSocket(MprSocket *sp, bool graceful) |
Close a socket. | |
void | mprCompactBuf(MprBuf *buf) |
Compact the buffer contents. | |
MprHashTable* | mprCopyHash(MprCtx ctx, MprHashTable *table) |
Copy a hash table. | |
int | mprCopyList(MprList *dest, MprList *src) |
Copy a list. | |
int | mprCopyPath(MprCtx ctx, cchar *from, cchar *to, int omode) |
Copy a file. | |
Mpr* | mprCreate(int argc, char **argv, MprAllocNotifier cback) |
Create an instance of the MPR. | |
MprBuf* | mprCreateBuf(MprCtx ctx, int initialSize, int maxSize) |
Create a new buffer. | |
MprCond* | mprCreateCond(MprCtx ctx) |
Create a condition lock variable. | |
MprEvent* | mprCreateEvent(MprCtx ctx, MprEventProc proc, int period, int priority, void *data, int flags) |
Create a new event. | |
Mpr* | mprCreateEx(int argc, char **argv, MprAllocNotifier cback, void *shell) |
Create an instance of the MPR. | |
MprHashTable* | mprCreateHash(MprCtx ctx, int hashSize) |
Create a hash table. | |
MprKeyValue* | mprCreateKeyPair(MprCtx ctx, cchar *key, cchar *value) |
Create a key / value pair. | |
MprList* | mprCreateList(MprCtx ctx) |
Create a list. | |
MprMutex* | mprCreateLock(MprCtx ctx) |
Create a Mutex lock object. | |
MprModule* | mprCreateModule(MprCtx ctx, cchar *name, cchar *version, void *moduleData, MprModuleProc start, MprModuleProc stop) |
Create a module. | |
MprSocket* | mprCreateSocket(MprCtx ctx, struct MprSsl *ssl) |
Create a socket. | |
MprSpin* | mprCreateSpinLock(MprCtx ctx) |
Create a spin lock lock object. | |
MprThread* | mprCreateThread(MprCtx ctx, cchar *name, MprThreadProc proc, void *data, int priority, int stackSize) |
Create a new thread. | |
MprEvent* | mprCreateTimerEvent(MprCtx ctx, MprEventProc proc, int period, int priority, void *data, int flags) |
Create a timer event. | |
MprWaitHandler* | mprCreateWaitHandler(MprCtx ctx, int fd, int mask, MprWaitProc proc, void *data, int priority, int flags) |
Create a wait handler. | |
int | mprCtime(MprCtx ctx, char *buf, int bufsize, MprTime time) |
Convert time to local time and format as a string. | |
int | mprDeletePath(MprCtx ctx, cchar *path) |
Delete a file. | |
void | mprDisableFileBuffering(MprFile *file) |
Disable file buffering. | |
void | mprDisableWaitEvents(MprWaitHandler *wp, bool wakeup) |
Disable wait events. | |
MprList* | mprDupList(MprCtx ctx, MprList *src) |
Duplicate a list. | |
int | mprEnableFileBuffering(MprFile *file, int size, int maxSize) |
Enable file buffering. | |
void | mprEnableWaitEvents(MprWaitHandler *wp, bool wakeup) |
Enable wait events. | |
void | mprError(MprCtx ctx, cchar *fmt, ...) |
Log an error message. | |
char* | mprEscapeCmd(MprCtx ctx, cchar *cmd, int escChar) |
Encode a string escaping typical command (shell) characters. | |
char* | mprEscapeHtml(MprCtx ctx, cchar *html) |
Encode a string by escaping typical HTML characters. | |
void | mprFatalError(MprCtx ctx, cchar *fmt, ...) |
Log a fatal error message and exit. | |
int | mprFlush(MprFile *file) |
Flush any buffered write data. | |
void | mprFlushBuf(MprBuf *buf) |
Flush the buffer contents. | |
int | mprFlushSocket(MprSocket *sp) |
Flush a socket. | |
char* | mprFormatUri(MprCtx ctx, cchar *protocol, cchar *host, int port, cchar *path, cchar *query) |
Format a URI. | |
int | mprFprintf(struct MprFile *file, cchar *fmt, ...) |
Print a formatted message to a file descriptor. | |
int | mprFree(void *ptr) |
Free a block of memory. | |
char* | mprGetAbsPath(MprCtx ctx, cchar *path) |
Convert a path to an absolute path. | |
int | mprGetBlockFromBuf(MprBuf *buf, uchar *blk, int count) |
Get a block of data from the buffer. | |
char* | mprGetBufEnd(MprBuf *buf) |
Get a reference to the end of the buffer contents. | |
int | mprGetBufLength(MprBuf *buf) |
Get the buffer content length. | |
char* | mprGetBufOrigin(MprBuf *buf) |
Get the origin of the buffer content storage. | |
MprBufProc | mprGetBufRefillProc(MprBuf *buf) |
Get the buffer refill procedure. | |
int | mprGetBufSize(MprBuf *buf) |
Get the current size of the buffer content storage. | |
int | mprGetBufSpace(MprBuf *buf) |
Get the space available to store content. | |
char* | mprGetBufStart(MprBuf *buf) |
Get the start of the buffer contents. | |
int | mprGetc(MprFile *file) |
Read a character from the file. | |
int | mprGetCharFromBuf(MprBuf *buf) |
Get a character from the buffer. | |
MprOsThread | mprGetCurrentOsThread() |
Get the O/S thread. | |
char* | mprGetCurrentPath(MprCtx ctx) |
Return the current working directory. | |
MprThread* | mprGetCurrentThread(MprCtx ctx) |
Get the currently executing thread. | |
bool | mprGetDebugMode(MprCtx ctx) |
Get the debug mode. | |
MprOffset | mprGetFilePosition(MprFile *file) |
Return the current file position. | |
MprOffset | mprGetFileSize(MprFile *file) |
Get the size of the file. | |
MprHash* | mprGetFirstHash(MprHashTable *table) |
Return the first symbol in a symbol entry. | |
void* | mprGetFirstItem(MprList *list) |
Get the first item in the list. | |
int | mprGetHashCount(MprHashTable *table) |
Return the count of symbols in a symbol entry. | |
cchar* | mprGetHttpCodeString(MprCtx ctx, int code) |
Get the Http reponse code as a string. | |
void* | mprGetItem(MprList *list, int index) |
Get an list item. | |
void* | mprGetLastItem(MprList *list) |
Get the last item in the list. | |
int | mprGetListCapacity(MprList *list) |
Get the current capacity of the list. | |
int | mprGetListCount(MprList *list) |
Get the number of items in the list. | |
MprLogHandler | mprGetLogHandler(MprCtx ctx) |
Get the current MPR debug log handler. | |
int | mprGetMaxPoolThreads(MprCtx ctx) |
Get the maximum count of pool threads Get the maximum limit of pool threads. | |
cchar* | mprGetModuleSearchPath(MprCtx ctx) |
Get the module search path. | |
char* | mprGetNativePath(MprCtx ctx, cchar *path) |
Get a path formatted according to the native O/S conventions. | |
MprHash* | mprGetNextHash(MprHashTable *table, MprHash *last) |
Return the next symbol in a symbol entry. | |
void* | mprGetNextItem(MprList *list, int *lastIndex) |
Get the next item in the list. | |
char* | mprGetNormalizedPath(MprCtx ctx, cchar *path) |
Normalize a path. | |
int | mprGetOsError() |
Return the O/S error code. | |
void* | mprGetParent(MprCtx ctx) |
Get the memory parent of a block. | |
char* | mprGetPathBase(MprCtx ctx, cchar *path) |
Get the base portion of a path. | |
char* | mprGetPathDir(MprCtx ctx, cchar *path) |
Get the directory portion of a path. | |
cchar* | mprGetPathExtension(MprCtx ctx, cchar *path) |
Get the file extension portion of a path. | |
MprList* | mprGetPathFiles(MprCtx ctx, cchar *dir, bool enumDirs) |
Create a directory list of files. | |
int | mprGetPathInfo(MprCtx ctx, cchar *path, MprPath *info) |
Return information about a file represented by a path. | |
cchar* | mprGetPathNewline(MprCtx ctx, cchar *path) |
Get the file newline character string for a given path. | |
char* | mprGetPathParent(MprCtx ctx, cchar *path) |
Get the parent directory of a path. | |
cchar* | mprGetPathSeparators(MprCtx ctx, cchar *path) |
Get the path directory separator. | |
char* | mprGetPortablePath(MprCtx ctx, cchar *path) |
Get a portable path. | |
void* | mprGetPrevItem(MprList *list, int *lastIndex) |
Get the previous item in the list. | |
char* | mprGetRelPath(MprCtx ctx, cchar *path) |
Get a relative path. | |
char* | mprGets(MprFile *file, char *buf, uint size) |
Read a line from the file. | |
bool | mprGetSocketBlockingMode(MprSocket *sp) |
Get the socket blocking mode. | |
bool | mprGetSocketEof(MprSocket *sp) |
Test if the other end of the socket has been closed. | |
int | mprGetSocketError(MprSocket *sp) |
Get a socket error code. | |
int | mprGetSocketFd(MprSocket *sp) |
Get the socket file descriptor. | |
int | mprGetSocketPort(MprSocket *sp) |
Get the port used by a socket. | |
char* | mprGetTempPath(MprCtx ctx, cchar *tmpDir) |
Make a temporary file. | |
cchar* | mprGetThreadName(MprThread *thread) |
Get the thread name. | |
int | mprGetThreadPriority(MprThread *thread) |
Get the thread priroity. | |
MprTime | mprGetTime(MprCtx ctx) |
Get the system time. | |
char* | mprGetTransformedPath(MprCtx ctx, cchar *path, int flags) |
Transform a path. | |
char* | mprGetWordTok(char *buf, int bufsize, cchar *str, cchar *delim, cchar **tok) |
Get the next word token. | |
void | mprGlobalLock(MprCtx ctx) |
Globally lock the application. | |
void | mprGlobalUnlock(MprCtx ctx) |
Unlock the global mutex. | |
struct tm* | mprGmtime(MprCtx ctx, struct tm *timep, MprTime time) |
Convert time to UTC and parse into a time structure. | |
int | mprGrowBuf(MprBuf *buf, int count) |
Grow the buffer. | |
void | mprInitList(MprList *list) |
Initialize a list structure. | |
MprMutex* | mprInitLock(MprCtx ctx, MprMutex *mutex) |
Initialize a statically allocated Mutex lock object. | |
MprSpin* | mprInitSpinLock(MprCtx ctx, MprSpin *lock) |
Initialize a statically allocated spinlock object. | |
int | mprInsertCharToBuf(MprBuf *buf, int c) |
Insert a character into the buffer. | |
int | mprInsertItemAtPos(MprList *list, int index, cvoid *item) |
Insert an item into a list at a specific position. | |
bool | mprIsAbsPath(MprCtx ctx, cchar *path) |
Determine if a path is absolute. | |
bool | mprIsExiting(MprCtx ctx) |
Determine if the MPR should exit. | |
bool | mprIsRelPath(MprCtx ctx, cchar *path) |
Determine if a path is relative. | |
char* | mprItoa(char *buf, int size, int value, int radix) |
Convert an integer to a string. | |
char* | mprJoinPath(MprCtx ctx, cchar *dir, cchar *other) |
Join paths. | |
char* | mprJoinPathExt(MprCtx ctx, cchar *dir, cchar *ext) |
Join an extension to a path. | |
MprModule* | mprLoadModule(MprCtx ctx, cchar *filename, cchar *entryPoint) |
Load a module. | |
struct tm* | mprLocaltime(MprCtx ctx, struct tm *timep, MprTime time) |
Convert time to local representation. | |
void | mprLock(MprMutex *lock) |
Lock access. | |
void | mprLog(MprCtx ctx, int level, cchar *fmt, ...) |
Write a message to the diagnostic log file. | |
int | mprLookAtLastCharInBuf(MprBuf *buf) |
Peek at the last character in the buffer. | |
int | mprLookAtNextCharInBuf(MprBuf *buf) |
Peek at the next character in the buffer. | |
cvoid* | mprLookupHash(MprHashTable *table, cchar *key) |
Lookup a symbol in the hash table. | |
MprHash* | mprLookupHashEntry(MprHashTable *table, cchar *key) |
Lookup a symbol in the hash table and return the hash entry. | |
int | mprLookupItem(MprList *list, cvoid *item) |
Find an item and return its index. | |
MprModule* | mprLookupModule(MprCtx ctx, cchar *name) |
Lookup a module. | |
int | mprMakeDir(MprCtx ctx, cchar *path, int perms, bool makeMissing) |
Make a directory. | |
void | mprMapSeparators(MprCtx ctx, char *path, int separator) |
Map the separators in a path. | |
int | mprMemcmp(cvoid *b1, int b1Len, cvoid *b2, int b2Len) |
Compare two byte strings. | |
int | mprMemcpy(void *dest, int destMax, cvoid *src, int nbytes) |
Safe copy for a block of data. | |
void* | mprMemdup(MprCtx ctx, cvoid *ptr, uint size) |
Duplicate a block of memory. | |
void | mprMemoryError(MprCtx ctx, cchar *fmt, ...) |
Log a memory error message. | |
MprFile* | mprOpen(MprCtx ctx, cchar *filename, int omode, int perms) |
Open a file. | |
int | mprOpenClientSocket(MprSocket *sp, cchar *hostName, int port, int flags) |
Open a client socket. | |
int | mprOpenServerSocket(MprSocket *sp, cchar *ipAddr, int port, MprSocketAcceptProc acceptFn, void *data, int flags) |
Open a server socket. | |
MprUri* | mprParseUri(MprCtx ctx, cchar *uri) |
Parse a URI. | |
bool | mprPathExists(MprCtx ctx, cchar *path, int omode) |
Determine if a file exists for a path name and can be accessed. | |
int | mprPeekc(MprFile *file) |
Non-destructively read a character from the file. | |
int | mprPrintf(MprCtx ctx, cchar *fmt, ...) |
Formatted print. | |
int | mprPrintfError(MprCtx ctx, cchar *fmt, ...) |
Print a formatted message to the standard error channel. | |
int | mprPutBlockToBuf(MprBuf *buf, cchar *ptr, int size) |
Put a block to the buffer. | |
int | mprPutc(MprFile *file, int c) |
Write a character to the file. | |
int | mprPutCharToBuf(MprBuf *buf, int c) |
Put a character to the buffer. | |
int | mprPutFmtToBuf(MprBuf *buf, cchar *fmt, ...) |
Put a formatted string to the buffer. | |
int | mprPutIntToBuf(MprBuf *buf, int i) |
Put an integer to the buffer. | |
int | mprPuts(MprFile *file, cchar *buf, uint size) |
Write a line to the file. | |
int | mprPutStringToBuf(MprBuf *buf, cchar *str) |
Put a string to the buffer. | |
void | mprRawLog(MprCtx ctx, int level, cchar *fmt, ...) |
Write a raw log message to the diagnostic log file. | |
int | mprRead(MprFile *file, void *buf, uint size) |
Read data from a file. | |
int | mprReadSocket(MprSocket *sp, void *buf, int size) |
Read from a socket. | |
void* | mprRealloc(MprCtx ctx, void *ptr, uint size) |
Reallocate a block. | |
char* | mprReallocStrcat(MprCtx ctx, int max, char *buf, cchar *src, ...) |
Append strings to an existing string and reallocate as required. | |
void | mprRecallWaitHandler(MprWaitHandler *wp) |
Recall a wait handler. | |
int | mprRefillBuf(MprBuf *buf) |
Refill the buffer with data. | |
void | mprRemoveEvent(MprEvent *event) |
Remove an event. | |
int | mprRemoveHash(MprHashTable *table, cchar *key) |
Remove a symbol entry from the hash table. | |
int | mprRemoveItem(MprList *list, void *item) |
Remove an item from the list. | |
int | mprRemoveItemAtPos(MprList *list, int index) |
Remove an item from the list. | |
int | mprRemoveLastItem(MprList *list) |
Remove the last item from the list. | |
int | mprRemoveRangeOfItems(MprList *list, int start, int end) |
Remove a range of items from the list. | |
void | mprRescheduleEvent(MprEvent *event, int period) |
Reschedule an event. | |
void | mprResetAllocError(MprCtx ctx) |
Reset the memory allocation error flag. | |
void | mprResetBufIfEmpty(MprBuf *buf) |
Reset the buffer. | |
void | mprRestartContinuousEvent(MprEvent *event) |
Restart an event. | |
int | mprRfctime(MprCtx ctx, char *buf, int bufsize, const struct tm *timep) |
Format time according to RFC822. | |
int | mprSamePath(MprCtx ctx, cchar *path1, cchar *path2) |
Compare two paths if they are the same. | |
int | mprSamePathCount(MprCtx ctx, cchar *path1, cchar *path2, int len) |
Compare two paths if they are the same for a given length. | |
char* | mprSearchPath(MprCtx ctx, cchar *path, int flags, cchar *search, ...) |
Search for a path. | |
long | mprSeek(MprFile *file, int seekType, long distance) |
Seek the I/O pointer to a new location in the file. | |
MprOffset | mprSendFileToSocket(MprFile *file, MprSocket *sock, MprOffset offset, int bytes, MprIOVec *beforeVec, int beforeCount, MprIOVec *afterVec, int afterCount) |
Send a file to a socket. | |
int | mprServiceEvents(MprCtx ctx, int delay, int flags) |
Service events. | |
void | mprSetAllocLimits(MprCtx ctx, uint redline, uint maxMemory) |
Configure the application memory limits. | |
void | mprSetBufMax(MprBuf *buf, int maxSize) |
Set the maximum buffer size. | |
void | mprSetBufRefillProc(MprBuf *buf, MprBufProc fn, void *arg) |
Set the buffer refill procedure. | |
int | mprSetBufSize(MprBuf *buf, int size, int maxSize) |
Set the buffer size. | |
void | mprSetCurrentThreadPriority(MprCtx ctx, int priority) |
Set the thread priroity for the current thread. | |
void | mprSetDebugMode(MprCtx ctx, bool on) |
Turn on debug mode. | |
void | mprSetDestructor(void *ptr, MprDestructor destructor) |
Update the destructor for a block of memory. | |
void* | mprSetItem(MprList *list, int index, cvoid *item) |
Set a list item. | |
int | mprSetListLimits(MprList *list, int initialSize, int maxSize) |
Define the list size limits. | |
void | mprSetLogHandler(MprCtx ctx, MprLogHandler handler, void *handlerData) |
Set an MPR debug log handler. | |
void | mprSetLogLevel(MprCtx ctx, int level) |
Set the current logging level. | |
void | mprSetMaxPoolThreads(MprCtx ctx, int count) |
Set the maximum count of pool threads Set the maximum number of pool threads for the MPR. | |
void | mprSetMinPoolThreads(MprCtx ctx, int count) |
Set the minimum count of pool threads Set the count of threads the pool will have. | |
void | mprSetModuleSearchPath(MprCtx ctx, char *searchPath) |
Set the module search path. | |
int | mprSetSocketBlockingMode(MprSocket *sp, bool on) |
Set the socket blocking mode. | |
void | mprSetSocketCallback(MprSocket *sp, MprSocketProc fn, void *data, void *data2, int mask, int priority) |
Set the socket callback. | |
void | mprSetSocketEventMask(MprSocket *sp, int mask) |
Define the events of interest for a socket. | |
int | mprSetSocketNoDelay(MprSocket *sp, bool on) |
Set the socket delay mode. | |
void | mprSetThreadPriority(MprThread *thread, int priority) |
Set the thread priroity. | |
void | mprSetWaitCallback(MprWaitHandler *wp, MprWaitProc proc, int mask) |
Define the wait handler callback. | |
void | mprSetWaitInterest(MprWaitHandler *wp, int mask) |
Define the events of interest for a wait handler. | |
void | mprSignalCond(MprCond *cond) |
Signal a condition lock variable. | |
void | mprSignalExit(MprCtx ctx) |
Signal the MPR to exit gracefully. | |
bool | mprSocketIsSecure(MprSocket *sp) |
Determine if the socket is secure. | |
void | mprSortList(MprList *list, MprListCompareProc compare) |
Sort a list. | |
void | mprSpinLock(MprSpin *lock) |
Lock a spinlock. | |
void | mprSpinUnlock(MprSpin *lock) |
Unlock a spinlock. | |
char* | mprSprintf(char *buf, int maxSize, cchar *fmt, ...) |
Format a string into a statically allocated buffer. | |
int | mprStartThread(MprThread *thread) |
Start a thread. | |
void | mprStaticAssert(cchar *loc, cchar *msg) |
Output an assertion failed message. | |
void | mprStaticError(MprCtx ctx, cchar *fmt, ...) |
Write a message to the diagnostic log file without allocating any memory. | |
int | mprStaticPrintf(MprCtx ctx, cchar *fmt, ...) |
Print a message to the applications standard output without allocating memory. | |
int | mprStaticPrintfError(MprCtx ctx, cchar *fmt, ...) |
Print a message to the standard error channel without allocating memory. | |
char* | mprStealBuf(MprCtx ctx, MprBuf *buf) |
Steal the buffer memory from a buffer. | |
void | mprStopContinuousEvent(MprEvent *event) |
Stop an event. | |
char* | mprStrcat(MprCtx ctx, int max, cchar *src, ...) |
Catenate strings. | |
int | mprStrcmp(cchar *str1, cchar *str2) |
Compare strings. | |
int | mprStrcmpAnyCase(cchar *str1, cchar *str2) |
Compare strings ignoring case. | |
int | mprStrcmpAnyCaseCount(cchar *str1, cchar *str2, int len) |
Compare strings ignoring case. | |
int | mprStrcpy(char *dest, int destMax, cchar *src) |
Copy a string. | |
int | mprStrcpyCount(char *dest, int destMax, cchar *src, int count) |
Copy characters from a string. | |
char* | mprStrdup(MprCtx ctx, cchar *str) |
Safe replacement for strdup. | |
int | mprStrlen(cchar *src, int max) |
Return the length of a string. | |
char* | mprStrLower(char *str) |
Convert a string to lower case. | |
char* | mprStrndup(MprCtx ctx, cchar *str, uint size) |
Duplicate a string. | |
char* | mprStrnstr(cchar *str, cchar *pattern, int len) |
Find a substring. | |
char* | mprStrTok(char *str, cchar *delim, char **last) |
Tokenize a string. | |
char* | mprStrTrim(char *str, cchar *set) |
Trim a string. | |
char* | mprStrUpper(char *str) |
Convert a string to upper case. | |
void | mprTerminate(MprCtx ctx, bool graceful) |
Terminate the MPR. | |
char* | mprTrimPathExtension(MprCtx ctx, cchar *path) |
Trim an extension from a path. | |
int | mprTruncatePath(MprCtx ctx, cchar *path, int size) |
Truncate a path. | |
bool | mprTryLock(MprMutex *lock) |
Attempt to lock access. | |
bool | mprTrySpinLock(MprSpin *lock) |
Attempt to lock access on a spin lock. | |
void | mprUnloadModule(MprModule *mp) |
Unload a module. | |
void | mprUnlock(MprMutex *lock) |
Unlock a mutex. | |
char* | mprUrlDecode(MprCtx ctx, cchar *url) |
Decode a URL string by de-scaping URL characters. | |
char* | mprUrlEncode(MprCtx ctx, cchar *url) |
Encode a string by escaping URL characters. | |
void | mprUserError(MprCtx ctx, cchar *fmt, ...) |
Display an error message to the user. | |
char* | mprValidateUrl(MprCtx ctx, char *url) |
Validate a URL. | |
char* | mprVasprintf(MprCtx ctx, int maxSize, cchar *fmt, va_list arg) |
Allocate a buffer of sufficient length to hold the formatted string. | |
char* | mprVsprintf(char *buf, int maxSize, cchar *fmt, va_list args) |
Format a string into a statically allocated buffer. | |
int | mprWaitForCond(MprCond *cond, int timeout) |
Wait for a condition lock variable. | |
int | mprWaitForSingleIO(MprWaitHandler *wp, int fd, int mask, int timeout) |
Wait for I/O on an event handler. | |
int | mprWrite(MprFile *file, cvoid *buf, uint count) |
Write data to a file. | |
int | mprWriteFormat(MprFile *file, cchar *fmt, ...) |
Write formatted data to a file. | |
int | mprWriteSocket(MprSocket *sp, void *buf, int len) |
Write to a socket. | |
int | mprWriteSocketString(MprSocket *sp, cchar *str) |
Write to a string to a socket. | |
int | mprWriteSocketVector(MprSocket *sp, MprIOVec *iovec, int count) |
Write a vector to a socket. | |
int | mprWriteString(MprFile *file, cchar *str) |
Write a string to a file. | |
void | mprBreakpoint() |
Trigger a breakpoint. | |
Mpr* | mprCreate(int argc, char **argv, MprAllocNotifier cback) |
Create an instance of the MPR. | |
Mpr* | mprCreateEx(int argc, char **argv, MprAllocNotifier cback, void *shell) |
Create an instance of the MPR. | |
bool | mprGetDebugMode(MprCtx ctx) |
Get the debug mode. | |
int | mprGetOsError() |
Return the O/S error code. | |
bool | mprIsExiting(MprCtx ctx) |
Determine if the MPR should exit. | |
void | mprSignalExit(MprCtx ctx) |
Signal the MPR to exit gracefully. | |
void | mprTerminate(MprCtx ctx, bool graceful) |
Terminate the MPR. | |
void | mprAddNullToBuf(MprBuf *buf) |
Add a null character to the buffer contents. | |
void | mprAdjustBufEnd(MprBuf *buf, int count) |
Adjust the buffer end position. | |
void | mprAdjustBufStart(MprBuf *buf, int count) |
Adjust the buffer start position. | |
void | mprCompactBuf(MprBuf *buf) |
Compact the buffer contents. | |
MprBuf* | mprCreateBuf(MprCtx ctx, int initialSize, int maxSize) |
Create a new buffer. | |
void | mprFlushBuf(MprBuf *buf) |
Flush the buffer contents. | |
int | mprGetBlockFromBuf(MprBuf *buf, uchar *blk, int count) |
Get a block of data from the buffer. | |
char* | mprGetBufEnd(MprBuf *buf) |
Get a reference to the end of the buffer contents. | |
int | mprGetBufLength(MprBuf *buf) |
Get the buffer content length. | |
char* | mprGetBufOrigin(MprBuf *buf) |
Get the origin of the buffer content storage. | |
MprBufProc | mprGetBufRefillProc(MprBuf *buf) |
Get the buffer refill procedure. | |
int | mprGetBufSize(MprBuf *buf) |
Get the current size of the buffer content storage. | |
int | mprGetBufSpace(MprBuf *buf) |
Get the space available to store content. | |
char* | mprGetBufStart(MprBuf *buf) |
Get the start of the buffer contents. | |
int | mprGetCharFromBuf(MprBuf *buf) |
Get a character from the buffer. | |
int | mprGrowBuf(MprBuf *buf, int count) |
Grow the buffer. | |
int | mprInsertCharToBuf(MprBuf *buf, int c) |
Insert a character into the buffer. | |
int | mprLookAtLastCharInBuf(MprBuf *buf) |
Peek at the last character in the buffer. | |
int | mprLookAtNextCharInBuf(MprBuf *buf) |
Peek at the next character in the buffer. | |
int | mprPutBlockToBuf(MprBuf *buf, cchar *ptr, int size) |
Put a block to the buffer. | |
int | mprPutCharToBuf(MprBuf *buf, int c) |
Put a character to the buffer. | |
int | mprPutFmtToBuf(MprBuf *buf, cchar *fmt, ...) |
Put a formatted string to the buffer. | |
int | mprPutIntToBuf(MprBuf *buf, int i) |
Put an integer to the buffer. | |
int | mprPutStringToBuf(MprBuf *buf, cchar *str) |
Put a string to the buffer. | |
int | mprRefillBuf(MprBuf *buf) |
Refill the buffer with data. | |
void | mprResetBufIfEmpty(MprBuf *buf) |
Reset the buffer. | |
void | mprSetBufMax(MprBuf *buf, int maxSize) |
Set the maximum buffer size. | |
void | mprSetBufRefillProc(MprBuf *buf, MprBufProc fn, void *arg) |
Set the buffer refill procedure. | |
int | mprSetBufSize(MprBuf *buf, int size, int maxSize) |
Set the buffer size. | |
char* | mprStealBuf(MprCtx ctx, MprBuf *buf) |
Steal the buffer memory from a buffer. | |
int | mprAsctime(MprCtx ctx, char *buf, int bufsize, const struct tm *timeptr) |
Format time as a string. | |
int | mprCtime(MprCtx ctx, char *buf, int bufsize, MprTime time) |
Convert time to local time and format as a string. | |
MprTime | mprGetTime(MprCtx ctx) |
Get the system time. | |
struct tm* | mprGmtime(MprCtx ctx, struct tm *timep, MprTime time) |
Convert time to UTC and parse into a time structure. | |
struct tm* | mprLocaltime(MprCtx ctx, struct tm *timep, MprTime time) |
Convert time to local representation. | |
MprEvent* | mprCreateEvent(MprCtx ctx, MprEventProc proc, int period, int priority, void *data, int flags) |
Create a new event. | |
MprEvent* | mprCreateTimerEvent(MprCtx ctx, MprEventProc proc, int period, int priority, void *data, int flags) |
Create a timer event. | |
void | mprRemoveEvent(MprEvent *event) |
Remove an event. | |
void | mprRescheduleEvent(MprEvent *event, int period) |
Reschedule an event. | |
void | mprRestartContinuousEvent(MprEvent *event) |
Restart an event. | |
int | mprServiceEvents(MprCtx ctx, int delay, int flags) |
Service events. | |
void | mprStopContinuousEvent(MprEvent *event) |
Stop an event. | |
MprFile* | mprAttachFd(MprCtx ctx, int fd, cchar *name, int omode) |
Attach to an existing file descriptor. | |
void | mprDisableFileBuffering(MprFile *file) |
Disable file buffering. | |
int | mprEnableFileBuffering(MprFile *file, int size, int maxSize) |
Enable file buffering. | |
int | mprFlush(MprFile *file) |
Flush any buffered write data. | |
int | mprGetc(MprFile *file) |
Read a character from the file. | |
MprOffset | mprGetFilePosition(MprFile *file) |
Return the current file position. | |
MprOffset | mprGetFileSize(MprFile *file) |
Get the size of the file. | |
char* | mprGets(MprFile *file, char *buf, uint size) |
Read a line from the file. | |
MprFile* | mprOpen(MprCtx ctx, cchar *filename, int omode, int perms) |
Open a file. | |
int | mprPeekc(MprFile *file) |
Non-destructively read a character from the file. | |
int | mprPutc(MprFile *file, int c) |
Write a character to the file. | |
int | mprPuts(MprFile *file, cchar *buf, uint size) |
Write a line to the file. | |
int | mprRead(MprFile *file, void *buf, uint size) |
Read data from a file. | |
long | mprSeek(MprFile *file, int seekType, long distance) |
Seek the I/O pointer to a new location in the file. | |
int | mprWrite(MprFile *file, cvoid *buf, uint count) |
Write data to a file. | |
int | mprWriteFormat(MprFile *file, cchar *fmt, ...) |
Write formatted data to a file. | |
int | mprWriteString(MprFile *file, cchar *str) |
Write a string to a file. | |
MprHash* | mprAddDuplicateHash(MprHashTable *table, cchar *key, cvoid *ptr) |
Add a duplicate symbol value into the hash table. | |
MprHash* | mprAddHash(MprHashTable *table, cchar *key, cvoid *ptr) |
Add a symbol value into the hash table. | |
MprHashTable* | mprCopyHash(MprCtx ctx, MprHashTable *table) |
Copy a hash table. | |
MprHashTable* | mprCreateHash(MprCtx ctx, int hashSize) |
Create a hash table. | |
MprHash* | mprGetFirstHash(MprHashTable *table) |
Return the first symbol in a symbol entry. | |
int | mprGetHashCount(MprHashTable *table) |
Return the count of symbols in a symbol entry. | |
MprHash* | mprGetNextHash(MprHashTable *table, MprHash *last) |
Return the next symbol in a symbol entry. | |
cvoid* | mprLookupHash(MprHashTable *table, cchar *key) |
Lookup a symbol in the hash table. | |
MprHash* | mprLookupHashEntry(MprHashTable *table, cchar *key) |
Lookup a symbol in the hash table and return the hash entry. | |
int | mprRemoveHash(MprHashTable *table, cchar *key) |
Remove a symbol entry from the hash table. | |
int | mprAddItem(MprList *list, cvoid *item) |
Add an item to a list. | |
MprList* | mprAppendList(MprList *list, MprList *add) |
Append a list. | |
void | mprClearList(MprList *list) |
Clears the list of all items. | |
int | mprCopyList(MprList *dest, MprList *src) |
Copy a list. | |
MprKeyValue* | mprCreateKeyPair(MprCtx ctx, cchar *key, cchar *value) |
Create a key / value pair. | |
MprList* | mprCreateList(MprCtx ctx) |
Create a list. | |
MprList* | mprDupList(MprCtx ctx, MprList *src) |
Duplicate a list. | |
void* | mprGetFirstItem(MprList *list) |
Get the first item in the list. | |
void* | mprGetItem(MprList *list, int index) |
Get an list item. | |
void* | mprGetLastItem(MprList *list) |
Get the last item in the list. | |
int | mprGetListCapacity(MprList *list) |
Get the current capacity of the list. | |
int | mprGetListCount(MprList *list) |
Get the number of items in the list. | |
void* | mprGetNextItem(MprList *list, int *lastIndex) |
Get the next item in the list. | |
void* | mprGetPrevItem(MprList *list, int *lastIndex) |
Get the previous item in the list. | |
void | mprInitList(MprList *list) |
Initialize a list structure. | |
int | mprInsertItemAtPos(MprList *list, int index, cvoid *item) |
Insert an item into a list at a specific position. | |
int | mprLookupItem(MprList *list, cvoid *item) |
Find an item and return its index. | |
int | mprRemoveItem(MprList *list, void *item) |
Remove an item from the list. | |
int | mprRemoveItemAtPos(MprList *list, int index) |
Remove an item from the list. | |
int | mprRemoveLastItem(MprList *list) |
Remove the last item from the list. | |
int | mprRemoveRangeOfItems(MprList *list, int start, int end) |
Remove a range of items from the list. | |
void* | mprSetItem(MprList *list, int index, cvoid *item) |
Set a list item. | |
int | mprSetListLimits(MprList *list, int initialSize, int maxSize) |
Define the list size limits. | |
void | mprSortList(MprList *list, MprListCompareProc compare) |
Sort a list. | |
void | mprError(MprCtx ctx, cchar *fmt, ...) |
Log an error message. | |
void | mprFatalError(MprCtx ctx, cchar *fmt, ...) |
Log a fatal error message and exit. | |
MprLogHandler | mprGetLogHandler(MprCtx ctx) |
Get the current MPR debug log handler. | |
void | mprLog(MprCtx ctx, int level, cchar *fmt, ...) |
Write a message to the diagnostic log file. | |
void | mprMemoryError(MprCtx ctx, cchar *fmt, ...) |
Log a memory error message. | |
void | mprRawLog(MprCtx ctx, int level, cchar *fmt, ...) |
Write a raw log message to the diagnostic log file. | |
void | mprSetLogHandler(MprCtx ctx, MprLogHandler handler, void *handlerData) |
Set an MPR debug log handler. | |
void | mprSetLogLevel(MprCtx ctx, int level) |
Set the current logging level. | |
void | mprStaticAssert(cchar *loc, cchar *msg) |
Output an assertion failed message. | |
void | mprStaticError(MprCtx ctx, cchar *fmt, ...) |
Write a message to the diagnostic log file without allocating any memory. | |
void | mprUserError(MprCtx ctx, cchar *fmt, ...) |
Display an error message to the user. | |
void* | mprAlloc(MprCtx ctx, uint size) |
Allocate a block of memory. | |
void* | mprAllocObj(MprCtx ctx, Type type) |
Allocate an object of a given type. | |
void* | mprAllocObjWithDestructor(MprCtx ctx, Type type, MprDestructor destructor) void *mprAllocObjWithDestructorZeroed(MprCtx ctx |
Allocate an object of a given type with a destructor. | |
void* | mprAllocObjZeroed(MprCtx ctx, Type type) |
Allocate a zeroed object of a given type. | |
void* | mprAllocWithDestructor(MprCtx ctx, uint size, MprDestructor destructor) |
Allocate an object block of memory. | |
void* | mprAllocWithDestructorZeroed(MprCtx ctx, uint size, MprDestructor destructor) |
Allocate an object block of memory and zero it. | |
void* | mprAllocZeroed(MprCtx ctx, uint size) |
Allocate a zeroed block of memory. | |
int | mprFree(void *ptr) |
Free a block of memory. | |
void* | mprGetParent(MprCtx ctx) |
Get the memory parent of a block. | |
void* | mprMemdup(MprCtx ctx, cvoid *ptr, uint size) |
Duplicate a block of memory. | |
void* | mprRealloc(MprCtx ctx, void *ptr, uint size) |
Reallocate a block. | |
void | mprResetAllocError(MprCtx ctx) |
Reset the memory allocation error flag. | |
void | mprSetAllocLimits(MprCtx ctx, uint redline, uint maxMemory) |
Configure the application memory limits. | |
void | mprSetDestructor(void *ptr, MprDestructor destructor) |
Update the destructor for a block of memory. | |
char* | mprStrdup(MprCtx ctx, cchar *str) |
Safe replacement for strdup. | |
char* | mprStrndup(MprCtx ctx, cchar *str, uint size) |
Duplicate a string. | |
MprModule* | mprCreateModule(MprCtx ctx, cchar *name, cchar *version, void *moduleData, MprModuleProc start, MprModuleProc stop) |
Create a module. | |
cchar* | mprGetModuleSearchPath(MprCtx ctx) |
Get the module search path. | |
MprModule* | mprLoadModule(MprCtx ctx, cchar *filename, cchar *entryPoint) |
Load a module. | |
MprModule* | mprLookupModule(MprCtx ctx, cchar *name) |
Lookup a module. | |
void | mprSetModuleSearchPath(MprCtx ctx, char *searchPath) |
Set the module search path. | |
void | mprUnloadModule(MprModule *mp) |
Unload a module. | |
int | mprCopyPath(MprCtx ctx, cchar *from, cchar *to, int omode) |
Copy a file. | |
int | mprDeletePath(MprCtx ctx, cchar *path) |
Delete a file. | |
char* | mprGetAbsPath(MprCtx ctx, cchar *path) |
Convert a path to an absolute path. | |
char* | mprGetNativePath(MprCtx ctx, cchar *path) |
Get a path formatted according to the native O/S conventions. | |
char* | mprGetNormalizedPath(MprCtx ctx, cchar *path) |
Normalize a path. | |
char* | mprGetPathBase(MprCtx ctx, cchar *path) |
Get the base portion of a path. | |
char* | mprGetPathDir(MprCtx ctx, cchar *path) |
Get the directory portion of a path. | |
cchar* | mprGetPathExtension(MprCtx ctx, cchar *path) |
Get the file extension portion of a path. | |
MprList* | mprGetPathFiles(MprCtx ctx, cchar *dir, bool enumDirs) |
Create a directory list of files. | |
int | mprGetPathInfo(MprCtx ctx, cchar *path, MprPath *info) |
Return information about a file represented by a path. | |
cchar* | mprGetPathNewline(MprCtx ctx, cchar *path) |
Get the file newline character string for a given path. | |
char* | mprGetPathParent(MprCtx ctx, cchar *path) |
Get the parent directory of a path. | |
cchar* | mprGetPathSeparators(MprCtx ctx, cchar *path) |
Get the path directory separator. | |
char* | mprGetPortablePath(MprCtx ctx, cchar *path) |
Get a portable path. | |
char* | mprGetRelPath(MprCtx ctx, cchar *path) |
Get a relative path. | |
char* | mprGetTempPath(MprCtx ctx, cchar *tmpDir) |
Make a temporary file. | |
char* | mprGetTransformedPath(MprCtx ctx, cchar *path, int flags) |
Transform a path. | |
bool | mprIsAbsPath(MprCtx ctx, cchar *path) |
Determine if a path is absolute. | |
bool | mprIsRelPath(MprCtx ctx, cchar *path) |
Determine if a path is relative. | |
char* | mprJoinPath(MprCtx ctx, cchar *dir, cchar *other) |
Join paths. | |
char* | mprJoinPathExt(MprCtx ctx, cchar *dir, cchar *ext) |
Join an extension to a path. | |
int | mprMakeDir(MprCtx ctx, cchar *path, int perms, bool makeMissing) |
Make a directory. | |
void | mprMapSeparators(MprCtx ctx, char *path, int separator) |
Map the separators in a path. | |
bool | mprPathExists(MprCtx ctx, cchar *path, int omode) |
Determine if a file exists for a path name and can be accessed. | |
int | mprSamePath(MprCtx ctx, cchar *path1, cchar *path2) |
Compare two paths if they are the same. | |
int | mprSamePathCount(MprCtx ctx, cchar *path1, cchar *path2, int len) |
Compare two paths if they are the same for a given length. | |
char* | mprSearchPath(MprCtx ctx, cchar *path, int flags, cchar *search, ...) |
Search for a path. | |
char* | mprTrimPathExtension(MprCtx ctx, cchar *path) |
Trim an extension from a path. | |
int | mprTruncatePath(MprCtx ctx, cchar *path, int size) |
Truncate a path. | |
int | mprAvailablePoolThreads(MprCtx ctx) |
Get the count of available pool threads Return the count of free threads in the thread pool. | |
int | mprGetMaxPoolThreads(MprCtx ctx) |
Get the maximum count of pool threads Get the maximum limit of pool threads. | |
void | mprSetMaxPoolThreads(MprCtx ctx, int count) |
Set the maximum count of pool threads Set the maximum number of pool threads for the MPR. | |
void | mprSetMinPoolThreads(MprCtx ctx, int count) |
Set the minimum count of pool threads Set the count of threads the pool will have. | |
void | mprCloseSocket(MprSocket *sp, bool graceful) |
Close a socket. | |
MprSocket* | mprCreateSocket(MprCtx ctx, struct MprSsl *ssl) |
Create a socket. | |
int | mprFlushSocket(MprSocket *sp) |
Flush a socket. | |
bool | mprGetSocketBlockingMode(MprSocket *sp) |
Get the socket blocking mode. | |
bool | mprGetSocketEof(MprSocket *sp) |
Test if the other end of the socket has been closed. | |
int | mprGetSocketError(MprSocket *sp) |
Get a socket error code. | |
int | mprGetSocketFd(MprSocket *sp) |
Get the socket file descriptor. | |
int | mprGetSocketPort(MprSocket *sp) |
Get the port used by a socket. | |
int | mprOpenClientSocket(MprSocket *sp, cchar *hostName, int port, int flags) |
Open a client socket. | |
int | mprOpenServerSocket(MprSocket *sp, cchar *ipAddr, int port, MprSocketAcceptProc acceptFn, void *data, int flags) |
Open a server socket. | |
int | mprReadSocket(MprSocket *sp, void *buf, int size) |
Read from a socket. | |
MprOffset | mprSendFileToSocket(MprFile *file, MprSocket *sock, MprOffset offset, int bytes, MprIOVec *beforeVec, int beforeCount, MprIOVec *afterVec, int afterCount) |
Send a file to a socket. | |
int | mprSetSocketBlockingMode(MprSocket *sp, bool on) |
Set the socket blocking mode. | |
void | mprSetSocketCallback(MprSocket *sp, MprSocketProc fn, void *data, void *data2, int mask, int priority) |
Set the socket callback. | |
void | mprSetSocketEventMask(MprSocket *sp, int mask) |
Define the events of interest for a socket. | |
int | mprSetSocketNoDelay(MprSocket *sp, bool on) |
Set the socket delay mode. | |
bool | mprSocketIsSecure(MprSocket *sp) |
Determine if the socket is secure. | |
int | mprWriteSocket(MprSocket *sp, void *buf, int len) |
Write to a socket. | |
int | mprWriteSocketString(MprSocket *sp, cchar *str) |
Write to a string to a socket. | |
int | mprWriteSocketVector(MprSocket *sp, MprIOVec *iovec, int count) |
Write a vector to a socket. | |
MprCond* | mprCreateCond(MprCtx ctx) |
Create a condition lock variable. | |
MprMutex* | mprCreateLock(MprCtx ctx) |
Create a Mutex lock object. | |
MprSpin* | mprCreateSpinLock(MprCtx ctx) |
Create a spin lock lock object. | |
void | mprGlobalLock(MprCtx ctx) |
Globally lock the application. | |
void | mprGlobalUnlock(MprCtx ctx) |
Unlock the global mutex. | |
MprMutex* | mprInitLock(MprCtx ctx, MprMutex *mutex) |
Initialize a statically allocated Mutex lock object. | |
MprSpin* | mprInitSpinLock(MprCtx ctx, MprSpin *lock) |
Initialize a statically allocated spinlock object. | |
void | mprLock(MprMutex *lock) |
Lock access. | |
void | mprSignalCond(MprCond *cond) |
Signal a condition lock variable. | |
void | mprSpinLock(MprSpin *lock) |
Lock a spinlock. | |
void | mprSpinUnlock(MprSpin *lock) |
Unlock a spinlock. | |
bool | mprTryLock(MprMutex *lock) |
Attempt to lock access. | |
bool | mprTrySpinLock(MprSpin *lock) |
Attempt to lock access on a spin lock. | |
void | mprUnlock(MprMutex *lock) |
Unlock a mutex. | |
int | mprWaitForCond(MprCond *cond, int timeout) |
Wait for a condition lock variable. | |
MprThread* | mprCreateThread(MprCtx ctx, cchar *name, MprThreadProc proc, void *data, int priority, int stackSize) |
Create a new thread. | |
MprOsThread | mprGetCurrentOsThread() |
Get the O/S thread. | |
MprThread* | mprGetCurrentThread(MprCtx ctx) |
Get the currently executing thread. | |
cchar* | mprGetThreadName(MprThread *thread) |
Get the thread name. | |
int | mprGetThreadPriority(MprThread *thread) |
Get the thread priroity. | |
void | mprSetCurrentThreadPriority(MprCtx ctx, int priority) |
Set the thread priroity for the current thread. | |
void | mprSetThreadPriority(MprThread *thread, int priority) |
Set the thread priroity. | |
int | mprStartThread(MprThread *thread) |
Start a thread. | |
char* | mprEscapeCmd(MprCtx ctx, cchar *cmd, int escChar) |
Encode a string escaping typical command (shell) characters. | |
char* | mprEscapeHtml(MprCtx ctx, cchar *html) |
Encode a string by escaping typical HTML characters. | |
char* | mprFormatUri(MprCtx ctx, cchar *protocol, cchar *host, int port, cchar *path, cchar *query) |
Format a URI. | |
MprUri* | mprParseUri(MprCtx ctx, cchar *uri) |
Parse a URI. | |
char* | mprUrlDecode(MprCtx ctx, cchar *url) |
Decode a URL string by de-scaping URL characters. | |
char* | mprUrlEncode(MprCtx ctx, cchar *url) |
Encode a string by escaping URL characters. | |
char* | mprValidateUrl(MprCtx ctx, char *url) |
Validate a URL. | |
MprWaitHandler* | mprCreateWaitHandler(MprCtx ctx, int fd, int mask, MprWaitProc proc, void *data, int priority, int flags) |
Create a wait handler. | |
void | mprDisableWaitEvents(MprWaitHandler *wp, bool wakeup) |
Disable wait events. | |
void | mprEnableWaitEvents(MprWaitHandler *wp, bool wakeup) |
Enable wait events. | |
void | mprRecallWaitHandler(MprWaitHandler *wp) |
Recall a wait handler. | |
void | mprSetWaitCallback(MprWaitHandler *wp, MprWaitProc proc, int mask) |
Define the wait handler callback. | |
void | mprSetWaitInterest(MprWaitHandler *wp, int mask) |
Define the events of interest for a wait handler. | |
int | mprWaitForSingleIO(MprWaitHandler *wp, int fd, int mask, int timeout) |
Wait for I/O on an event handler. |
Typedefs
MprAllocNotifier | Memory allocation error callback. |
MprBufProc | Buffer refill callback function. |
MprCtx | Memory context type. |
MprDestructor | Mpr memory block destructors prototype. |
MprEventProc | Event callback function. |
MprListCompareProc | List comparison procedure for sorting. |
MprLogHandler | Log handler callback type. |
MprModuleEntry | Loadable module entry point signature. |
MprModuleProc | Module start/stop point function signature. |
MprSocketAcceptProc | Socket connection acceptance callback procedure. |
MprSocketProc | Socket I/O callback procedure. |
MprTime | Mpr time structure. |
MprBufProc | Buffer refill callback function. |
MprTime | Mpr time structure. |
MprEventProc | Event callback function. |
MprListCompareProc | List comparison procedure for sorting. |
MprLogHandler | Log handler callback type. |
MprAllocNotifier | Memory allocation error callback. |
MprCtx | Memory context type. |
MprDestructor | Mpr memory block destructors prototype. |
MprModuleEntry | Loadable module entry point signature. |
MprBlk | Memory Allocation Block Header. |
MprCond | Condition variable for multi-thread synchronization. |
MprDirEntry | Directory entry description. |
MprFileSystem | File system service. |
MprHashTable | Hash table control structure. |
MprKeyValue | Key value pairs for use with MprList or MprHash. |
MprMutex | Multithreading lock control structure. |
MprPath | Path information structure. |
MprSpin | Multithreading spin lock control structure. |
MprString | Safe String Module. |
MprThreadLocal | Thread local data storage. |
Defines
#define | MPR_BACKGROUND_PRIORITY 15 |
May only get CPU if idle. | |
#define | MPR_BUF_INCR 1024 |
Default buffer growth inc. | |
#define | MPR_BUFSIZE 1024 |
Reasonable size for buffers. | |
#define | MPR_CRITICAL_PRIORITY 99 |
May not yield. | |
#define | MPR_DEFAULT_ALLOC 64 |
Default small alloc size. | |
#define | MPR_DEFAULT_HASH_SIZE 23 |
Default size of hash table. | |
#define | MPR_DEFAULT_MAX_THREADS 10 |
Default max threads (10). | |
#define | MPR_DEFAULT_MIN_THREADS 0 |
Default min threads (0). | |
#define | MPR_DEFAULT_STACK 32768 |
Default stack size (32K). | |
#define | MPR_ERR -1 |
Default error code. | |
#define | MPR_ERR_ABORTED -2 |
Action aborted. | |
#define | MPR_ERR_ALREADY_EXISTS -3 |
Item already exists. | |
#define | MPR_ERR_BAD_ARGS -4 |
Bad arguments or paramaeters. | |
#define | MPR_ERR_BAD_FORMAT -5 |
Bad input format. | |
#define | MPR_ERR_BAD_STATE -7 |
Module is in a bad state. | |
#define | MPR_ERR_BAD_SYNTAX -8 |
Input has bad syntax. | |
#define | MPR_ERR_CANT_ACCESS -12 |
Can't access the file or resource. | |
#define | MPR_ERR_CANT_CREATE -14 |
Can't create the file or resource. | |
#define | MPR_ERR_CANT_OPEN -16 |
Can't open the file or resource. | |
#define | MPR_ERR_CANT_READ -17 |
Can't read from the file or resource. | |
#define | MPR_ERR_CANT_WRITE -18 |
Can't write to the file or resource. | |
#define | MPR_ERR_GENERAL -1 |
General error. | |
#define | MPR_ERR_NO_MEMORY -30 |
Memory allocation error. | |
#define | MPR_ERR_NOT_INITIALIZED -22 |
Module or resource is not initialized. | |
#define | MPR_ERR_OK 0 |
Standard MPR return and error codes. | |
#define | MPR_ERR_READ_ONLY -24 |
The operation timed out. | |
#define | MPR_ERROR 1 |
Standard logging trace levels are 0 to 9 with 0 being the most verbose. | |
#define | MPR_EVENT_CONTINUOUS 0x1 |
Auto reschedule the event. | |
#define | MPR_EVENT_PRIORITY 75 |
Run service event thread at higher priority. | |
#define | MPR_EVENT_RUNNING 0x4 |
Event currently executing. | |
#define | MPR_EVENT_THREAD 0x2 |
Run proc using pool thread. | |
#define | MPR_HTTP_BUFSIZE 2048 |
HTTP buffer size. | |
#define | MPR_HTTP_MAX_PASS 64 |
Size of password. | |
#define | MPR_HTTP_MAX_SECRET 32 |
Random bytes to use. | |
#define | MPR_HTTP_MAX_USER 64 |
Size of user name. | |
#define | MPR_HTTP_TIMEOUT 60000 |
HTTP Request timeout (60 sec). | |
#define | MPR_LIST_INCR 8 |
Default list growth inc. | |
#define | MPR_MAX_ARGC 128 |
Reasonable max of args. | |
#define | MPR_MAX_BUF 4194304 |
Max buffer size. | |
#define | MPR_MAX_FNAME 128 |
Reasonable filename size. | |
#define | MPR_MAX_LOG_STRING 512 |
Maximum log message. | |
#define | MPR_MAX_PATH 256 |
Reasonable path name size. | |
#define | MPR_MAX_STRING 1024 |
Maximum (stack) string size. | |
#define | MPR_NORMAL_PRIORITY 50 |
Normal (default) priority. | |
#define | MPR_POOL_PRIORITY 60 |
Slightly elevated priority. | |
#define | MPR_REQUEST_PRIORITY 50 |
Normal priority. | |
#define | MPR_SECURE_CLIENT ((struct MprSsl*) 1) |
Flag for mprCreateSocket to use the default SSL provider. | |
#define | MPR_SERVICE_ONE_THING 0x1 |
Wait for one event or one I/O. | |
#define | MPR_SOCKET_BLOCK 0x1 |
Use blocking I/O. | |
#define | MPR_SOCKET_BROADCAST 0x2 |
Broadcast mode. | |
#define | MPR_SOCKET_CLIENT 0x800 |
Socket is a client. | |
#define | MPR_SOCKET_CLOSED 0x4 |
MprSocket has been closed. | |
#define | MPR_SOCKET_CONNECTING 0x8 |
MprSocket has been closed. | |
#define | MPR_SOCKET_DATAGRAM 0x10 |
Use datagrams. | |
#define | MPR_SOCKET_EOF 0x20 |
Seen end of file. | |
#define | MPR_SOCKET_LISTENER 0x40 |
MprSocket is server listener. | |
#define | MPR_SOCKET_NODELAY 0x100 |
Disable Nagle algorithm. | |
#define | MPR_SOCKET_NOREUSE 0x80 |
Dont set SO_REUSEADDR option. | |
#define | MPR_SOCKET_THREAD 0x400 |
Process callbacks on a pool thread. | |
#define | MPR_SSL_BUFSIZE 2048 |
SSL has 16K max. | |
#define | MPR_TICKS_PER_SEC 1000 |
Time ticks per second. | |
#define | MPR_TIMEOUT_LINGER 2000 |
Close socket linger timeout. | |
#define | MPR_TIMEOUT_LOG_STAMP 3600000 |
Time between log time stamps (1 hr). | |
#define | MPR_TIMEOUT_PRUNER 600000 |
Time between pruner runs (10 min). | |
#define | MPR_TIMEOUT_START_TASK 2000 |
Time to start tasks running. | |
#define | MPR_TIMEOUT_STOP 5000 |
Wait when stopping resources. | |
#define | MPR_TIMEOUT_STOP_TASK 10000 |
Time to stop running tasks. | |
#define | MPR_TIMEOUT_STOP_THREAD 10000 |
Time to stop running threads. | |
#define | MPR_XML_BUFSIZE 512 |
XML read buffer size. |
Mpr
Primary MPR application control structure.
- Description:
- The Mpr structure stores critical application state information and is the root memory allocation context block. It is used as the MprCtx context for other memory allocations and is thus the ultimate parent of all allocated memory.
- API Stability:
- Evolving.
- See Also:
- mprBreakpoint, mprCreateEx, mprGetOsError, mprIsExiting, mprSetDebugMode, mprSignalExit, mprTerminate
- Fields:
-
long appInstance Application instance (windows). int argc Count of command line args. char * args Command line args. char ** argv Application command line args. uint classId Brew class ID. struct MprCmdService * cmdService Command service object. bool debugMode Run in debug mode (no timers). IDisplay * display Brew display object. int displayHeight Display height. int displayWidth Display width. char * domainName Domain portion. struct MprEventService * eventService Event service object. struct MprFileSystem * fileSystem File system service object. int flags Processing state. int hasEventsThread Running an events thread. Service pointers. MprHeap heap Top level memory pool. char * hostName Host name (fully qualified name). struct MprHttpService * httpService HTTP service object. char * ipAddr Public IP Address. MprLogHandler logHandler Current log handler callback. void * logHandlerData Handle data for log handler. int logLevel Log trace level. struct MprModuleService * moduleService Module service object. MprMutex * mutex Thread synchronization. char * name Product name. struct MprOsService * osService O/S service object. MprHeap pageHeap Heap for arenas and slabs. Always page oriented. struct MprPoolService * poolService Pool service object. char * serverName Server name portion (no domain). IShell * shell Brew shell object. struct MprSocketService * socketService Socket service object. MprSpin * spin Quick thread synchronization. ITAPI * tapi TAPI object. struct MprThreadService * threadService Thread service object. MprHashTable * timeTokens Date/Time parsing tokens. int timezone Minutes west of Greenwich. char * title Product title. char * version Product version. struct MprWaitService * waitService IO Waiting service object.
Trigger a breakpoint.
- Description:
- Triggers a breakpoint and traps to the debugger.
- See Also:
- mprCreateEx, mprGetOsError, mprIsExiting, mprSetDebugMode, mprSignalExit, mprTerminate
Create an instance of the MPR.
- Description:
- Initializes the MPR and creates an Mpr control object. The Mpr Object manages Mpr facilities and is the top level memory context. It may be used wherever a MprCtx parameter is required. This function must be called prior to calling any other Mpr API.
- Parameters:
-
argc Count of command line args. argv Command line arguments for the application. Arguments may be passed into the Mpr for retrieval by the unit test framework. cback Memory allocation failure notification callback.
- Returns:
- Returns a pointer to the Mpr object.
- API Stability:
- Evolving.
Create an instance of the MPR.
- Description:
- Alternate API to create and initialize the MPR. The Mpr object manages Mpr facilities and is the top level memory context. It may be used wherever a MprCtx parameter is required. This function, or mprCreate must be called prior to calling any other Mpr API.
- Parameters:
-
argc Count of arguments supplied in argv. argv Program arguments. The MPR can store the program arguments for retrieval by other parts of the program. cback Callback function to be invoked on memory allocation errors. Set to null if not required. shell Optional reference to an O/S implementation dependent shell object. Used by Brew.
- Returns:
- Returns a pointer to the Mpr object.
- API Stability:
- Evolving.
- See Also:
- mprBreakpoint, mprGetOsError, mprIsExiting, mprSetDebugMode, mprSignalExit, mprTerminate
Get the debug mode.
- Description:
- Returns whether the debug mode is enabled. Some modules observe debug mode and disable timeouts and timers so that single-step debugging can be used.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- Returns true if debug mode is enabled, otherwise returns false.
- API Stability:
- Evolving.
Return the O/S error code.
- Description:
- Returns an O/S error code from the most recent system call. This returns errno on Unix systems or GetLastError() on Windows.
- Returns:
- The O/S error code.
- API Stability:
- Evolving.
- See Also:
- mprBreakpoint, mprCreateEx, mprIsExiting, mprSetDebugMode, mprSignalExit, mprTerminate
Determine if the MPR should exit.
- Description:
- Returns true if the MPR should exit gracefully.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- API Stability:
- Evolving.
- See Also:
- mprBreakpoint, mprCreateEx, mprGetOsError, mprSetDebugMode, mprSignalExit, mprTerminate
Signal the MPR to exit gracefully.
- Description:
- Set the must exit flag for the MPR.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- API Stability:
- Evolving.
- See Also:
- mprBreakpoint, mprCreateEx, mprGetOsError, mprIsExiting, mprSetDebugMode, mprTerminate
Terminate the MPR.
- Description:
- Terminates the MPR and disposes of all allocated resources. The mprTerminate function will recursively free all memory allocated by the MPR.
- Parameters:
-
ctx Any memory context object returned by mprAlloc. graceful Shutdown gracefully waiting for all events to drain. Otherise exit immediately without waiting for any threads or events to complete.
- API Stability:
- Evolving.
- See Also:
- mprBreakpoint, mprCreateEx, mprGetOsError, mprIsExiting, mprSetDebugMode, mprSignalExit
MprBuf
Dynamic Buffer Module.
- Description:
- MprBuf is a flexible, dynamic growable buffer structure. It has start and end pointers to the data buffer which act as read/write pointers. Routines are provided to get and put data into and out of the buffer and automatically advance the appropriate start/end pointer. By definition, the buffer is empty when the start pointer == the end pointer. Buffers can be created with a fixed size or can grow dynamically as more data is added to the buffer.
For performance, the specification of MprBuf is deliberately exposed. All members of MprBuf are implicitly public. However, it is still recommended that wherever possible, you use the accessor routines provided.
- API Stability:
- Evolving.
- See Also:
- MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
- Fields:
-
int buflen Current size of buffer. uchar * data Actual buffer for data. uchar * end Pointer one past the last data chr. uchar * endbuf Pointer one past the end of buffer. int growBy Next growth increment to use. int maxsize Max size the buffer can ever grow. void * refillArg Refill arg. MprBufProc refillProc Auto-refill procedure. uchar * start Pointer to next data char.
Add a null character to the buffer contents.
- Description:
- Add a null byte but do not change the buffer content lengths. The null is added outside the "official" content length. This is useful when calling mprGetBufStart and using the returned pointer as a "C" string pointer.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Adjust the buffer end position.
- Description:
- Adjust the buffer start end position by the specified amount. This is typically used to advance the end position as content is appended to the buffer. Adjusting the start or end position will change the value returned by mprGetBufLength. If using the mprPutBlock or mprPutChar routines, adjusting the end position is done automatically.
- Parameters:
-
buf Buffer created via mprCreateBuf. count Positive or negative count of bytes to adjust the start position.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Adjust the buffer start position.
- Description:
- Adjust the buffer start position by the specified amount. This is typically used to advance the start position as content is consumed. Adjusting the start or end position will change the value returned by mprGetBufLength. If using the mprGetBlock or mprGetChar routines, adjusting the start position is done automatically.
- Parameters:
-
buf Buffer created via mprCreateBuf. count Positive or negative count of bytes to adjust the start position.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Compact the buffer contents.
- Description:
- Compact the buffer contents by copying the contents down to start the the buffer origin.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Create a new buffer.
- Description:
- Create a new buffer. Use mprFree to free the buffer.
- Parameters:
-
ctx Any memory context allocated by the MPR. initialSize Initial size of the buffer. maxSize Maximum size the buffer can grow to.
- Returns:
- A new buffer.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Flush the buffer contents.
- Description:
- Discard the buffer contents and reset the start end content pointers.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get a block of data from the buffer.
- Description:
- Get a block of data from the buffer start and advance the start position. If the requested length is greater than the available buffer content, then return whatever data is available.
- Parameters:
-
buf Buffer created via mprCreateBuf. blk Destination block for the read data. count Count of bytes to read from the buffer.
- Returns:
- The count of bytes rread into the block or -1 if the buffer is empty.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get a reference to the end of the buffer contents.
- Description:
- Get a pointer to the location immediately after the end of the buffer contents.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- Pointer to the end of the buffer data contents. Points to the location one after the last data byte.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get the buffer content length.
- Description:
- Get the length of the buffer contents. This is not the same as the buffer size which may be larger.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- The length of the content stored in the buffer.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get the origin of the buffer content storage.
- Description:
- Get a pointer to the start of the buffer content storage. This may not be equal to the start of the buffer content if mprAdjustBufStart has been called. Use mprGetBufSize to determine the length of the buffer content storage array.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- A pointer to the buffer content storage.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get the buffer refill procedure.
- Description:
- Return the buffer refill callback function.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- The refill call back function if defined.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get the current size of the buffer content storage.
- Description:
- This returns the size of the memory block allocated for storing the buffer contents.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- The size of the buffer content storage.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get the space available to store content.
- Description:
- Get the number of bytes available to store content in the buffer.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- The number of bytes available.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get the start of the buffer contents.
- Description:
- Get a pointer to the start of the buffer contents. Use mprGetBufLength to determine the length of the content. Use mprGetBufEnd to get a pointer to the location after the end of the content.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- Pointer to the start of the buffer data contents.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Get a character from the buffer.
- Description:
- Get the next byte from the buffer start and advance the start position.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- The character or -1 if the buffer is empty.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Grow the buffer.
- Description:
- Grow the storage allocated for content for the buffer. The new size must be less than the maximum limit specified via mprCreateBuf or mprSetBufSize.
- Parameters:
-
buf Buffer created via mprCreateBuf. count Count of bytes by which to grow the buffer content size.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Insert a character into the buffer.
- Description:
- Insert a character into to the buffer prior to the current buffer start point.
- Parameters:
-
buf Buffer created via mprCreateBuf. c Character to append.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Peek at the last character in the buffer.
- Description:
- Non-destructively return the last character from just prior to the end position in the buffer. The character is returned and the end position is not altered.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Peek at the next character in the buffer.
- Description:
- Non-destructively return the next character from the start position in the buffer. The character is returned and the start position is not altered.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Put a block to the buffer.
- Description:
- Append a block of data to the buffer at the end position and increment the end pointer.
- Parameters:
-
buf Buffer created via mprCreateBuf. ptr Block to append. size Size of block to append.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Put a character to the buffer.
- Description:
- Append a character to the buffer at the end position and increment the end pointer.
- Parameters:
-
buf Buffer created via mprCreateBuf. c Character to append.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Put a formatted string to the buffer.
- Description:
- Format a string and Append to the buffer at the end position and increment the end pointer.
- Parameters:
-
buf Buffer created via mprCreateBuf. fmt Printf style format string. ... Variable arguments for the format string.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Put an integer to the buffer.
- Description:
- Append a integer to the buffer at the end position and increment the end pointer.
- Parameters:
-
buf Buffer created via mprCreateBuf. i Integer to append to the buffer.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Put a string to the buffer.
- Description:
- Append a null terminated string to the buffer at the end position and increment the end pointer.
- Parameters:
-
buf Buffer created via mprCreateBuf. str String to append.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Refill the buffer with data.
- Description:
- Refill the buffer by calling the refill procedure specified via mprSetBufRefillProc.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Reset the buffer.
- Description:
- If the buffer is empty, reset the buffer start and end pointers to the beginning of the buffer.
- Parameters:
-
buf Buffer created via mprCreateBuf.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Set the maximum buffer size.
- Description:
- Update the maximum buffer size set when the buffer was created.
- Parameters:
-
buf Buffer created via mprCreateBuf. maxSize New maximum size the buffer can grow to.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Set the buffer refill procedure.
- Description:
- Define a buffer refill procedure. The MprBuf module will not invoke or manage this refill procedure. It is simply stored to allow upper layers to use and provide their own auto-refill mechanism.
- Parameters:
-
buf Buffer created via mprCreateBuf. fn Callback function to store. arg Callback data argument.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufSize, mprStealBuf
Set the buffer size.
- Description:
- Set the current buffer content size and maximum size limit. Setting a current size will immediately grow the buffer to be this size. If the size is less than the current buffer size, the requested size will be ignored. ie. this call will not shrink the buffer. Setting a maxSize will define a maximum limit for how big the buffer contents can grow. Set either argument to -1 to be ignored.
- Parameters:
-
buf Buffer created via mprCreateBuf. size Size to immediately make the buffer. If size is less than the current buffer size, it will be ignored. Set to -1 to ignore this parameter. maxSize Maximum size the buffer contents can grow to.
- Returns:
- Zero if successful and otherwise a negative error code.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprStealBuf
Steal the buffer memory from a buffer.
- Description:
- Steal ownership of the buffer memory from the buffer structure. All MPR memory is owned by a memory context and the contents of the buffer is owned by the MprBuf object. Stealing the buffer content memory is useful to preserve the buffer contents after the buffer is freed.
- Parameters:
-
ctx Memory context to won the memory for the buffer. buf Buffer created via mprCreateBuf.
- Returns:
- Pointer to the buffer contents. Use mprGetBufLength before calling mprStealBuf to determine the resulting size of the contents.
- See Also:
- MprBuf, MprBufProc, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize
MprDate
Date and Time Service.
- API Stability:
- Evolving.
- See Also:
- MprTime, mprAsctime, mprCtime, mprGetTime, mprLocaltime
- Fields:
-
Format time as a string.
- Description:
- Safe replacement for asctime. This call formats the time value supplied via timeptr into the supplied buffer. The supplied buffer size will be observed and the formatted time string will always have a terminating null.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. timeptr Time to format. buf Buffer to hold the formatted string. bufsize Maximum length for the string.
- Returns:
- The length of the string or MPR_ERR_WONT_FIT if the length is greater than max.
- See Also:
- MprTime, mprCtime, mprGetTime, mprLocaltime
Convert time to local time and format as a string.
- Description:
- Safe replacement for ctime. This call formats the time value supplied via timer into the supplied buffer. The supplied buffer size will be observed and the formatted time string will always have a terminating null.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. buf Buffer to hold the formatted string. bufsize Maximum length for the string. time Time to format. Use mprGetTime to retrieve the current time.
- Returns:
- The length of the string or MPR_ERR_WONT_FIT if the length is greater than max.
- See Also:
- MprTime, mprAsctime, mprGetTime, mprLocaltime
Get the system time.
- Description:
- Get the system time in milliseconds.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- Returns:
- The time in milliseconds since boot.
- See Also:
- MprTime, mprAsctime, mprCtime, mprLocaltime
Convert time to UTC and parse into a time structure.
- Description:
- Safe replacement for gmtime. This call converts the supplied time value to UTC time and parses the result into a tm structure.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. timep Pointer to a tm structure to hold the result. time The time to format.
- Returns:
- The tm structure reference.
- See Also:
- MprTime, mprAsctime, mprCtime, mprGetTime, mprLocaltime
Convert time to local representation.
- Description:
- Safe replacement for localtime. This call converts the time value to local time and formats the as a struct tm.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. timep Pointer to a tm structure to hold the result. time Time to format.
- Returns:
- Returns a pointer to the tmBuf.
- See Also:
- MprTime, mprAsctime, mprCtime, mprGetTime
MprEvent
Event object.
- Description:
- The MPR provides a powerful priority based eventing mechanism. Events are described by MprEvent objects which are created and queued via mprCreateEvent. Each event may have a priority and may be one-shot or be continuously rescheduled according to a specified period. The event subsystem provides the basis for callback timers.
- See Also:
- MprEventProc, mprCreateEvent, mprCreateTimerEvent, mprRescheduleEvent, mprRestartContinuousEvent, mprStopContinuousEvent
- Fields:
-
void * data Event private data. MprTime due When is the event due. int flags Event flags. struct MprEvent * next Next event linkage. int period Reschedule period. struct MprEvent * prev Previous event linkage. int priority Priority 0-99. 99 is highest. MprEventProc proc Callback procedure. MprTime timestamp When was the event created.
Create a new event.
- Description:
- Create and queue a new event for service.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. proc Function to invoke when the event is run. period Time in milliseconds used by continuous events between firing of the event. priority Priority to associate with the event. Priorities are integer values between 0 and 100 inclusive with 50 being a normal priority. Useful constants are: - MPR_LOW_PRIORITY
- MPR_NORMAL_PRIORITY
- MPR_HIGH_PRIORITY
data Data to associate with the event and stored in event->data. flags Flags to modify the behavior of the event. Valid values are: MPR_EVENT_CONTINUOUS to create an event which will be automatically rescheduled accoring to the specified period.
Create a timer event.
- Description:
- Create and queue a timer event for service. This is a convenience wrapper to create continuous events over the mprCreateEvent call.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. proc Function to invoke when the event is run. period Time in milliseconds used by continuous events between firing of the event. priority Priority to associate with the event. Priorities are integer values between 0 and 100 inclusive with 50 being a normal priority. Useful constants are: - MPR_LOW_PRIORITY
- MPR_NORMAL_PRIORITY
- MPR_HIGH_PRIORITY
data Data to associate with the event and stored in event->data. flags Not used.
Remove an event.
- Description:
- Remove a queued event. This is useful to remove continuous events from the event queue.
- Parameters:
-
event Event object returned from mprCreateEvent.
Reschedule an event.
- Description:
- Reschedule a continuous event by modifying its period.
- Parameters:
-
event Event object returned from mprCreateEvent. period Time in milliseconds used by continuous events between firing of the event.
Restart an event.
- Description:
- Restart a continuous event after it has been stopped via mprStopContinuousEvent. This call will add the event to the event queue and it will run after the configured event period has expired.
- Parameters:
-
event Event object returned from mprCreateEvent.
Service events.
- Description:
- Service the event queue. This call will block for the given delay until an event is ready to be serviced. Flags may modify the calls behavior.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. delay Time in milliseconds to block until an event occurs. flags If set to MPR_SERVICE_ONE_THING, this call will service at most one event. Otherwise set to zero.
- Returns:
- A count of the number of events serviced.
Stop an event.
- Description:
- Stop a continuous event and remove from the queue. The event object is not freed, but simply removed from the event queue.
- Parameters:
-
event Event object returned from mprCreateEvent.
MprFile
File I/O Module.
- Description:
- MprFile is the cross platform File I/O abstraction control structure. An instance will be created when a file is created or opened via mprOpen.
- API Stability:
- Evolving.
- See Also:
- mprDisableFileBuffering, mprEnableFileBuffering, mprFlush, mprGetFilePosition, mprGetFileSize, mprGetc, mprGets, mprOpen, mprPeekc, mprPutc, mprPuts, mprRead, mprSeek, mprWrite, mprWriteFormat, mprWriteString
- Fields:
-
MprBuf * buf Buffer for I/O if buffered. MprFileSystem * fileSystem File system owning this file. MprRomInode * inode Reference to ROM file. int mode File open mode. int perms File permissions. MprOffset pos Current read position. MprOffset size Current file size.
Attach to an existing file descriptor.
- Description:
- Attach a file to an open file decriptor and return a file object.
- Parameters:
-
ctx Any memory context allocated by the MPR. fd File descriptor to attach to. name Descriptive name for the file. omode Posix style file open mode mask. The open mode may contain the following mask values ored together: - O_RDONLY Open read only
- O_WRONLY Open write only
- O_RDWR Open for read and write
- O_CREAT Create or re-create
- O_TRUNC Truncate
- O_BINARY Open for binary data
- O_TEXT Open for text data
- O_EXCL Open with an exclusive lock
- O_APPEND Open to append
- Returns:
- Returns an MprFile object to use in other file operations.
Disable file buffering.
- Description:
- Disable any buffering of data when using the buffer.
- Parameters:
-
file File instance returned from mprOpen.
Enable file buffering.
- Description:
- Enable data buffering when using the buffer.
- Parameters:
-
file File instance returned from mprOpen. size Size to allocate for the buffer. maxSize Maximum size the data buffer can grow to.
Flush any buffered write data.
- Description:
- Write buffered write data and then reset the internal buffers.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen.
- Returns:
- Zero if successful, otherwise a negative MPR error code.
Read a character from the file.
- Description:
- Read a single character from the file and advance the read position.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen.
- Returns:
- If successful, return the character just read. Otherwise return a negative MPR error code. End of file is signified by reading 0.
Return the current file position.
- Description:
- Return the current read/write file position.
- Parameters:
-
file A file object returned from mprOpen.
- Returns:
- The current file offset position if successful. Returns a negative MPR error code on errors.
Get the size of the file.
- Description:
- Return the current file size.
- Parameters:
-
file A file object returned from mprOpen.
- Returns:
- The current file size if successful. Returns a negative MPR error code on errors.
Read a line from the file.
- Description:
- Read a single line from the file and advance the read position. Lines are delimited by the newline character. The newline is not included in the returned buffer.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. buf Pre-allocated buffer to contain the line of data. size Size of buf.
- Returns:
- The number of characters read into buf.
Open a file.
- Description:
- Open a file and return a file object.
- Parameters:
-
ctx Any memory context allocated by the MPR. filename String containing the filename to open or create. omode Posix style file open mode mask. The open mode may contain the following mask values ored together: - O_RDONLY Open read only
- O_WRONLY Open write only
- O_RDWR Open for read and write
- O_CREAT Create or re-create
- O_TRUNC Truncate
- O_BINARY Open for binary data
- O_TEXT Open for text data
- O_EXCL Open with an exclusive lock
- O_APPEND Open to append
perms Posix style file permissions mask.
- Returns:
- Returns an MprFile object to use in other file operations.
Non-destructively read a character from the file.
- Description:
- Read a single character from the file without advancing the read position.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen.
- Returns:
- If successful, return the character just read. Otherwise return a negative MPR error code. End of file is signified by reading 0.
Write a character to the file.
- Description:
- Writes a single character to the file. Output is buffered and is flushed as required or when mprClose is called.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. c Character to write.
- Returns:
- One if successful, otherwise returns a negative MPR error code on errors.
Write a line to the file.
- Description:
- Writes a single line to the file. Output is buffered and is flushed as required or when mprClose is called.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. buf Buffer containing the line to write. size Size of buf in characters to write.
- Returns:
- The number of characters written to the file. Returns a negative MPR error code on errors.
Read data from a file.
- Description:
- Reads data from a file.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. buf Buffer to contain the read data. size Size of buf in characters.
- Returns:
- The number of characters read from the file. Returns a negative MPR error code on errors.
Seek the I/O pointer to a new location in the file.
- Description:
- Move the position in the file to/from which I/O will be performed in the file. Seeking prior to a read or write will cause the next I/O to occur at that location.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. seekType Seek type may be one of the following three values: - SEEK_SET Seek to a position relative to the start of the file
- SEEK_CUR Seek relative to the current position
- SEEK_END Seek relative to the end of the file
distance A positive or negative byte offset.
- Returns:
- The new file position if successful otherwise a negative MPR error code is returned.
Write data to a file.
- Description:
- Writes data to a file.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. buf Buffer containing the data to write. count Cound of characters in buf to write.
- Returns:
- The number of characters actually written to the file. Returns a negative MPR error code on errors.
Write formatted data to a file.
- Description:
- Writes a formatted string to a file.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. fmt Format string.
- Returns:
- The number of characters actually written to the file. Returns a negative MPR error code on errors.
Write a string to a file.
- Description:
- Writes a string to a file.
- Parameters:
-
file Pointer to an MprFile object returned via MprOpen. str String to write.
- Returns:
- The number of characters actually written to the file. Returns a negative MPR error code on errors.
MprHash
Hash table entry structure.
- Description:
- Each hash entry has a descriptor entry. This is used to manage the hash table link chains.
- See Also:
- mprAddDuplicateHash, mprAddHash, mprCopyHash, mprCreateHash, mprCreateKeyPair, mprFree, mprGetFirstHash, mprGetNextHash, mprLookupHash, mprLookupHashEntry, mprRemoveHash
- API Stability:
- Evolving.
- Fields:
-
int bucket Hash bucket index. cvoid * data Pointer to symbol data. char * key Hash key. struct MprHash * next Next symbol in hash chain.
Add a duplicate symbol value into the hash table.
- Description:
- Add a symbol to the hash which may clash with an existing entry. Duplicate symbols can be added to the hash, but only one may be retrieved via mprLookupHash. To recover duplicate entries walk the hash using mprGetNextHash.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable. key String key of the symbole entry to delete. ptr Arbitrary pointer to associate with the key in the table.
- Returns:
- Integer count of the number of entries.
Add a symbol value into the hash table.
- Description:
- Associate an arbitrary value with a string symbol key and insert into the symbol table.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable. key String key of the symbole entry to delete. ptr Arbitrary pointer to associate with the key in the table.
- Returns:
- Integer count of the number of entries.
Copy a hash table.
- Description:
- Create a new hash table and copy all the entries from an existing table.
- Parameters:
-
ctx Any memory context allocated by the MPR. table Symbol table returned via mprCreateSymbolTable.
- Returns:
- A new hash table initialized with the contents of the original hash table.
Create a hash table.
- Description:
- Creates a hash table that can store arbitrary objects associated with string key values.
- Parameters:
-
ctx Any memory context allocated by the MPR. hashSize Size of the hash table for the symbol table. Should be a prime number.
- Returns:
- Returns a pointer to the allocated symbol table. Caller should use mprFree to dispose of the table when complete.
Return the first symbol in a symbol entry.
- Description:
- Prepares for walking the contents of a symbol table by returning the first entry in the symbol table.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable.
- Returns:
- Pointer to the first entry in the symbol table.
Return the count of symbols in a symbol entry.
- Description:
- Returns the number of symbols currently existing in a symbol table.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable.
- Returns:
- Integer count of the number of entries.
Return the next symbol in a symbol entry.
- Description:
- Continues walking the contents of a symbol table by returning the next entry in the symbol table. A previous call to mprGetFirstSymbol or mprGetNextSymbol is required to supply the value of the last argument.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable. last Symbol table entry returned via mprGetFirstSymbol or mprGetNextSymbol.
- Returns:
- Pointer to the first entry in the symbol table.
Lookup a symbol in the hash table.
- Description:
- Lookup a symbol key and return the value associated with that key.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable. key String key of the symbole entry to delete.
- Returns:
- Value associated with the key when the entry was inserted via mprInsertSymbol.
Lookup a symbol in the hash table and return the hash entry.
- Description:
- Lookup a symbol key and return the hash table descriptor associated with that key.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable. key String key of the symbole entry to delete.
- Returns:
- MprHash table structure for the entry.
Remove a symbol entry from the hash table.
- Description:
- Removes a symbol entry from the symbol table. The entry is looked up via the supplied key.
- Parameters:
-
table Symbol table returned via mprCreateSymbolTable. key String key of the symbole entry to delete.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code is returned.
MprList
List Module.
- Description:
- The MprList is a dynamic growable list suitable for storing pointers to arbitrary objects.
- API Stability:
- Evolving.
- See Also:
- MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
- Fields:
-
int capacity Current list size. void ** items List item data. int length Current length of the list contents. int maxSize Maximum capacity.
Add an item to a list.
- Description:
- Add the specified item to the list. The list must have been previously created via mprCreateList. The list will grow as required to store the item.
- Parameters:
-
list List pointer returned from mprCreateList. item Pointer to item to store.
- Returns:
- Returns a positive integer list index for the inserted item. If the item cannot be inserted due to a memory allocation failure, -1 is returned.
Append a list.
- Description:
- Append the contents of one list to another. The list will grow as required to store the item.
- Parameters:
-
list List pointer returned from mprCreateList. add List whose contents are added.
- Returns:
- Returns a pointer to the original list if successful. Returns NULL on memory allocation errors.
Clears the list of all items.
- Description:
- Resets the list length to zero and clears all items. Existing items are not freed, they are only removed from the list.
- Parameters:
-
list List pointer returned from mprCreateList.
Copy a list.
- Description:
- Copy the contents of a list into an existing list. The destination list is cleared first and has its dimensions set to that of the source clist.
- Parameters:
-
dest Destination list for the copy. src Source list.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Create a key / value pair.
- Description:
- Allocate and initialize a key value pair for use by the MprList or MprHash modules.
- Parameters:
-
ctx Any memory context allocated by the MPR. key Key string. value Key value string.
- Returns:
- An initialized MprKeyValue.
Create a list.
- Description:
- Creates an empty list. MprList's can store generic pointers. They automatically grow as required when items are added to the list. Callers should invoke mprFree when finished with the list to release allocated storage.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- Returns a pointer to the list.
Duplicate a list.
- Description:
- Copy the contents of a list into a new list.
- Parameters:
-
ctx Memory context from which to allocate the list. See mprAlloc. src Source list to copy.
- Returns:
- Returns a new list reference.
Get the first item in the list.
- Description:
- Returns the value of the first item in the list. After calling this routine, the remaining list items can be walked using mprGetNextItem.
- Parameters:
-
list List pointer returned from mprCreateList.
Get an list item.
- Description:
- Get an list item specified by its index.
- Parameters:
-
list List pointer returned from mprCreateList. index Item index into the list. Indexes have a range from zero to the lenghth of the list - 1.
Get the last item in the list.
- Description:
- Returns the value of the last item in the list. After calling this routine, the remaining list items can be walked using mprGetPrevItem.
- Parameters:
-
list List pointer returned from mprCreateList.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Get the current capacity of the list.
- Description:
- Returns the capacity of the list. This will always be equal to or greater than the list length.
- Parameters:
-
list List pointer returned from mprCreateList.
Get the number of items in the list.
- Description:
- Returns the number of items in the list. This will always be less than or equal to the list capacity.
- Parameters:
-
list List pointer returned from mprCreateList.
Get the next item in the list.
- Description:
- Returns the value of the next item in the list. Before calling this routine, mprGetFirstItem must be called to initialize the traversal of the list.
- Parameters:
-
list List pointer returned from mprCreateList. lastIndex Pointer to an integer that will hold the last index retrieved.
Get the previous item in the list.
- Description:
- Returns the value of the previous item in the list. Before calling this routine, mprGetFirstItem and/or mprGetNextItem must be called to initialize the traversal of the list.
- Parameters:
-
list List pointer returned from mprCreateList. lastIndex Pointer to an integer that will hold the last index retrieved.
Initialize a list structure.
- Description:
- If a list is statically declared inside another structure, mprInitList can be used to initialize it before use.
- Parameters:
-
list Reference to the MprList struct.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Insert an item into a list at a specific position.
- Description:
- Insert the item into the list before the specified position. The list will grow as required to store the item.
- Parameters:
-
list List pointer returned from mprCreateList. index Location at which to store the item. The previous item at this index is moved up to make room. item Pointer to item to store.
- Returns:
- The position index (positive integer) if successful. If the item cannot be inserted due to a memory allocation failure, -1 is returned.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Find an item and return its index.
- Description:
- Search for an item in the list and return its index.
- Parameters:
-
list List pointer returned from mprCreateList. item Pointer to value stored in the list.
Remove an item from the list.
- Description:
- Search for a specified item and then remove it from the list. Existing items are not freed, they are only removed from the list.
- Parameters:
-
list List pointer returned from mprCreateList. item Item pointer to remove.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
Remove an item from the list.
- Description:
- Removes the element specified by index, from the list. The list index is provided by mprInsertItem.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Remove the last item from the list.
- Description:
- Remove the item at the highest index position. Existing items are not freed, they are only removed from the list.
- Parameters:
-
list List pointer returned from mprCreateList.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Remove a range of items from the list.
- Description:
- Remove a range of items from the list. The range is specified from the start index up to and including the end index.
- Parameters:
-
list List pointer returned from mprCreateList. start Starting item index to remove (inclusive). end Ending item index to remove (inclusive).
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
Set a list item.
- Description:
- Update the list item stored at the specified index.
- Parameters:
-
list List pointer returned from mprCreateList. index Location to update. item Pointer to item to store.
- Returns:
- The old item previously at that location index.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Define the list size limits.
- Description:
- Define the list initial size and maximum size it can grow to.
- Parameters:
-
list List pointer returned from mprCreateList. initialSize Initial size for the list. This call will allocate space for at least this number of items. maxSize Set the maximum limit the list can grow to become.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
- See Also:
- MprList, MprListCompareProc, mprAddItem, mprAppendList, mprClearList, mprCreateKeyPair, mprCreateList, mprDupList, mprFree, mprFree, mprGetFirstItem, mprGetItem, mprGetListCapacity, mprGetListCount, mprGetNextItem, mprGetPrevItem, mprLookupItem, mprRemoveItem, mprRemoveRangeOfItems, mprSortList
Sort a list.
- Description:
- Sort a list using the sort ordering dictated by the supplied compare function.
- Parameters:
-
list List pointer returned from mprCreateList. compare Comparison function. If null, then a default string comparison is used.
MprLog
Logging Services.
- API Stability:
- Evolving.
- See Also:
- MprLogHandler, mprError, mprFatalError, mprGetLogHandler, mprLog, mprMemoryError, mprRawLog, mprSetLogHandler, mprSetLogLevel, mprStaticAssert, mprStaticError, mprUserError
- Fields:
-
Log an error message.
- Description:
- Send an error message to the MPR debug logging subsystem. The message will be to the log handler defined by mprSetLogHandler. It is up to the log handler to respond appropriately and log the message.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
Log a fatal error message and exit.
- Description:
- Send a fatal error message to the MPR debug logging subsystem and then exit the application by calling exit(). The message will be to the log handler defined by mprSetLogHandler. It is up to the log handler to respond appropriately and log the message.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
Get the current MPR debug log handler.
- Description:
- Get the log handler defined via mprSetLogHandler.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- A function of the signature MprLogHandler.
Write a message to the diagnostic log file.
- Description:
- Send a message to the MPR logging subsystem.
- Parameters:
-
level Logging level for this message. The level is 0-9 with zero being the most verbose. ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
- Remarks:
- MprLog is highly useful as a debugging aid when integrating or when developing new modules.
Log a memory error message.
- Description:
- Send a memory error message to the MPR debug logging subsystem. The message will be passed to the log handler defined by mprSetLogHandler. It is up to the log handler to respond appropriately to the fatal message, the MPR takes no other action other than logging the message. Typically, a memory message will be logged and the application will be shutdown. The preferred method of operation is to define a memory depletion callback via mprCreate. This will be invoked whenever a memory allocation error occurs.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
Write a raw log message to the diagnostic log file.
- Description:
- Send a raw message to the MPR logging subsystem. Raw messages do not have any application prefix attached to the message and do not append a newline to the message.
- Parameters:
-
level Logging level for this message. The level is 0-9 with zero being the most verbose. ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
- Remarks:
- MprLog is highly useful as a debugging aid when integrating or when developing new modules.
Set an MPR debug log handler.
- Description:
- Defines a callback handler for MPR debug and error log messages. When output is sent to the debug channel, the log handler will be invoked to accept the output message.
- Parameters:
-
ctx Any memory context allocated by the MPR. handler Callback handler. handlerData Callback handler data.
Set the current logging level.
- Description:
- This call defines the maximum level of messages that will be logged. Calls to mprLog specify a message level. If the message level is greater than the defined logging level, the message is ignored.
- Parameters:
-
ctx Any memory context allocated by the MPR. level New logging level. Must be 0-9 inclusive.
- Returns:
- The previous logging level.
- API Stability:
- Evolving.
Output an assertion failed message.
- Description:
- This will emit an assertion failed message to the standard error output. It will bypass the logging system.
- Parameters:
-
loc Source code location string. Use MPR_LOC to define a file name and line number string suitable for this parameter. msg Simple string message to output.
Write a message to the diagnostic log file without allocating any memory.
Useful for log messages from within the memory allocator- Description:
- Send a message to the MPR logging subsystem. This will not allocate any memory while formatting the message. The formatted message string will be truncated in size to MPR_MAX_STRING bytes.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
Display an error message to the user.
- Description:
- Display an error message to the user and then send it to the MPR debug logging subsystem. The message will be passed to the log handler defined by mprSetLogHandler. It is up to the log handler to respond appropriately and display the message to the user.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string. Variable number of arguments to. ... Variable number of arguments for printf data.
MprMem
Memory Allocation Service.
- Description:
- The MPR provides a memory manager that sits above malloc. This layer provides arena and slab based allocations with a tree structured allocation mechanism. The goal of the layer is to provide a fast, secure, scalable memory allocator suited for embedded applications in multithreaded environments.
By using a tree structured network of memory contexts, error recovery in applications and memory freeing becomes much easier and more reliable. When a memory block is allocated a parent memory block must be specified. When the parent block is freed, all its children are automatically freed.
The MPR handles memory allocation errors globally. The application can configure a memory limits and redline so that memory depletion can be proactively detected and handled. This relieves most cost from detecting and handling allocation errors.
- API Stability:
- Evolving.
- See Also:
- MprCtx, mprAlloc, mprAllocObjWithDestructor, mprAllocWithDestructor, mprAllocWithDestructorZeroed, mprAllocZeroed, mprCreate, mprFree, mprGetParent, mprMemcpy, mprMemdup, mprRealloc, mprResetAllocError, mprSetAllocLimits, mprStrndup
- Fields:
-
Allocate a block of memory.
- Description:
- Allocates a block of memory using the supplied memory context ctx as the parent. mprAlloc manages a tree structure of memory blocks. Freeing a block via mprFree will release the allocated block and all child blocks.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. size Size of the memory block to allocate.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
Allocate an object of a given type.
- Description:
- Allocates a block of memory large enough to hold an instance of the specified type. This uses the supplied memory context ctx as the parent. This is implemented as a macro.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. type Type of the object to allocate.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
- API Stability:
- Prototype. This function names are highly likely to be refactored.
Allocate an object of a given type with a destructor.
- Description:
- Allocates a block of memory large enough to hold an instance of the specified type with a destructor. This uses the supplied memory context ctx as the parent. This is implemented as a macro. this call associates a destructor function with an object. This function will be invoked when the object is freed. Freeing a block will first call the destructor and if that returns zero, mprFree will release the allocated block and all child blocks.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. type Type of the object to allocate. destructor Destructor function to invoke when the allocation is freed via mprFree.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
- API Stability:
- Prototype. This function names are highly likely to be refactored. Allocate a zeroed object of a given type with a destructor.
- Description:
- Allocates a zeroed block of memory large enough to hold an instance of the specified type with a destructor. This uses the supplied memory context ctx as the parent. This is implemented as a macro. this call associates a destructor function with an object. This function will be invoked when the object is freed. Freeing a block will first call the destructor and if that returns zero, mprFree will release the allocated block and all child blocks.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. type Type of the object to allocate. destructor Destructor function to invoke when the allocation is freed via mprFree.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
- API Stability:
- Prototype. This function names are highly likely to be refactored.
Allocate a zeroed object of a given type.
- Description:
- Allocates a zeroed block of memory large enough to hold an instance of the specified type. This uses the supplied memory context ctx as the parent. This is implemented as a macro.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. type Type of the object to allocate.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
- API Stability:
- Prototype. This function names are highly likely to be refactored.
Allocate an object block of memory.
- Description:
- Allocates a block of memory using the supplied memory context ctx as the parent. mprAllocWithDestructor associates a destructor function with an object. This function will be invoked when the object is freed. Freeing a block will first call the destructor and if that returns zero, mprFree will release the allocated block and all child blocks.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. size Size of the memory block to allocate. destructor Destructor function to invoke when the allocation is freed via mprFree.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
- API Stability:
- Prototype. This function names are highly likely to be refactored.
Allocate an object block of memory and zero it.
- Description:
- Allocates a zeroed block of memory using the supplied memory context ctx as the parent. mprAllocWithDestructor associates a destructor function with an object. This function will be invoked when the object is freed. Freeing a block will first call the destructor and if that returns zero, mprFree will release the allocated block and all child blocks.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. size Size of the memory block to allocate. destructor Destructor function to invoke when the allocation is freed via mprFree.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
- API Stability:
- Prototype. This function names are highly likely to be refactored.
Allocate a zeroed block of memory.
- Description:
- Allocates a zeroed block of memory using the supplied memory context ctx as the parent. mprAlloc manages a tree structure of memory blocks. Freeing a block via mprFree will release the allocated block and all child blocks.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. size Size of the memory block to allocate.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to malloc and mprAlloc.
Free a block of memory.
- Description:
- MprFree should be used to free memory allocated by mprAlloc, or mprRealloc. This call will ignore calls to free a null pointer, thus it is an acceptable idiom to free a pointer without testing its value for null. When mprFree is called it will first invoke any object destructor function for the allocated block. If this destructor returns zero, it will then proceed and free all allocated children before finally releasing the block.
- Parameters:
-
ptr Memory to free. If NULL, take no action.
- Returns:
- Returns zero if the block was actually freed. If the destructor prevented the freeing, a non-zero value will be returned.
Get the memory parent of a block.
- Description:
- Return the parent memory context for a block.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- Returns:
- The memory owning this block.
Duplicate a block of memory.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- Description:
- Copy a block of memory into a newly allocated block.
- Parameters:
-
ptr Pointer to the block to duplicate. size Size of the block to copy.
- Returns:
- Returns an allocated block. Caller must free via mprFree.
Reallocate a block.
- Description:
- Reallocates a block increasing its size. If the specified size is less than the current block size, the call will ignore the request and simply return the existing block.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. ptr Memory to reallocate. If NULL, call malloc. size New size of the required memory block.
- Returns:
- Returns a pointer to the allocated block. If memory is not available the memory exhaustion handler specified via mprCreate will be called to allow global recovery.
- Remarks:
- Do not mix calls to realloc and mprRealloc.
Reset the memory allocation error flag.
- Description:
- Reset the alloc error flag triggered.
- Parameters:
-
ctx Any memory context allocated by the MPR.
Configure the application memory limits.
- Description:
- Configure memory limits to constrain memory usage by the application. The memory allocation subsystem will check these limits before granting memory allocation requrests. The redLine is a soft limit that if exceeded will invoke the memory allocation callback, but will still honor the request. The maxMemory limit is a hard limit. The MPR will prevent allocations which exceed this maximum. The memory callback handler is defined via the mprCreate call.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. redline Soft memory limit. If exceeded, the request will be granted, but the memory handler will be invoked. maxMemory Hard memory limit. If exceeded, the request will not be granted, and the memory handler will be invoked.
Update the destructor for a block of memory.
- Description:
- This call updates the destructor for a block of memory allocated via mprAllocWithDestructor.
- Parameters:
-
ptr Memory to free. If NULL, take no action. destructor Destructor function to invoke when mprFree is called.
Safe replacement for strdup.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- Description:
- mprStrdup() should be used as a replacement for strdup wherever possible. It allows the strdup to be copied to be NULL, in which case it will allocate an empty string.
- Parameters:
-
str Pointer to string to duplicate. If str is NULL, allocate a new string containing only a trailing NULL character.
- Returns:
- Returns an allocated string including trailing null.
- Remarks:
- Memory allocated via mprStrdup() must be freed via mprFree().
Duplicate a string.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- Description:
- Copy a string into a newly allocated block. The new block will be sized to the maximum of the length of the existing string (plus a null) and the requested size.
- Parameters:
-
str Pointer to the block to duplicate. size Requested minimum size of the allocated block holding the duplicated string.
- Returns:
- Returns an allocated block. Caller must free via mprFree.
MprModule
Loadable Module Service.
- Description:
- The MPR provides services to load and unload shared libraries.
- See Also:
- MprModuleProc, mprCreateModule, mprGetModuleSearchPath, mprLoadModule, mprLookupModule, mprSetModuleSearchPath, mprUnloadModule
- API Stability:
- Evolving.
- Fields:
-
void * handle O/S shared library load handle. void * moduleData Module specific data. char * name Unique module name. MprModuleProc start Start the module service. MprModuleProc stop Stop the module service. char * version Module version.
Create a module.
- Description:
- This call will create a module object for a loadable module. This should be invoked by the module itself in its module entry point to register itself with the MPR.
- Parameters:
-
ctx Any memory context allocated by the MPR. name Name of the module. version Version string of the form: Major.Minor.patch. moduleData to associate with this module. start Start function to invoke to start module services. stop Stop function to invoke to stop module services.
- Returns:
- A module object for this module.
Get the module search path.
- Description:
- Get the directory search path used by the MPR when loading dynamic modules. This is a colon separated (or semicolon on Windows) set of directories.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- The module search path. Caller must not free.
Load a module.
- Description:
- Load a module into the MPR. This will load a dynamic shared object (shared library) and call the modules entry point. If the module has already been loaded, it this call will do nothing and will just return the already defined module object.
- Parameters:
-
ctx Any memory context allocated by the MPR. filename Name of the module to load. The module will be searched using the defined module search path (see mprSetModuleSearchPath). The filename may or may not include a platform specific shared library extension such as .dll, .so or .dylib. By omitting the library extension, code can portably load shared libraries. entryPoint Name of function to invoke after loading the module.
- Returns:
- A module object for this module created in the module entry point by calling mprCreateModule.
Lookup a module.
- Description:
- Lookup a module by name and return the module object.
- Parameters:
-
ctx Any memory context allocated by the MPR. name Name of the module specified to mprCreateModule.
- Returns:
- A module object for this module created in the module entry point by calling mprCreateModule.
Set the module search path.
- Description:
- Set the directory search path used by the MPR when loading dynamic modules. This path string must should be a colon separated (or semicolon on Windows) set of directories.
- Parameters:
-
ctx Any memory context allocated by the MPR. searchPath Colon separated set of directories.
- Returns:
- The module search path. Caller must not free.
Unload a module.
- Description:
- Unload a module from the MPR. This will unload a dynamic shared object (shared library). This routine is not fully supported by the MPR and is often fraught with issues. A module must usually be completely inactive with no allocated memory when it is unloaded.
- Parameters:
-
mp Module object returned via mprLookupModule.
MprPath
Path (filename) Services Module.
- Description:
- MprPath is the filename abstraction control structure.
- API Stability:
- Evolving.
- See Also:
- MprFile, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Copy a file.
- Description:
- Create a new copy of a file with the specified open permissions mode.
- Parameters:
-
ctx Any memory context allocated by the MPR. from Path of the existing file to copy. to Name of the new file copy. omode Posix style file open mode mask. See mprOpen for the various modes.
- Returns:
- True if the file exists and can be accessed.
- See Also:
- MprFile, MprPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Delete a file.
- Description:
- Delete a file or directory.
- Parameters:
-
ctx Any memory context allocated by the MPR. path String containing the path to delete.
- Returns:
- Returns zero if successful otherwise a negative MPR error code is returned.
- See Also:
- MprFile, MprPath, mprCopyPath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Convert a path to an absolute path.
- Description:
- Get an absolute (canonical) equivalent representation of a path.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path to examine.
- Returns:
- An absolute path. Caller should free via mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get a path formatted according to the native O/S conventions.
- Description:
- Get an equivalent absolute path formatted using the directory separators native to the O/S platform. On Windows, it will use backward slashes ("\") as the directory separator and will contain a drive specification.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- An allocated string containing the new path. Caller must free using mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Normalize a path.
- Description:
- A path is normalized by redundant segments such as "./" and "../dir" and duplicate path separators. Path separators are mapped. Paths are not converted to absolute paths.
- Parameters:
-
ctx Any memory context allocated by the MPR. path First path to compare.
- Returns:
- A newly allocated, clean path. Caller should free via mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get the base portion of a path.
- Description:
- Get the base portion of a path by stripping off all directory components.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- A path without any directory portion. The path is a reference into the original file string and should not be freed.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get the directory portion of a path.
- Description:
- Get the directory portion of a path by stripping off the base name.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- A new string containing the directory name. Caller must free.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get the file extension portion of a path.
- Description:
- Get the file extension portion of a path. The file extension is the portion after the last "." in the path.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- A path extension. The extension is a reference into the original file string and should not be freed.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Create a directory list of files.
- Description:
- Get the list of files in a directory and return a list.
- Parameters:
-
ctx Any memory context allocated by the MPR. dir Directory to list. enumDirs Set to true to enumerate directory entries as well as regular paths.
- Returns:
- A list (MprList) of directory paths. Each path is a regular string owned by the list object. Use mprFree to free the memory for the list and directory paths.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Return information about a file represented by a path.
- Description:
- Returns file status information regarding the path.
- Parameters:
-
ctx Any memory context allocated by the MPR. path String containing the path to query. info Pointer to a pre-allocated MprPath structure.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code is returned.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get the file newline character string for a given path.
Return the character string used to delimit new lines in text files- Parameters:
-
ctx Any memory context allocated by the MPR. path Use this path to specify either the root of the file system or a file on the file system.
- Returns:
- A string used to delimit new lines. This is typically "\n" or "\r\n".
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get the parent directory of a path.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- An allocated string containing the parent directory. Caller must free using mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get the path directory separator.
Return the directory separator characters used to separate directories on a given file system. Typically "/" or "\" The first entry is the default separator- Parameters:
-
ctx Any memory context allocated by the MPR. path Use this path to specify either the root of the file system or a file on the file system.
- Returns:
- The string of path separators. The first entry is the default separator.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get a portable path.
- Description:
- Get an equivalent absolute path that is somewhat portable. This means it will use forward slashes ("/") as the directory separator.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- An allocated string containing the new path. Caller must free using mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Get a relative path.
- Description:
- Get an equivalent path that is relative to the application's current working directory.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- An allocated string containing the relative directory. Caller must free using mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Make a temporary file.
- Description:
- Thread-safe way to make a unique temporary file.
- Parameters:
-
ctx Any memory context allocated by the MPR. tmpDir Base directory in which the temp file will be allocated.
- Returns:
- An allocated string containing the path of the temp file.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Transform a path.
- Description:
- A path is transformed by cleaning and then transforming according to the flags.
- Parameters:
-
ctx Any memory context allocated by the MPR. path First path to compare. flags Flags to modify the path representation.
- Returns:
- A newly allocated, clean path. Caller should free via mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Determine if a path is absolute.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- True if the path is absolue.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Determine if a path is relative.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine.
- Returns:
- True if the path is relative.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Join paths.
- Description:
- Resolve one path relative to another.
- Parameters:
-
ctx Any memory context allocated by the MPR. dir Directory path name to test use as the base/dir. other Other path name to resolve against path.
- Returns:
- Allocated string containing the resolved path.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Join an extension to a path.
- Description:
- Add an extension to a path if it does not already have one.
- Parameters:
-
ctx Any memory context allocated by the MPR. dir Directory path name to test use as the base/dir. ext Extension to add. Must have period prefix.
- Returns:
- Allocated string containing the resolved path.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Make a directory.
- Description:
- Make a directory using the supplied path. Intermediate directories are created as required.
- Parameters:
-
ctx Any memory context allocated by the MPR. path String containing the directory pathname to create. makeMissing If true make all required intervening directory segments. perms Posix style file permissions mask.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code is returned.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Map the separators in a path.
- Description:
- Map the directory separators in a path to the specified separators. This is useful to change from backward to forward slashes when dealing with Windows paths.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to examine. separator Separator character to use.
- Returns:
- An allocated string containing the parent directory. Caller must free using mprFree.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprPathExists, mprSearchPath, mprTruncatePath
Determine if a file exists for a path name and can be accessed.
- Description:
- Test if a file can be accessed for a given mode.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to test. omode Posix style file open mode mask. See mprOpen for the various modes.
- Returns:
- True if the file exists and can be accessed.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprSearchPath, mprTruncatePath
Compare two paths if they are the same.
- Description:
- Compare two paths to see if they are equal. This normalizes the paths to absolute paths first before comparing. It does handle case sensitivity appropriately.
- Parameters:
-
ctx Any memory context allocated by the MPR. path1 First path to compare. path2 Second path to compare.
- Returns:
- True if the file exists and can be accessed.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Compare two paths if they are the same for a given length.
- Description:
- Compare two paths to see if they are equal. This normalizes the paths to absolute paths first before comparing. It does handle case sensitivity appropriately. The len parameter if non-zero, specifies how many characters of the paths to compare.
- Parameters:
-
ctx Any memory context allocated by the MPR. path1 First path to compare. path2 Second path to compare. len How many characters to compare.
- Returns:
- True if the file exists and can be accessed.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Search for a path.
- Description:
- Search for a file using a given set of search directories.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Path name to locate. Must be an existing file or directory. flags Flags. search Variable number of directories to search.
- Returns:
- Allocated string containing the full path name of the located file.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprTruncatePath
Trim an extension from a path.
- Description:
- Trim a file extension (".ext") from a path name.
- Parameters:
-
ctx Any memory context allocated by the MPR. path First path to compare.
- Returns:
- An allocated string with the trimmed path.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath, mprTruncatePath
Truncate a path.
- Description:
- Truncate a file to a given size.
- Parameters:
-
ctx Any memory context allocated by the MPR. path First path to compare. size New maximum size for the file.
- Returns:
- Zero if successful.
- See Also:
- MprFile, MprPath, mprCopyPath, mprDeletePath, mprGetAbsPath, mprGetCurrentPath, mprGetNormalizedPath, mprGetPathBase, mprGetPathDir, mprGetPathExtension, mprGetPathFiles, mprGetPathNewline, mprGetPathParent, mprGetPathSeparators, mprGetPortablePath, mprGetRelPath, mprGetTempPath, mprGetTransformedPath, mprIsAbsPath, mprIsRelPath, mprJoinPath, mprJoinPathExt, mprMakeDir, mprMapSeparators, mprPathExists, mprSearchPath
MprPoolService
Thread Pool Service.
- Description:
- The MPR provides a thread pool for rapid starting and assignment of threads to tasks.
- API Stability:
- Evolving.
- Fields:
-
Get the count of available pool threads Return the count of free threads in the thread pool.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc.
- Returns:
- An integer count of pool threads.
- See Also:
- MprPoolService, mprSetMaxPoolThreads, mprSetMinPoolThreads
Get the maximum count of pool threads Get the maximum limit of pool threads.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc.
- Returns:
- The maximum count of pool threads.
Set the maximum count of pool threads Set the maximum number of pool threads for the MPR.
If this number if less than the current number of threads, excess threads will be gracefully pruned as they exit- Parameters:
-
ctx Any memory allocation context created by MprAlloc. count Maximum limit of threads to define.
Set the minimum count of pool threads Set the count of threads the pool will have.
This will cause the pool to pre-create at least this many threads- Parameters:
-
ctx Any memory allocation context created by MprAlloc. count Minimum count of threads to use.
MprSocket
Socket Service.
- Description:
- The MPR Socket service provides IPv4 and IPv6 capabilities for both client and server endpoints. Datagrams, Broadcast and point to point services are supported. The APIs can be used in both blocking and non-blocking modes.
The socket service integrates with the MPR thread pool and eventing services. Socket connections can be handled by threads from the thread pool for scalable, multithreaded applications.
- API Stability:
- Evolving.
- See Also:
- mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
- Fields:
-
MprSocketAcceptProc acceptCallback Accept callback. void * acceptData User accept callback data. char * clientIpAddr Client side ip address. int currentEvents Mask of ready events (FD_x). int error Last error. int fd Actual socket file handle. int flags Current state flags. MprWaitHandler * handler Wait handler. int handlerMask Handler events of interest. int handlerPriority Handler priority. int interestEvents Mask of events to watch for. MprSocketProc ioCallback User I/O callback. void * ioData User io callback data. void * ioData2 Secondary user io callback data. char * ipAddr Server side ip address. struct MprSocket * listenSock Listening socket. MprMutex * mutex Multi-thread sync. int port Port to listen on. MprSocketProvider * provider Socket implementation provider. MprSocketService * service Socket service. struct MprSsl * ssl SSL configuration. struct MprSslSocket * sslSocket Extended ssl socket state. If set, then using ssl. int waitForEvents Events being waited on.
Close a socket.
- Description:
- Close a socket. If the graceful option is true, the socket will first wait for written data to drain before doing a graceful close.
- Parameters:
-
sp Socket object returned from mprCreateSocket. graceful Set to true to do a graceful close. Otherwise, an abortive close will be performed.
- See Also:
- MprSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Create a socket.
- Description:
- Create a new socket.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. ssl An optional SSL context if the socket is to support SSL. Use the MPR_SECURE_CLIENT define to specify that mprCreateSocket should use the default SSL provider.
- Returns:
- A new socket object.
- See Also:
- MprSocket, mprCloseSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Flush a socket.
- Description:
- Flush any buffered data in a socket. Standard sockets do not use buffering and this call will do nothing. SSL sockets do buffer and calling mprFlushSocket will write pending written data.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- A count of bytes actually written. Return a negative MPR error code on errors.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Get the socket blocking mode.
- Description:
- Return the current blocking mode setting.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- True if the socket is in blocking mode. Otherwise false.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Test if the other end of the socket has been closed.
- Description:
- Determine if the other end of the socket has been closed and the socket is at end-of-file.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- True if the socket is at end-of-file.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Get a socket error code.
- Description:
- This will map a Windows socket error code into a posix error code.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- A posix error code.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Get the socket file descriptor.
- Description:
- Get the file descriptor associated with a socket.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- The integer file descriptor used by the O/S for the socket.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Get the port used by a socket.
- Description:
- Get the TCP/IP port number used by the socket.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- The integer TCP/IP port number used by the socket.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Open a client socket.
- Description:
- Open a client connection.
- Parameters:
-
sp Socket object returned via mprCreateSocket. hostName Host or IP address to connect to. port TCP/IP port number to connect to. flags Socket flags may use the following flags ored together: - MPR_SOCKET_BLOCK - to use blocking I/O. The default is non-blocking.
- MPR_SOCKET_BROADCAST - Use IPv4 broadcast
- MPR_SOCKET_DATAGRAM - Use IPv4 datagrams
- MPR_SOCKET_NOREUSE - Set NOREUSE flag on the socket
- MPR_SOCKET_NODELAY - Set NODELAY on the socket
- MPR_SOCKET_THREAD - Process callbacks on a separate thread.
- Returns:
- Zero if the connection is successful. Otherwise a negative MPR error code.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Open a server socket.
- Description:
- Open a server socket and listen for client connections.
- Parameters:
-
sp Socket object returned via mprCreateSocket. ipAddr IP address to bind to. Set to 0.0.0.0 to bind to all possible addresses on a given port. port TCP/IP port number to connect to. acceptFn Callback function to invoke to accept incoming client connections. data Opaque data reference to pass to the accept function. flags Socket flags may use the following flags ored together: - MPR_SOCKET_BLOCK - to use blocking I/O. The default is non-blocking.
- MPR_SOCKET_BROADCAST - Use IPv4 broadcast
- MPR_SOCKET_DATAGRAM - Use IPv4 datagrams
- MPR_SOCKET_NOREUSE - Set NOREUSE flag on the socket
- MPR_SOCKET_NODELAY - Set NODELAY on the socket
- MPR_SOCKET_THREAD - Process callbacks on a separate thread.
- Returns:
- Zero if the connection is successful. Otherwise a negative MPR error code.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Read from a socket.
- Description:
- Read data from a socket. The read will return with whatever bytes are available. If none and the socket is in blocking mode, it will block untill there is some data available or the socket is disconnected.
- Parameters:
-
sp Socket object returned from mprCreateSocket. buf Pointer to a buffer to hold the read data. size Size of the buffer.
- Returns:
- A count of bytes actually read. Return a negative MPR error code on errors.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Send a file to a socket.
- Description:
- Write the contents of a file to a socket. If the socket is in non-blocking mode (the default), the write may return having written less than the required bytes. This API permits the writing of data before and after the file contents.
- Parameters:
-
file File to write to the socket. sock Socket object returned from mprCreateSocket. offset offset within the file from which to read data. bytes Length of file data to write. beforeVec Vector of data to write before the file contents. beforeCount Count of entries in beforeVect. afterVec Vector of data to write after the file contents. afterCount Count of entries in afterCount.
- Returns:
- A count of bytes actually written. Return a negative MPR error code on errors.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Set the socket blocking mode.
- Description:
- Set the blocking mode for a socket. By default a socket is in non-blocking mode where read / write calls will not block.
- Parameters:
-
sp Socket object returned from mprCreateSocket. on Set to zero to put the socket into non-blocking mode. Set to non-zero to enable blocking mode.
- Returns:
- The old blocking mode if successful or a negative MPR error code.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Set the socket callback.
- Description:
- Define a socket callback function to invoke in response to socket I/O events.
- Parameters:
-
sp Socket object returned from mprCreateSocket. fn Callback function. data Data to pass with the callback. data2 More data to pass with the callback. mask Bit mask of events of interest. Set to MPR_READABLE and/or MPR_WRITABLE. priority Priority to associate with the event. Priorities are integer values between 0 and 100 inclusive with 50 being a normal priority. (See MPR_NORMAL_PRIORITY).
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Define the events of interest for a socket.
- Description:
- Define an event mask of interest for a socket. The mask is made by oring the MPR_READABLE and MPR_WRITEABLE flags as requried.
- Parameters:
-
sp Socket object returned from mprCreateSocket. mask Set to true to do a graceful close. Otherwise, an abortive close will be performed.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Set the socket delay mode.
- Description:
- Set the socket delay behavior (nagle algorithm). By default a socket will partial packet writes a little to try to accumulate data and coalesce TCP/IP packages. Setting the delay mode to false may result in higher performance for interactive applications.
- Parameters:
-
sp Socket object returned from mprCreateSocket. on Set to non-zero to put the socket into no delay mode. Set to zero to enable the nagle algorithm.
- Returns:
- The old delay mode if successful or a negative MPR error code.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Determine if the socket is secure.
- Description:
- Determine if the socket is using SSL to provide enhanced security.
- Parameters:
-
sp Socket object returned from mprCreateSocket.
- Returns:
- True if the socket is using SSL, otherwise zero.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprWriteSocket, mprWriteSocketString, mprWriteSocketVector
Write to a socket.
- Description:
- Write a block of data to a socket. If the socket is in non-blocking mode (the default), the write may return having written less than the required bytes.
- Parameters:
-
sp Socket object returned from mprCreateSocket. buf Reference to a block to write to the socket. len Length of data to write. This may be less than the requested write length if the socket is in non-blocking mode. Will return a negative MPR error code on errors.
- Returns:
- A count of bytes actually written. Return a negative MPR error code on errors.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocketString, mprWriteSocketVector
Write to a string to a socket.
- Description:
- Write a string to a socket. If the socket is in non-blocking mode (the default), the write may return having written less than the required bytes.
- Parameters:
-
sp Socket object returned from mprCreateSocket. str Null terminated string to write.
- Returns:
- A count of bytes actually written. Return a negative MPR error code on errors.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketVector
Write a vector to a socket.
- Description:
- Do scatter/gather I/O by writing a vector of buffers to a socket.
- Parameters:
-
sp Socket object returned from mprCreateSocket. iovec Vector of data to write before the file contents. count Count of entries in beforeVect.
- Returns:
- A count of bytes actually written. Return a negative MPR error code on errors.
- See Also:
- MprSocket, mprCloseSocket, mprCreateSocket, mprFlushSocket, mprFree, mprGetSocketBlockingMode, mprGetSocketBlockingMode, mprGetSocketEof, mprGetSocketError, mprGetSocketFd, mprGetSocketPort, mprOpenClientSocket, mprOpenServerSocket, mprReadSocket, mprSendFileToSocket, mprSetSocketCallback, mprSetSocketEventMask, mprSetSocketNoDelay, mprSocketIsSecure, mprWriteSocket, mprWriteSocketString
MprSynch
Multithreaded Synchronization Services.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateCond, mprCreateSpinLock, mprFree, mprFree, mprGlobalLock, mprGlobalUnlock, mprLock, mprSignalCond, mprTryLock, mprUnlock, mprWaitForCond
- API Stability:
- Evolving.
- Fields:
-
Create a condition lock variable.
- Description:
- This call creates a condition variable object that can be used in mprWaitForCond and mprSignalCond calls. Use mprFree to destroy the condition variable.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateSpinLock, mprFree, mprFree, mprGlobalLock, mprGlobalUnlock, mprLock, mprSignalCond, mprTryLock, mprUnlock, mprWaitForCond
Create a Mutex lock object.
- Description:
- This call creates a Mutex lock object that can be used in mprLock, mprTryLock and mprUnlock calls. Use mprFree to destroy the lock.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
Create a spin lock lock object.
- Description:
- This call creates a spinlock object that can be used in mprSpinLock, and mprSpinUnlock calls. Spin locks using MprSpin are much faster than MprMutex based locks on some systems. Use mprFree to destroy the lock.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateCond, mprFree, mprFree, mprGlobalLock, mprGlobalUnlock, mprLock, mprSignalCond, mprTryLock, mprUnlock, mprWaitForCond
Globally lock the application.
- Description:
- This call asserts the application global lock so that other threads calling mprGlobalLock will block until the current thread calls mprGlobalUnlock.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateCond, mprCreateSpinLock, mprFree, mprFree, mprGlobalUnlock, mprLock, mprSignalCond, mprTryLock, mprUnlock, mprWaitForCond
Unlock the global mutex.
- Description:
- This call unlocks the global mutex previously locked via mprGlobalLock.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateCond, mprCreateSpinLock, mprFree, mprFree, mprGlobalLock, mprLock, mprSignalCond, mprTryLock, mprUnlock, mprWaitForCond
Initialize a statically allocated Mutex lock object.
- Description:
- This call initialized a Mutex lock object without allocation. The object can then be used used in mprLock, mprTryLock and mprUnlock calls.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. mutex Reference to an MprMutex structure to initialize.
- Returns:
- A reference to the supplied mutex. Returns null on errors.
Initialize a statically allocated spinlock object.
- Description:
- This call initialized a spinlock lock object without allocation. The object can then be used used in mprSpinLock and mprSpinUnlock calls.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. lock Reference to a static MprSpin object.
- Returns:
- A reference to the MprSpin object. Returns null on errors.
Lock access.
- Description:
- This call asserts a lock on the given lock mutex so that other threads calling mprLock will block until the current thread calls mprUnlock.
Signal a condition lock variable.
- Description:
- Signal a condition variable and set it to the triggered status. Existing or future callers of mprWaitForCond will be awakened.
- Parameters:
-
cond Condition variable object created via mprCreateCond.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateCond, mprCreateSpinLock, mprFree, mprFree, mprGlobalLock, mprGlobalUnlock, mprLock, mprTryLock, mprUnlock, mprWaitForCond
Lock a spinlock.
- Description:
- This call asserts a lock on the given spinlock so that other threads calling mprSpinLock will block until the curren thread calls mprSpinUnlock.
Unlock a spinlock.
- Description:
- This call unlocks a spinlock previously locked via mprSpinLock or mprTrySpinLock.
Attempt to lock access.
- Description:
- This call attempts to assert a lock on the given lock mutex so that other threads calling mprLock or mprTryLock will block until the current thread calls mprUnlock.
- Returns:
- Returns zero if the successful in locking the mutex. Returns a negative MPR error code if unsuccessful.
Attempt to lock access on a spin lock.
- Description:
- This call attempts to assert a lock on the given spin lock so that other threads calling mprSpinLock or mprTrySpinLock will block until the current thread calls mprSpinUnlock.
- Returns:
- Returns zero if the successful in locking the spinlock. Returns a negative MPR error code if unsuccessful.
Unlock a mutex.
- Description:
- This call unlocks a mutex previously locked via mprLock or mprTryLock.
Wait for a condition lock variable.
- Description:
- Wait for a condition lock variable to be signaled. If the condition is signaled before the timeout expires this call will reset the condition variable and return. This way, it automatically resets the variable for future waiters.
- Parameters:
-
cond Condition variable object created via mprCreateCond. timeout Time in milliseconds to wait for the condition variable to be signaled.
- See Also:
- MprCond, MprMutex, MprSpin, mprCreateCond, mprCreateSpinLock, mprFree, mprFree, mprGlobalLock, mprGlobalUnlock, mprLock, mprSignalCond, mprTryLock, mprUnlock
MprThread
Thread Service.
- Description:
- The MPR provides a cross-platform thread abstraction above O/S native threads. It supports arbitrary thread creation, thread priorities, thread management and thread local storage. By using these thread primitives with the locking and synchronization primitives offered by MprMutex, MprSpin and MprCond - you can create cross platform multi-threaded applications.
- API Stability:
- Evolving.
- See Also:
- mprCreateThread, mprGetCurrentOsThread, mprGetCurrentThread, mprGetThreadName, mprGetThreadPriority, mprSetThreadPriority, mprSetThreadPriority, mprStartThread
- Fields:
-
void * data Data argument. MprThreadProc entry Users thread entry point. MprMutex * mutex Multi-thread synchronization. char * name Name of thead for trace. MprOsThread osThreadID O/S thread id. ulong pid Owning process id. int priority Current priority. int stackSize Only VxWorks implements. handle threadHandle Threads OS handle for WIN.
Create a new thread.
- Description:
- MPR threads are usually real O/S threads and can be used with the various locking services (MprMutex, MprCond, MprSpin) to enable scalable multithreaded applications.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. name Unique name to give the thread. proc Entry point function for the thread. mprStartThread will invoke this function to start the thread. data Thread private data stored in MprThread.data. priority Priority to associate with the thread. Mpr thread priorities are are integer values between 0 and 100 inclusive with 50 being a normal priority. The MPR maps these priorities in a linear fashion onto native O/S priorites. Useful constants are: - MPR_LOW_PRIORITY
- MPR_NORMAL_PRIORITY
- MPR_HIGH_PRIORITY
stackSize Stack size to use for the thread. On VM based systems, increasing this value, does not necessarily incurr a real memory (working-set) increase. Set to zero for a default stack size.
- Returns:
- A MprThread object.
Get the O/S thread.
- Description:
- Get the O/S thread ID for the currently executing thread.
- Returns:
- Returns a platform specific O/S thread ID. On Unix, this is a pthread reference. On other systems it is a thread integer value.
Get the currently executing thread.
- Description:
- Get the thread object for the currently executing O/S thread.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- Returns a thread object representing the current O/S thread.
Get the thread name.
- Description:
- MPR threads are usually real O/S threads and can be used with the various locking services (MprMutex, MprCond, MprSpin) to enable scalable multithreaded applications.
- Parameters:
-
thread Thread object returned from mprCreateThread.
- Returns:
- Returns a string name for the thread. Caller must not free.
Get the thread priroity.
- Description:
- Get the current priority for the specified thread.
- Parameters:
-
thread Thread object returned by mprCreateThread.
- Returns:
- An integer MPR thread priority between 0 and 100 inclusive.
Set the thread priroity for the current thread.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Description:
- Set the current priority for the specified thread.
- Parameters:
-
priority Priority to associate with the thread. Mpr thread priorities are are integer values between 0 and 100 inclusive with 50 being a normal priority. The MPR maps these priorities in a linear fashion onto native O/S priorites. Useful constants are: - MPR_LOW_PRIORITY
- MPR_NORMAL_PRIORITY
- MPR_HIGH_PRIORITY
Set the thread priroity.
- Description:
- Set the current priority for the specified thread.
- Parameters:
-
thread Thread object returned by mprCreateThread. priority Priority to associate with the thread. Mpr thread priorities are are integer values between 0 and 100 inclusive with 50 being a normal priority. The MPR maps these priorities in a linear fashion onto native O/S priorites. Useful constants are: - MPR_LOW_PRIORITY
- MPR_NORMAL_PRIORITY
- MPR_HIGH_PRIORITY
Start a thread.
- Description:
- Start a thread previously created via mprCreateThread. The thread will begin at the entry function defined in mprCreateThread.
- Parameters:
-
thread Thread object returned from mprCreateThread.
- Returns:
- Returns zero if successful, otherwise a negative MPR error code.
MprUri
URI management.
- Description:
- The MPR provides routines for formatting and parsing URIs. Routines are also provided to escape dangerous characters for URIs as well as HTML content and shell commands.
- API Stability:
- Evolving.
- See Also:
- mprEscapeCmd, mprEscapeHtml, mprFormatUri, mprUrlDecode, mprUrlEncode, mprValidateUrl
- Fields:
-
char * ext Document extension. char * host Url host name. char * originalUri Original URI. char * parsedUriBuf Allocated storage for parsed uri. int port Port number. char * query Query string. char * scheme URI scheme (http|https|. ). bool secure Using https. char * url Url path name (without scheme, host, query or fragements).
Encode a string escaping typical command (shell) characters.
- Description:
- Encode a string escaping all dangerous characters that have meaning for the unix or MS-DOS command shells.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. cmd Command string to encode. escChar Escape character to use when encoding the command.
- Returns:
- An allocated string containing the escaped command. Caller must free using mprFree.
- See Also:
- mprEscapeHtml, mprFormatUri, mprUrlDecode, mprUrlEncode, mprValidateUrl
Encode a string by escaping typical HTML characters.
- Description:
- Encode a string escaping all dangerous characters that have meaning in HTML documents.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. html HTML content to encode.
- Returns:
- An allocated string containing the escaped HTML. Caller must free using mprFree.
- See Also:
- mprEscapeCmd, mprFormatUri, mprUrlDecode, mprUrlEncode, mprValidateUrl
Format a URI.
- Description:
- Format a URI string using the input components.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. protocol Protocol string for the uri. Example: "http". host Host or IP address. port TCP/IP port number. path URL path. query Additiona query parameters.
- Returns:
- A newly allocated uri string. Caller must free using mprFree.
- See Also:
- mprEscapeCmd, mprEscapeHtml, mprUrlDecode, mprUrlEncode, mprValidateUrl
Parse a URI.
- Description:
- Parse a uri and return a tokenized MprUri structure.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. uri Uri string to parse.
- Returns:
- A newly allocated MprUri structure. Caller must free using mprFree.
- See Also:
- mprEscapeCmd, mprEscapeHtml, mprFormatUri, mprUrlDecode, mprUrlEncode, mprValidateUrl
Decode a URL string by de-scaping URL characters.
- Description:
- Decode a string with www-encoded characters that have meaning for URLs.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. url URL to decode.
- Returns:
- A reference to the buf argument.
- See Also:
- mprEscapeCmd, mprEscapeHtml, mprFormatUri, mprUrlEncode, mprValidateUrl
Encode a string by escaping URL characters.
- Description:
- Encode a string escaping all characters that have meaning for URLs.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. url URL to encode.
- Returns:
- An allocated string containing the encoded URL. Caller must free using mprFree.
- See Also:
- mprEscapeCmd, mprEscapeHtml, mprFormatUri, mprUrlDecode, mprValidateUrl
Validate a URL.
- Description:
- Validate and canonicalize a URL. This removes redundant "./" sequences and simplifies "../dir" references. This operates in-situ and modifies the existing string.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. url Url string to validate.
- Returns:
- A validated url.
- See Also:
- mprEscapeCmd, mprEscapeHtml, mprFormatUri, mprUrlDecode, mprUrlEncode
MprWaitHandler
Wait Handler Service.
- Description:
- Wait handlers provide callbacks for when I/O events occur. They provide a wait to service many I/O file descriptors without requiring a thread per descriptor.
- See Also:
- MprEvent, mprCreateEvent, mprDisableWaitEvents, mprEnableWaitEvents, mprRecallWaitHandler, mprServiceEvents, mprSetWaitCallback, mprSetWaitInterest, mprWaitForSingleIO
- Fields:
-
int desiredMask Mask of desired events. int disableMask Mask of disabled events. int fd O/S File descriptor (sp->sock). int flags Control flags. void * handlerData Argument to pass to proc. struct MprWaitHandler * next List linkage. int presentMask Mask of current events. int priority Thread priority. MprWaitProc proc Wait handler procedure. struct MprEvent * threadEvent Event reference. MprWaitService * waitService Wait service pointer.
Create a wait handler.
- Description:
- Create a wait handler that will be invoked when I/O of interest occurs on the specified file handle The wait handler is registered with the MPR event I/O mechanism.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. fd File descriptor. mask Mask of events of interest. This is made by oring MPR_READABLE and MPR_WRITEABLE. proc Callback function to invoke when an I/O event of interest has occurred. data Data item to pass to the callback. priority MPR priority to associate with the callback. This is only used if the MPR_WAIT_THREAD is specified in the flags and the MPR is build multithreaded. flags Flags may be set to MPR_WAIT_THREAD if the callback function should be invoked using a thread from the thread pool.
- Returns:
- A new wait handler registered with the MPR event mechanism.
Disable wait events.
- Description:
- Disable wait events for a given file descriptor.
- Parameters:
-
wp Wait handler created vai mprCreateWaitHandler. wakeup Set to true if it should wakeup the MPR service thread.
Enable wait events.
- Description:
- Enable wait events for a given file descriptor.
- Parameters:
-
wp Wait handler created vai mprCreateWaitHandler. wakeup Set to true if it should wakeup the MPR service thread. This should normally be set to true.
Recall a wait handler.
- Description:
- Signal that a wait handler should be recalled a the earliest opportunity. This is useful when a protocol stack has buffered data that must be processed regardless of whether more I/O occurs.
- Parameters:
-
wp Wait handler created vai mprCreateWaitHandler.
Define the wait handler callback.
- Description:
- This updates the callback function for the wait handler. Callback functions are originally specified via mprCreateWaitHandler.
- Parameters:
-
wp Wait handler created vai mprCreateWaitHandler. proc Callback function to invoke when an I/O event of interest has occurred. mask Mask of MPR_READABLE and MPR_WRITEABLE.
Define the events of interest for a wait handler.
- Description:
- Define the events of interest for a wait handler. The mask describes whether readable or writable events should be signalled to the wait handler. Disconnection events are passed via read events.
- Parameters:
-
wp Wait handler created vai mprCreateWaitHandler. mask Mask of MPR_READABLE and MPR_WRITEABLE.
Wait for I/O on an event handler.
- Description:
- This call will block for a given timeout until I/O of interest occurs on the given serviced. Flags may modify the calls behavior.
- Parameters:
-
wp Wait handler created vai mprCreateWaitHandler. fd File descriptor to wait on. mask Mask of MPR_READABLE and MPR_WRITEABLE. timeout Time in milliseconds to block.
- Returns:
- Zero on success, otherwise a negative MPR error code.
Functions
Format a string into an allocated buffer.
- Description:
- This call will dynamically allocate a buffer up to the specified maximum size and will format the supplied arguments into the buffer. A trailing null will always be appended. The call returns the size of the allocated string excluding the null.
- Parameters:
-
ctx Any memory context allocated by the MPR. maxSize Maximum size to allocate for the buffer including the trailing null. fmt Printf style format string.
- Returns:
- The number of characters in the string.
Convert a string to an integer.
- Description:
- This call converts the supplied string to an integer using the specified radix (base).
- Parameters:
-
str Pointer to the string to parse. radix Base to use when parsing the string.
- Returns:
- The integer equivalent value of the string.
Print a formatted message to a file descriptor.
- Description:
- This is a replacement for fprintf as part of the safe string MPR library. It minimizes memory use and uses a file descriptor instead of a File pointer.
- Parameters:
-
file MprFile object returned via mprOpen. fmt Printf style format string.
- Returns:
- The number of bytes written.
Return the current working directory.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- Returns an allocated string with the current working directory as an absolute path.
Get the Http reponse code as a string.
- Description:
- Get the Http response code as a string.
- Parameters:
-
ctx Any memory allocation context created by MprAlloc. code Http status code.
- Returns:
- A reference to the response code string. Callers must not free this reference.
Get the next word token.
- Description:
- Split a string into word tokens using the supplied separator.
- Parameters:
-
buf Buffer to use to hold the word token. bufsize Size of the buffer. str Input string to tokenize. Note this cannot be a const string. It will be written. delim String of separator characters to use when tokenizing. tok Pointer to a word to hold a pointer to the next token in the original string.
- Returns:
- The number of bytes in the allocated block.
Convert an integer to a string.
- Description:
- This call converts the supplied integer into a string formatted into the supplied buffer.
- Parameters:
-
buf Pointer to the buffer that will hold the string. size Size of the buffer. value Integer value to convert. radix The base radix to use when encoding the number.
- Returns:
- The number of characters in the string.
Compare two byte strings.
- Description:
- Safely compare two byte strings. This is a safe replacement for memcmp.
- Parameters:
-
b1 Pointer to the first byte string. b1Len Length of the first byte string. b2 Pointer to the second byte string. b2Len Length of the second byte string.
- Returns:
- Returns zero if the byte strings are identical. Otherwise returns -1 if the first string is less than the second. Returns 1 if the first is greater than the first.
Safe copy for a block of data.
- Description:
- Safely copy a block of data into an existing memory block. The call ensures the destination block is not overflowed and returns the size of the block actually copied. This is similar to memcpy, but is a safer alternative.
- Parameters:
-
dest Pointer to the destination block. destMax Maximum size of the destination block. src Block to copy. nbytes Size of the source block.
- Returns:
- The number of characters in the allocated block.
Formatted print.
This is a secure verion of printf that can handle null args- Description:
- This is a secure replacement for printf. It can handle null arguments without crashes. minimal footprint. The MPR can be build without using any printf routines.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string.
- Returns:
- The number of bytes written.
Print a formatted message to the standard error channel.
- Description:
- This is a secure replacement for fprintf(stderr.
- Parameters:
-
ctx Any memory context allocated by the MPR. fmt Printf style format string.
- Returns:
- The number of bytes written.
Append strings to an existing string and reallocate as required.
- Description:
- Append a list of strings to an existing string. The list of strings is terminated by a null argument. The call returns the size of the allocated block.
- Parameters:
-
ctx Any memory context allocated by the MPR. max Maximum size of the result string. buf Existing string to reallocate. May be null. src Variable list of strings to append. The final string argument must be null.
- Returns:
- An allocated result string. Caller must free.
Format time according to RFC822.
- Description:
- Thread-safe formatting of time dates according to RFC822. For example: "Fri, 07 Jan 2003 12:12:21 GMT".
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. buf Time to format. bufsize Size of buf. timep Input pointer to a tm structure holding the time to format.
- Returns:
- Returns zero on success. Returns MPR_ERR_WONT_FIT if the bufsize is too small.
Turn on debug mode.
- Description:
- Debug mode disables timeouts and timers. This makes debugging much easier.
- Parameters:
-
ctx Any memory context allocated by the MPR. on Set to true to enable debugging mode.
- API Stability:
- Evolving.
Format a string into a statically allocated buffer.
- Description:
- This call format a string using printf style formatting arguments. A trailing null will always be appended. The call returns the size of the allocated string excluding the null.
- Parameters:
-
buf Pointer to the buffer. maxSize Size of the buffer. fmt Printf style format string.
- Returns:
- The buffer.
Print a message to the applications standard output without allocating memory.
- Description:
- This is a secure replacement for printf that will not allocate memory.
- Parameters:
-
ctx Any memory context allocated by the MPR. This is used to locate the standard output channel and not to allocate memory. fmt Printf style format string.
- Returns:
- The number of bytes written.
- Remarks:
- The maximum output is MPR_MAX_STRING - 1.
Print a message to the standard error channel without allocating memory.
- Description:
- This is a secure replacement for fprintf(stderr that will not allocate memory.
- Parameters:
-
ctx Any memory context allocated by the MPR. This is used to locate the standard output channel and not to allocate memory. fmt Printf style format string.
- Returns:
- The number of bytes written.
- Remarks:
- The maximum output is MPR_MAX_STRING - 1.
Catenate strings.
- Description:
- Safe replacement for strcat. Catenates a string onto an existing string. This call accepts a variable list of strings to append. The list of strings is terminated by a null argument. The call returns the length of the resulting string. This call is similar to strcat, but it will enforce a maximum size for the resulting string and will ensure it is terminated with a null.
- Parameters:
-
ctx Any memory context allocated by mprAlloc or mprCreate. max Maximum size of the new block. src Variable list of strings to append. The final string argument must be null.
- Returns:
- Returns an allocated string.
Compare strings.
- Description:
- Compare two strings. This is a safe replacement for strcmp. It can handle null args.
- Parameters:
-
str1 First string to compare. str2 Second string to compare.
- Returns:
- Returns zero if the strings are identical. Return -1 if the first string is less than the second. Return 1 if the first string is greater than the second.
Compare strings ignoring case.
- Description:
- Compare two strings ignoring case differences. This call operates similarly to strcmp.
- Parameters:
-
str1 First string to compare. str2 Second string to compare.
- Returns:
- Returns zero if the strings are equivalent, < 0 if s1 sorts lower than s2 in the collating sequence or > 0 if it sorts higher.
Compare strings ignoring case.
- Description:
- Compare two strings ignoring case differences for a given string length. This call operates similarly to strncmp.
- Parameters:
-
str1 First string to compare. str2 Second string to compare. len Length of characters to compare.
- Returns:
- Returns zero if the strings are equivalent, < 0 if s1 sorts lower than s2 in the collating sequence or > 0 if it sorts higher.
Copy a string.
- Description:
- Safe replacement for strcpy. Copy a string and ensure the target string is not overflowed. The call returns the length of the resultant string or an error code if it will not fit into the target string. This is similar to strcpy, but it will enforce a maximum size for the copied string and will ensure it is terminated with a null.
- Parameters:
-
dest Pointer to a pointer that will hold the address of the allocated block. destMax Maximum size of the target string. src String to copy.
- Returns:
- The number of characters in the target string.
Copy characters from a string.
- Description:
- Safe replacement for strncpy. Copy bytes from a string and ensure the target string is not overflowed. The call returns the length of the resultant string or an error code if it will not fit into the target string. This is similar to strcpy, but it will enforce a maximum size for the copied string and will ensure it is terminated with a null.
- Parameters:
-
dest Pointer to a pointer that will hold the address of the allocated block. destMax Maximum size of the target string. src String to copy. count Maximum count of characters to copy.
- Returns:
- The number of characters in the target string.
Return the length of a string.
- Description:
- Safe replacement for strlen. This call returns the length of a string and tests if the length is less than a given maximum.
- Parameters:
-
src String to measure. max Maximum length for the string.
- Returns:
- The length of the string or MPR_ERR_WONT_FIT if the length is greater than max.
Convert a string to lower case.
- Description:
- Convert a string to its lower case equivalent.
- Parameters:
-
str String to convert.
- Returns:
- Returns a pointer to the converted string. Will always equal str.
Find a substring.
- Description:
- Locate the first occurrence of pattern in a string, but do not search more than the given length.
- Parameters:
-
str Pointer to the string to search. pattern String pattern to search for. len Count of characters in the pattern to actually search for.
- Returns:
- The number of characters in the target string.
Tokenize a string.
- Description:
- Split a string into tokens.
- Parameters:
-
str String to tokenize. delim String of characters to use as token separators. last Last token pointer.
- Returns:
- Returns a pointer to the next token.
Trim a string.
- Description:
- Trim leading and trailing characters off a string.
- Parameters:
-
str String to trim. set String of characters to remove.
- Returns:
- Returns a pointer to the trimmed string. May not equal str. If str was dynamically allocated, do not call mprFree on the returned trimmed pointer. You must use str when calling mprFree.
Convert a string to upper case.
- Description:
- Convert a string to its upper case equivalent.
- Parameters:
-
str String to convert.
- Returns:
- Returns a pointer to the converted string. Will always equal str.
Allocate a buffer of sufficient length to hold the formatted string.
- Description:
- This call will dynamically allocate a buffer up to the specified maximum size and will format the supplied arguments into the buffer. A trailing null will always be appended. The call returns the size of the allocated string excluding the null.
- Parameters:
-
ctx Any memory context allocated by the MPR. maxSize Maximum size to allocate for the buffer including the trailing null. fmt Printf style format string. arg Varargs argument obtained from va_start.
- Returns:
- The number of characters in the string.
Format a string into a statically allocated buffer.
- Description:
- This call format a string using printf style formatting arguments. A trailing null will always be appended. The call returns the size of the allocated string excluding the null.
- Parameters:
-
buf Pointer to the buffer. maxSize Size of the buffer. fmt Printf style format string. args Varargs argument obtained from va_start.
- Returns:
- The buffer;.
Typedefs
Module start/stop point function signature.
- Parameters:
-
mp Module object reference returned from mprCreateModule.
- Returns:
- Zero if successful, otherwise return a negative MPR error code.
Socket connection acceptance callback procedure.
Socket I/O callback procedure.
Buffer refill callback function.
- Description:
- Function to call when the buffer is depleted and needs more data.
- Parameters:
-
buf Instance of an MprBuf. arg Data argument supplied to mprSetBufRefillProc.
- Returns:
- The callback should return 0 if successful, otherwise a negative error code.
- See Also:
- MprBuf, mprAdjustBufEnd, mprAdjustBufStart, mprCreateBuf, mprFlushBuf, mprFree, mprGetBlockFromBuf, mprGetBufEnd, mprGetBufLength, mprGetBufOrigin, mprGetBufRefillProc, mprGetBufSize, mprGetBufSpace, mprGetCharFromBuf, mprGrowBuf, mprInsertCharToBuf, mprLookAtLastCharInBuf, mprLookAtNextCharInBuf, mprPutBlockToBuf, mprPutCharToBuf, mprPutFmtToBuf, mprPutIntToBuf, mprPutStringToBuf, mprRefillBuf, mprResetBufIfEmpty, mprSetBufMax, mprSetBufRefillProc, mprSetBufSize, mprStealBuf
Mpr time structure.
- Description:
- MprTime is the cross platform time abstraction structure. Time is stored as milliseconds since the epoch: 00:00:00 UTC Jan 1 1970. MprTime is typically a 64 bit quantity.
- See Also:
- mprAsctime, mprCtime, mprGetTime, mprLocaltime
Event callback function.
List comparison procedure for sorting.
- Description:
- Callback function signature used by mprSortList.
- Parameters:
-
arg1 First list item to compare. arg2 Second list item to compare.
- Returns:
- Return zero if the items are equal. Return -1 if the first arg is less than the second. Otherwise return 1.
Log handler callback type.
- Description:
- Callback prototype for the log handler. Used by mprSetLogHandler to define a message logging handler to process log and error messages.
- Parameters:
-
file Source filename. Derived by using __FILE__. line Source line number. Derived by using __LINE__. flags Error flags. level Message logging level. Levels are 0-9 with zero being the most verbose. msg Message being logged.
Memory allocation error callback.
Notifiers are called if mprSetNotifier has been called on a context and a memory allocation fails. All notifiers up the parent context chain are called in order- Parameters:
-
ctx Any memory context allocated by the MPR. size Size of memory allocation request that failed. total Total memory allocations so far. granted Set to true if the request was actually granted, but the application is now exceeding its redline memory limit.
Memory context type.
- Description:
- Blocks of memory are allocated using a memory context as the parent. Any allocated memory block may serve as the memory context for subsequent memory allocations. Freeing a block via mprFree will release the allocated block and all child blocks.
Mpr memory block destructors prototype.
- Parameters:
-
ctx Any memory context allocated by the MPR.
- Returns:
- Return zero if the memory was actually freed. Return non-zero to prevent the memory being freed.
Loadable module entry point signature.
- Description:
- Loadable modules can have an entry point that is invoked automatically when a module is loaded.
- Parameters:
-
ctx Any memory context allocated by the MPR. path Actual path to the module.
- Returns:
- A new MprModule structure for the module. Return NULL if the module can't be initialized.
Memory Allocation Block Header.
- Fields:
-
Condition variable for multi-thread synchronization.
- Fields:
-
pthread_cond_t cv Unix pthreads condition variable. MprMutex * mutex Thread synchronization mutex. int triggered Value of the condition.
Directory entry description.
- Description:
- The MprGetDirList will create a list of directory entries.
- Fields:
-
bool isDir True if the file is a directory. MprTime lastModified Time the file was last modified. char * name Name of the file. MprOffset size Size of the file.
File system service.
- Description:
- The MPR provides a file system abstraction to support non-disk based file access such as flash or other ROM based file systems. The MprFileSystem structure defines a virtual file system interface that will be invoked by the various MPR file routines.
- Fields:
-
MprAccessFileProc accessPath Virtual access file routine. bool caseSensitive Path comparisons are case sensitive. MprCloseFileProc closeFile Virtual close file routine. char * cygdrive Cygwin drive root. MprDeleteFileProc deletePath Virtual delete file routine. MprGetPathInfoProc getPathInfo Virtual get file information routine. bool hasDriveSpecs Paths can have drive specifications. MprMakeDirProc makeDir Virtual make directory routine. char * newline Newline for text files. MprOpenFileProc openFile Virtual open file routine. char * portSeparators Portable path separators. Typically "/\\". MprReadFileProc readFile Virtual read file routine. cchar * root Root file path. MprSeekFileProc seekFile Virtual seek file routine. char * separators Filename path separators. First separator is the preferred separator. MprSetBufferedProc setBuffered Virtual set buffered I/O routine. struct MprFile * stdError Standard error file. struct MprFile * stdInput Standard input file. struct MprFile * stdOutput Standard output file. MprWriteFileProc writeFile Virtual write file routine.
Hash table control structure.
- Fields:
-
MprHash ** buckets Hash collision bucket table. int count Number of symbols in the table. int hashSize Size of the buckets array.
Key value pairs for use with MprList or MprHash.
- Fields:
-
char * key Key string. char * value Associated value for the key.
Multithreading lock control structure.
- Description:
- MprMutex is used for multithread locking in multithreaded applications.
- Fields:
-
CRITICAL_SECTION cs Internal mutex critical section.
Path information structure.
- Description:
- MprPath is the cross platform Path information structure.
Multithreading spin lock control structure.
- Description:
- MprSpin is used for multithread locking in multithreaded applications.
- Fields:
-
CRITICAL_SECTION cs Internal mutex critical section.
Safe String Module.
- Description:
- The MPR provides a suite of safe string manipulation routines to help prevent buffer overflows and other potential security traps.
- Fields:
-
Thread local data storage.
- Fields:
-
pthread_key_t key Data key.