A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/ncbi__connection_8c_source.html below:

NCBI C++ ToolKit: src/connect/ncbi_connection.c Source File

40 #define NCBI_USE_ERRCODE_X Connect_Conn 43 #define CONNECTION_MAGIC 0xEFCDAB09 52 #define CONN_LOG_EX(subcode, func_name, level, message, status) \ 54  const char* ststr = ((EIO_Status) status != eIO_Success \ 55  ? IO_StatusStr((EIO_Status) status) \ 57

const char* ctype = (conn && conn->meta.get_type \

58

? conn->meta.get_type(conn->meta.c_get_type) \

60

char* descr = (conn && conn->meta.descr \

61

? conn->meta.descr(conn->meta.c_descr) \

64

if ((EIO_Status) status == eIO_Timeout && timeout) { \

65

assert(timeout != kDefaultTimeout); \

66

sprintf(stbuf, "%s[%u.%06u]", ststr, \

67

timeout->usec / 1000000 + timeout->sec, \

68

timeout->usec % 1000000); \

69

assert(strlen(stbuf) < sizeof(stbuf)); \

72

CORE_LOGF_X(subcode, level, \

73

("[CONN_" #func_name "(%s%s%s)] %s%s%s", \

74

ctype && *ctype ? ctype : "UNDEF", \

75

descr && *descr ? "; " : "", descr ? descr : "", \

77

ststr && *ststr ? ": " : "", \

78

ststr ? ststr : "")); \

83 #define CONN_LOG(s_c, f_n, lvl, msg) CONN_LOG_EX(s_c, f_n, lvl, msg, status) 86 # define CONN_CALLTRACE(func_name) \ 88  static const STimeout* timeout = 0; \ 90  sprintf(x_handle, "0x%p"

, conn); \

91

CONN_LOG_EX(0, func_name, eLOG_Trace, x_handle, 0); \

94 # define CONN_CALLTRACE(func_name) 101 #define CONN_NOT_NULL_EX(subcode, func_name, retval) \ 103  CONN_CALLTRACE(func_name); \ 105  static const STimeout* timeout = 0; \ 106  CONN_LOG_EX(subcode, func_name, eLOG_Error, \ 107  "NULL connection handle"

, retval); \

111

if (conn->magic != CONNECTION_MAGIC) { \

112

static const STimeout* timeout = 0

; \ 114  sprintf(x_errmsg, "Corrupt connection handle 0x%p"

, conn); \

115

CONN_LOG_EX(subcode, func_name, eLOG_Critical, x_errmsg, 0); \

121 #define CONN_NOT_NULL(s_c, f_n) CONN_NOT_NULL_EX(s_c, f_n, eIO_InvalidArg) 124 # define CONN_TRACE(f_n, msg) CONN_LOG(0, f_n, eLOG_Trace, msg) 126 # define CONN_TRACE(f_n, msg) 189  static const STimeout

* timeout = 0

;

191

sprintf(errmsg,

"Unknown callback #%u for 0x%p, assume corruption"

,

244  if

(!(func =

conn

->cb[idx].func))

268  if

(!

conn

->meta.flush)

272

timeout =

conn

->meta.default_timeout;

274

status =

conn

->meta.flush(

conn

->meta.c_flush, timeout);

276  conn

->w_status = status;

300

status =

conn

->meta.list

305  for

(x_conn =

conn

->meta.list; x_conn; x_conn = x_conn->

next

) {

307  if

(x_conn == connector) {

310  if

(!x_conn->

next

&& x_conn ==

conn

->meta.list)

319  if

(

conn

->meta.list) {

330  if

(

conn

->meta.close) {

333

?

conn

->meta.default_timeout

336

closed =

conn

->meta.close(

conn

->meta.c_close, timeout);

341

&& (status != eIO_Closed || connector)) {

345  "Connection failed to close properly"

);

348  "Connection failed to close properly"

);

358

memset(&

conn

->meta, 0,

sizeof

(

conn

->meta));

367

}

else if

(!connector)

370  if

(!x_conn && connector) {

390  switch

(

conn

->state) {

406  if

(

conn

->meta.open) {

416

?

conn

->meta.default_timeout

419

status =

conn

->meta.open(

conn

->meta.c_open, timeout);

469  conn

->magic = (

unsigned int

)(-1);

476  static const STimeout

* timeout = 0

;

512  return

!

conn

->meta.list || !

conn

->meta.get_type

513

? 0 :

conn

->meta.get_type(

conn

->meta.c_get_type);

522  return

!

conn

->meta.list || !

conn

->meta.descr

523

? 0 :

conn

->meta.descr(

conn

->meta.c_descr);

529  static const STimeout

* timeout = 0

;

548

sprintf(errbuf,

"Unknown direction #%u"

, (

unsigned int

) event);

570  if

(&

conn

->oo_timeout != timeout)

571  conn

->oo_timeout = *timeout;

572  conn

->o_timeout = &

conn

->oo_timeout;

574  conn

->o_timeout = timeout;

579  if

(&

conn

->rr_timeout != timeout)

580  conn

->rr_timeout = *timeout;

581  conn

->r_timeout = &

conn

->rr_timeout;

583  conn

->r_timeout = timeout;

589  if

(&

conn

->ww_timeout != timeout)

590  conn

->ww_timeout = *timeout;

591  conn

->w_timeout = &

conn

->ww_timeout;

593  conn

->w_timeout = timeout;

597  if

(&

conn

->cc_timeout != timeout)

598  conn

->cc_timeout = *timeout;

599  conn

->c_timeout = &

conn

->cc_timeout;

601  conn

->c_timeout = timeout;

604

sprintf(errbuf,

"Unknown event #%u"

, (

unsigned int

) event);

625

timeout =

conn

->o_timeout;

630  "ReadWrite timeout requested"

, 0);

633

timeout =

conn

->r_timeout;

636

timeout =

conn

->w_timeout;

639

timeout =

conn

->c_timeout;

643

sprintf(errbuf,

"Unknown event #%u"

, (

unsigned int

) event);

678

timeout =

conn

->meta.default_timeout;

681

status =

conn

->meta.wait

682

?

conn

->meta.wait(

conn

->meta.c_wait, event, timeout)

686  static const char

* kErrMsg[] = {

"Read event failed"

,

687  "Write event failed"

};

693  else if

(timeout->

sec

| timeout->

usec

)

726  for

(timeout = 0; ; timeout = 0) {

733  if

(!(writefunc =

conn

->meta.write)) {

739

?

conn

->meta.default_timeout

746  conn

->w_status = status;

749  conn

->w_pos += *n_written;

769  else if

(!timeout

|| (timeout->

sec

| timeout->

usec

))

791  size_t

x_written = 0;

793  size

- *n_written, &x_written);

794

*n_written += x_written;

798  if

(*n_written ==

size

)

889

?

conn

->meta.default_timeout

913  for

(timeout = 0; ; timeout = 0) {

931  if

(x_read && (*n_read ==

size

|| !peek)) {

935  buf

= (

char

*)

buf

+ x_read;

942  if

(!(readfunc =

conn

->meta.read)) {

953

?

conn

->meta.default_timeout

957

status = readfunc(

conn

->meta.c_read,

buf

,

size

- *n_read,

961  conn

->r_status = status;

965  conn

->r_pos += x_read;

971  "Cannot save peek data"

, 0);

988

}

else if

(

size

&& status != eIO_Closed) {

992  else if

(!timeout

|| (timeout->

sec

| timeout->

usec

))

1018  size

- *n_read, &x_read, 0

);

1023  if

(*n_read ==

size

)

1052  return

status == eIO_Closed ?

eIO_Unknown

: status;

1092  if

(!

size

|| !line)

1099  return

status == eIO_Closed ?

eIO_Unknown

: status;

1106  size_t i

,

x_size

, x_read = 0;

1107  char

* x_buf =

size

-

len

<

sizeof

(w) ? w : line +

len

;

1115  while

(

i

< x_read &&

len

<

size

) {

1116  char

c = x_buf[

i

++];

1136  static const STimeout

* timeout = 0

;

1139  "Cannot pushback extra data"

, 0);

1147

line[

len

] =

'\0'

;

1182  return conn

->r_status;

1186  return conn

->w_status;

1192  return conn

->meta.status

1193

?

conn

->meta.status(

conn

->meta.c_status, dir)

1210  return

status == eIO_Closed ?

eIO_Success

: status;

1225  static const STimeout

* timeout = 0

;

1227

sprintf(errbuf,

"Unknown callback type #%u"

, (

unsigned int

)

type

);

1234  if

(newcb || oldcb) {

1237  conn

->cb[idx] = *newcb;

1261

x_conn =

conn

->meta.list;

1266

|| ((

type

= strrchr(

type

,

'/'

)) != 0

static CS_CONNECTION * conn

int BUF_Write(BUF *pBuf, const void *data, size_t size)

int BUF_Pushback(BUF *pBuf, const void *data, size_t size)

size_t BUF_Read(BUF buf, void *data, size_t size)

size_t BUF_Peek(BUF buf, void *data, size_t size)

void BUF_Destroy(BUF buf)

unsigned int TCONN_Flags

bitwise OR of ECONN_Flag

EIO_Status CONN_SetFlags(CONN conn, TCONN_Flags flags)

Set connection processing flags.

ECONN_Callback

Set user callback function to be invoked upon an event specified by the callback type.

EIO_Status CONN_SetUserData(CONN conn, void *data)

Associate an arbitraty user data pointer with the connection.

EIO_Status CONN_ReadLine(CONN conn, char *line, size_t size, size_t *n_read)

Read up to "size" bytes from connection into a string buffer pointed to by "line".

EIO_Status CONN_CreateEx(CONNECTOR connector, TCONN_Flags flags, CONN *connection)

Create all data necessary to establish a new connection (merely bind it to the specified CONNECTOR).

EIO_Status CONN_Read(CONN conn, void *buf, size_t size, size_t *n_read, EIO_ReadMethod how)

FConnectorGetType get_type

EIO_Status CONN_Flush(CONN conn)

Explicitly flush connection from any pending data written by CONN_Write().

void * CONN_GetUserData(CONN conn)

Get current value of the user's data pointer last associated with the connection, or NULL (if CONN is...

EIO_Status CONN_SetCallback(CONN conn, ECONN_Callback type, const SCONN_Callback *newcb, SCONN_Callback *oldcb)

unsigned int TCONN_Callback

TNCBI_BigCount CONN_GetPosition(CONN conn, EIO_Event event)

Get read ("event" == eIO_Read) or write ("event" == eIO_Write) position within the connection.

EIO_Status CONN_Write(CONN conn, const void *data, size_t size, size_t *n_written, EIO_WriteMethod how)

CONNECTOR next

linked list

EIO_Status(* FConnectorRead)(CONNECTOR connector, void *buf, size_t size, size_t *n_read, const STimeout *timeout)

Read from connector.

EIO_Status CONN_SetTimeout(CONN conn, EIO_Event event, const STimeout *timeout)

Specify timeout for the connection I/O, including "Connect" (aka "Open") and "Close".

EIO_Status(* FConnectorWrite)(CONNECTOR connector, const void *buf, size_t size, size_t *n_written, const STimeout *timeout)

Write to connector.

char * CONN_Description(CONN conn)

Return a human-readable description of the connection as a character '\0'-terminated string.

EIO_Status CONN_Create(CONNECTOR connector, CONN *conn)

Same as CONN_CreateEx() called with 0 in the "flags" parameter.

EIO_Status CONN_ReInit(CONN conn, CONNECTOR connector)

Reinit using new "connector".

EIO_Status(* FCONN_Callback)(CONN conn, TCONN_Callback type, void *data)

EIO_Status CONN_Wait(CONN conn, EIO_Event event, const STimeout *timeout)

Block on the connection until it becomes available for either reading or writing (depending on "event...

EIO_Status METACONN_Remove(SMetaConnector *meta, CONNECTOR connector)

Delete given "connector" all its descendants (all connectors if "connector" is NULL) from the connect...

EIO_Status METACONN_Insert(SMetaConnector *meta, CONNECTOR connector)

Insert a connector at the beginning of the connection's list of connectors.

void * handle

data handle of the connector

SMetaConnector * meta

back link to original meta

const char * CONN_GetType(CONN conn)

Get verbal representation of connection type as a character string.

EIO_Status CONN_Close(CONN conn)

Close the connection and destroy all relevant internal data.

EIO_Status CONN_GetSOCK(CONN conn, SOCK *sock)

Get an underlying SOCK handle for connection that is implemented as a socket.

const STimeout * CONN_GetTimeout(CONN conn, EIO_Event event)

Retrieve current timeout, return NULL(kInfiniteTimeout) if it is infinite.

TCONN_Flags CONN_GetFlags(CONN conn)

Get connection processing flags currently in effect.

EIO_Status CONN_Status(CONN conn, EIO_Event dir)

Obtain status of the last I/O operation.

EIO_Status CONN_Pushback(CONN conn, const void *data, size_t size)

Push "size" bytes from the buffer "data" back into connection.

@ eCONN_OnFlush

About to be flushed (NB: == eIO_ReadWrite)

@ eCONN_OnWrite

Write to CONNECTOR is about to occur.

@ eCONN_OnTimeout

CONNECTOR I/O has timed out.

@ eCONN_OnClose

NB: CONN has been flushed prior to the call.

@ eCONN_OnRead

Read from CONNECTOR is about to occur.

@ eCONN_OnOpen

Call prior to open (NB: "conn" still closed)

@ fCONN_Untie

do not call flush method prior to reading

@ fCONN_Supplement

supplement I/O with extended return codes

void Read(CObjectIStream &in, TObjectPtr object, const CTypeRef &type)

void Write(CObjectOStream &out, TConstObjectPtr object, const CTypeRef &type)

ELOG_Level

Log severity level.

unsigned int usec

microseconds (modulo 1,000,000)

EIO_ReadMethod

I/O read method.

EIO_WriteMethod

I/O write method.

EIO_Event

I/O event (or direction).

uint64_t TNCBI_BigCount

Big unsigned integer for file size and position.

@ 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_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

unsigned int

A callback function used to compare two keys in a database.

if(yy_accept[yy_current_state])

const struct ncbi::grid::netcache::search::fields::SIZE size

int strcmp(const char *str1, const char *str2)

#define CONN_NOT_NULL(s_c, f_n)

static EIO_Status s_CONN_Read(CONN conn, void *buf, const size_t size, size_t *n_read, int peek)

static EIO_Status s_Open(CONN conn)

static EIO_Status s_CONN_WritePersist(CONN conn, const void *data, const size_t size, size_t *n_written)

static size_t x_CB2IDX(ECONN_Callback type)

static EIO_Status s_CONN_Write(CONN conn, const void *data, const size_t size, size_t *n_written)

#define CONN_LOG(s_c, f_n, lvl, msg)

static EIO_Status s_CONN_ReadPersist(CONN conn, void *buf, const size_t size, size_t *n_read)

static EIO_Status x_CatchallCallback(CONN conn, TCONN_Callback type, void *data)

#define CONN_LOG_EX(subcode, func_name, level, message, status)

#define CONN_NOT_NULL_EX(subcode, func_name, retval)

#define CONN_CALLTRACE(func_name)

#define CONN_TRACE(f_n, msg)

static EIO_Status x_Callback(CONN conn, ECONN_Callback type, unsigned int flag)

static EIO_Status x_Flush(CONN conn, const STimeout *timeout, int isflush)

static EIO_Status x_ReInit(CONN conn, CONNECTOR connector, int close)

struct SConnectionTag SConnection

static size_t x_size(const char *dst, size_t len, const char *ptr)

const char g_kNcbiSockNameAbbr[]

string ReadLine(CNcbiIstream &in)

const STimeout * c_timeout

SCONN_Callback cb[CONN_N_CALLBACKS+1]

const STimeout * o_timeout

const STimeout * w_timeout

const STimeout * r_timeout

voidp calloc(uInt items, uInt size)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4