1 #ifndef CONNECT___NCBI_CORE__H
2 #define CONNECT___NCBI_CORE__H
141 #define EIO_N_STATUS 8
204 typedef int (*FMT_LOCK_Handler)
270 #define MT_LOCK_Do(lk, how) ((lk) ? MT_LOCK_DoInternal((lk), (how)) : -1)
484 const void* raw_data,
588 typedef int (*FREG_Set)
717 const char* def_value
void(*)(CSeq_entry_Handle seh, IWorkbench *wb, const CSerialObject &obj) handler
static void cleanup(void)
int(* FREG_Set)(void *data, const char *section, const char *name, const char *value, EREG_Storage storage)
Registry setter callback.
ELOG_Level
Log severity level.
int MT_LOCK_DoInternal(MT_LOCK lk, EMT_Lock how)
MT_LOCK MT_LOCK_AddRef(MT_LOCK lk)
Increment internal reference count by 1, then return "lk".
EMT_Lock
Set the lock/unlock callback function and its data for MT critical section.
void(* FLOG_Handler)(void *data, const SLOG_Message *mess)
Log post callback.
const char * REG_Get(REG rg, const char *section, const char *name, char *value, size_t value_size, const char *def_value)
Copy the registry value stored in "section" under name "name" to buffer "value"; if the entry is foun...
REG REG_Delete(REG rg)
Decrement internal reference count by 1, and if it reaches 0, then call "rg->cleanup(rg->data)",...
EREG_Storage
Transient/Persistent storage.
REG REG_Create(void *data, FREG_Get get, FREG_Set set, FREG_Cleanup cleanup, MT_LOCK lock)
Create a new registry (with an internal reference count set to 1).
int(* FMT_LOCK_Handler)(void *data, EMT_Lock how)
MT locking callback (operates like a [recursive] mutex or RW-lock).
void REG_Reset(REG rg, void *data, FREG_Get get, FREG_Set set, FREG_Cleanup cleanup, int do_cleanup)
Reset the registry handle to use the new "data", "set", "get", and "cleanup".
LOG LOG_AddRef(LOG lg)
Increment internal reference count by 1, then return "lg".
void LOG_WriteInternal(LOG lg, const SLOG_Message *mess)
Write message (perhaps with raw data attached) to the log by calling "lg->handler(lg->data,...
const char * IO_StatusStr(EIO_Status status)
Get the text form of an enum status value.
LOG LOG_Create(void *data, FLOG_Handler handler, FLOG_Cleanup cleanup, MT_LOCK lock)
Create a new LOG (with an internal reference count set to 1).
struct MT_LOCK_tag * MT_LOCK
void LOG_Write(LOG lg, int code, int subcode, ELOG_Level level, const char *module, const char *func, const char *file, int line, const char *message, const void *raw_data, size_t raw_size)
Upon having filled SLOG_Message data from parameters, write a message (perhaps with raw data attached...
EIO_ReadMethod
I/O read method.
MT_LOCK MT_LOCK_Delete(MT_LOCK lk)
Decrement internal reference count by 1, and if it reaches 0, then destroy the handle,...
int(* FREG_Get)(void *data, const char *section, const char *name, char *value, size_t value_size)
Registry getter callback.
MT_LOCK MT_LOCK_Create(void *data, FMT_LOCK_Handler handler, FMT_LOCK_Cleanup cleanup)
Create a new MT lock (with an internal reference count set to 1).
EIO_WriteMethod
I/O write method.
LOG LOG_Reset(LOG lg, void *data, FLOG_Handler handler, FLOG_Cleanup cleanup)
Reset the "lg" to use the new "data", "handler" and "cleanup".
const char * LOG_LevelStr(ELOG_Level level)
Obtain verbal representation of an enum level value.
EIO_Event
I/O event (or direction).
void(* FREG_Cleanup)(void *data)
Registry cleanup callback.
REG REG_AddRef(REG rg)
Increment internal reference count by 1, then return "rg".
LOG LOG_Delete(LOG lg)
Decrement internal reference count by 1, and if it reaches 0, then call "lg->cleanup(lg->data)",...
void(* FMT_LOCK_Cleanup)(void *data)
MT lock cleanup callback.
void(* FLOG_Cleanup)(void *data)
Log cleanup callback.
int REG_Set(REG rg, const char *section, const char *name, const char *value, EREG_Storage storage)
Store the "value" into the registry section "section" under the key "name", and according to "storage...
@ eLOG_Info
In C++ Toolkit "Info" is used, not "Note".
@ eMT_Unlock
unlock critical section
@ eMT_Lock
lock critical section
@ eMT_LockRead
lock critical section for reading
@ eMT_TryLock
try to lock, return immediately
@ eMT_TryLockRead
try to lock for reading, return immediately
@ eREG_Transient
only in-memory storage while program runs
@ eREG_Persistent
hard-copy storage across program runs
@ eIO_Timeout
timeout expired before any I/O succeeded
@ eIO_Interrupt
signal arrival prevented any I/O to succeed
@ eIO_NotSupported
operation is not supported or is not available
@ eIO_Success
everything is fine, no error occurred
@ eIO_Reserved
reserved status code – DO NOT USE!
@ eIO_Unknown
unknown I/O error (likely fatal but can retry)
@ eIO_InvalidArg
bad argument / parameter value(s) supplied
@ eIO_ReadPlain
read readily available data only, wait if none
@ eIO_ReadPeek
do eIO_ReadPlain but leave data in input queue
@ eIO_ReadPersist
read exactly as much as requested, w/waits
@ eIO_WritePlain
write as much as possible, report back how much
@ eIO_WriteOutOfBand
write out-of-band chunk of urgent data (if supp)
@ eIO_WriteNone
invalid reserved opcode, not for use!
@ eIO_WritePersist
write exactly as much as specified, w/waits
@ eIO_ReadWrite
eIO_Read | eIO_Write (also, eCONN_OnFlush)
@ eIO_Open
also serves as no-event indicator in SOCK_Poll
@ eIO_Close
also serves as an error indicator in SOCK_Poll
#define NCBI_XCONNECT_EXPORT
unsigned int
A callback function used to compare two keys in a database.
Message and miscellaneous data to pass to log post callback FLOG_Handler.