Data Structures | Defines | Functions

InkIOCoreAPI.cc File Reference

A brief file description. More...

#include "libts.h"
#include "api/ts/InkAPIPrivateIOCore.h"
#include "I_EventSystem.h"
#include "I_Net.h"
#include "I_Cache.h"
#include "I_HostDB.h"
Include dependency graph for InkIOCoreAPI.cc:

Go to the source code of this file.

Data Structures

struct  INKThreadInternal

Defines

#define sdk_assert(EX)   ( (void)((EX) ? (void)0 : _TSReleaseAssert(#EX, __FILE__, __LINE__)) )

Functions

TSReturnCode sdk_sanity_check_mutex (TSMutex mutex)
TSReturnCode sdk_sanity_check_hostlookup_structure (TSHostLookupResult data)
TSReturnCode sdk_sanity_check_iocore_structure (void *data)
TSReturnCode sdk_sanity_check_continuation (TSCont cont)
TSReturnCode sdk_sanity_check_null_ptr (void *ptr)
static void * ink_thread_trampoline (void *data)
TSThread TSThreadCreate (TSThreadFunc func, void *data)
TSThread TSThreadInit ()
void TSThreadDestroy (TSThread thread)
TSThread TSThreadSelf (void)
TSMutex TSMutexCreate ()
TSMutex TSMutexCreateInternal ()
int TSMutexCheck (TSMutex mutex)
void TSMutexLock (TSMutex mutexp)
TSReturnCode TSMutexLockTry (TSMutex mutexp)
void TSMutexUnlock (TSMutex mutexp)
void TSVIOReenable (TSVIO viop)
TSIOBuffer TSVIOBufferGet (TSVIO viop)
TSIOBufferReader TSVIOReaderGet (TSVIO viop)
int64_t TSVIONBytesGet (TSVIO viop)
void TSVIONBytesSet (TSVIO viop, int64_t nbytes)
int64_t TSVIONDoneGet (TSVIO viop)
void TSVIONDoneSet (TSVIO viop, int64_t ndone)
int64_t TSVIONTodoGet (TSVIO viop)
TSCont TSVIOContGet (TSVIO viop)
TSVConn TSVIOVConnGet (TSVIO viop)
TSMutex TSVIOMutexGet (TSVIO viop)
ink_hrtime INKBasedTimeGet ()
TSAction INKUDPBind (TSCont contp, unsigned int ip, int port)
TSAction INKUDPSendTo (TSCont contp, INKUDPConn udp, unsigned int ip, int port, char *data, int64_t len)
TSAction INKUDPRecvFrom (TSCont contp, INKUDPConn udp)
int INKUDPConnFdGet (INKUDPConn udp)
INKUDPPacket INKUDPPacketCreate ()
TSIOBufferBlock INKUDPPacketBufferBlockGet (INKUDPPacket packet)
unsigned int INKUDPPacketFromAddressGet (INKUDPPacket packet)
int INKUDPPacketFromPortGet (INKUDPPacket packet)
INKUDPConn INKUDPPacketConnGet (INKUDPPacket packet)
void INKUDPPacketDestroy (INKUDPPacket packet)
INKUDPPacket INKUDPPacketGet (INKUDPacketQueue queuep)
TSIOBuffer TSIOBufferCreate ()
TSIOBuffer TSIOBufferSizedCreate (TSIOBufferSizeIndex index)
 Creates a new TSIOBuffer of the specified size.
void TSIOBufferDestroy (TSIOBuffer bufp)
TSIOBufferBlock TSIOBufferStart (TSIOBuffer bufp)
int64_t TSIOBufferCopy (TSIOBuffer bufp, TSIOBufferReader readerp, int64_t length, int64_t offset)
int64_t TSIOBufferWrite (TSIOBuffer bufp, const void *buf, int64_t length)
 Writes length bytes of data contained in the string buf to the TSIOBuffer bufp.
void TSIOBufferReaderCopy (TSIOBufferReader readerp, const void *buf, int64_t length)
void TSIOBufferProduce (TSIOBuffer bufp, int64_t nbytes)
void TSIOBufferBlockDestroy (TSIOBufferBlock blockp)
TSIOBufferBlock TSIOBufferBlockNext (TSIOBufferBlock blockp)
int64_t TSIOBufferBlockDataSizeGet (TSIOBufferBlock blockp)
const char * TSIOBufferBlockReadStart (TSIOBufferBlock blockp, TSIOBufferReader readerp, int64_t *avail)
int64_t TSIOBufferBlockReadAvail (TSIOBufferBlock blockp, TSIOBufferReader readerp)
char * TSIOBufferBlockWriteStart (TSIOBufferBlock blockp, int64_t *avail)
int64_t TSIOBufferBlockWriteAvail (TSIOBufferBlock blockp)
int64_t TSIOBufferWaterMarkGet (TSIOBuffer bufp)
 The watermark of an TSIOBuffer is the minimum number of bytes of data that have to be in the buffer before calling back any continuation that has initiated a read operation on this buffer.
void TSIOBufferWaterMarkSet (TSIOBuffer bufp, int64_t water_mark)
 The watermark of an TSIOBuffer is the minimum number of bytes of data that have to be in the buffer before calling back any continuation that has initiated a read operation on this buffer.
TSIOBufferReader TSIOBufferReaderAlloc (TSIOBuffer bufp)
TSIOBufferReader TSIOBufferReaderClone (TSIOBufferReader readerp)
void TSIOBufferReaderFree (TSIOBufferReader readerp)
TSIOBufferBlock TSIOBufferReaderStart (TSIOBufferReader readerp)
void TSIOBufferReaderConsume (TSIOBufferReader readerp, int64_t nbytes)
int64_t TSIOBufferReaderAvail (TSIOBufferReader readerp)

Detailed Description

A brief file description.

License

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file InkIOCoreAPI.cc.


Define Documentation

#define sdk_assert (   EX  )     ( (void)((EX) ? (void)0 : _TSReleaseAssert(#EX, __FILE__, __LINE__)) )

Function Documentation

static void* ink_thread_trampoline ( void *  data  )  [static]

Definition at line 107 of file InkIOCoreAPI.cc.

References INKThreadInternal::data, INKThreadInternal::func, and Thread::set_specific().

Referenced by TSThreadCreate().

ink_hrtime INKBasedTimeGet (  ) 

Definition at line 348 of file InkIOCoreAPI.cc.

References ink_get_based_hrtime().

TSAction INKUDPBind ( TSCont  contp,
unsigned int  ip,
int  port 
)
int INKUDPConnFdGet ( INKUDPConn  udp  ) 

Definition at line 410 of file InkIOCoreAPI.cc.

References UDPConnection::getFd().

TSIOBufferBlock INKUDPPacketBufferBlockGet ( INKUDPPacket  packet  ) 
INKUDPConn INKUDPPacketConnGet ( INKUDPPacket  packet  ) 
INKUDPPacket INKUDPPacketCreate (  ) 

Definition at line 418 of file InkIOCoreAPI.cc.

References new_UDPPacket().

void INKUDPPacketDestroy ( INKUDPPacket  packet  ) 
unsigned int INKUDPPacketFromAddressGet ( INKUDPPacket  packet  ) 
int INKUDPPacketFromPortGet ( INKUDPPacket  packet  ) 
INKUDPPacket INKUDPPacketGet ( INKUDPacketQueue  queuep  ) 

Definition at line 472 of file InkIOCoreAPI.cc.

References Queue< C, L >::pop().

Referenced by handle_callbacks(), and UDPClient_handle_callbacks().

TSAction INKUDPRecvFrom ( TSCont  contp,
INKUDPConn  udp 
)
TSAction INKUDPSendTo ( TSCont  contp,
INKUDPConn  udp,
unsigned int  ip,
int  port,
char *  data,
int64_t  len 
)
TSReturnCode sdk_sanity_check_continuation ( TSCont  cont  ) 
TSReturnCode sdk_sanity_check_hostlookup_structure ( TSHostLookupResult  data  ) 

Definition at line 69 of file InkIOCoreAPI.cc.

Referenced by TSHostLookupResultAddrGet().

TSReturnCode sdk_sanity_check_iocore_structure ( void *  data  ) 

Definition at line 78 of file InkIOCoreAPI.cc.

Referenced by TSAIORead(), TSAIOWrite(), TSCacheKeyDigestSet(), TSCacheRead(), TSCacheRemove(), TSCacheScan(), TSCacheWrite(), TSContDataGet(), TSContDataSet(), TSContDestroy(), TSContMutexGet(), TSContSchedule(), TSContScheduleEvery(), TSHttpHdrPrint(), TSHttpSchedule(), TSIOBufferBlockDataSizeGet(), TSIOBufferBlockDestroy(), TSIOBufferBlockNext(), TSIOBufferBlockReadAvail(), TSIOBufferBlockReadStart(), TSIOBufferBlockWriteAvail(), TSIOBufferBlockWriteStart(), TSIOBufferCopy(), TSIOBufferCreate(), TSIOBufferDestroy(), TSIOBufferProduce(), TSIOBufferReaderAlloc(), TSIOBufferReaderAvail(), TSIOBufferReaderClone(), TSIOBufferReaderConsume(), TSIOBufferReaderFree(), TSIOBufferReaderStart(), TSIOBufferSizedCreate(), TSIOBufferStart(), TSIOBufferWaterMarkGet(), TSIOBufferWaterMarkSet(), TSIOBufferWrite(), TSMgmtUpdateRegister(), TSMimeHdrPrint(), TSNetVConnLocalAddrGet(), TSNetVConnRemoteAddrGet(), TSTextLogObjectDestroy(), TSTextLogObjectFlush(), TSTextLogObjectHeaderSet(), TSTextLogObjectRollingEnabledSet(), TSTextLogObjectRollingIntervalSecSet(), TSTextLogObjectRollingOffsetHrSet(), TSTextLogObjectWrite(), TSThreadDestroy(), TSTransformOutputVConnGet(), TSUrlPrint(), TSVConnAbort(), TSVConnActiveTimeoutCancel(), TSVConnActiveTimeoutSet(), TSVConnCacheHttpInfoSet(), TSVConnCacheObjectSizeGet(), TSVConnClose(), TSVConnClosedGet(), TSVConnInactivityTimeoutCancel(), TSVConnInactivityTimeoutSet(), TSVConnRead(), TSVConnReadVIOGet(), TSVConnShutdown(), TSVConnWrite(), TSVConnWriteVIOGet(), TSVIOBufferGet(), TSVIOContGet(), TSVIOMutexGet(), TSVIONBytesGet(), TSVIONBytesSet(), TSVIONDoneGet(), TSVIONDoneSet(), TSVIONTodoGet(), TSVIOReaderGet(), TSVIOReenable(), and TSVIOVConnGet().

TSReturnCode sdk_sanity_check_mutex ( TSMutex  mutex  ) 
TSReturnCode sdk_sanity_check_null_ptr ( void *  ptr  ) 

Definition at line 647 of file InkAPI.cc.

Referenced by INKUDPPacketBufferBlockGet(), INKUDPPacketConnGet(), INKUDPPacketDestroy(), INKUDPPacketFromAddressGet(), INKUDPPacketFromPortGet(), sdk_alloc_field_handle(), TSAIOWrite(), TSBase64Decode(), TSBase64Encode(), TSCacheDataTypeReady(), TSCacheKeyHostNameSet(), TSCacheReady(), TSFetchPageRespGet(), TSFetchRespGet(), TSHostLookup(), TSHttpArgIndexLookup(), TSHttpArgIndexNameLookup(), TSHttpArgIndexReserve(), TSHttpHdrMethodGet(), TSHttpHdrMethodSet(), TSHttpHdrParseReq(), TSHttpHdrParseResp(), TSHttpHdrReasonGet(), TSHttpHdrReasonSet(), TSHttpSsnClientFdGet(), TSHttpSsnSSLConnectionGet(), TSHttpTxnCachedReqGet(), TSHttpTxnCachedRespGet(), TSHttpTxnCachedRespModifiableGet(), TSHttpTxnCacheLookupCountGet(), TSHttpTxnCacheLookupStatusGet(), TSHttpTxnClientFdGet(), TSHttpTxnClientReqGet(), TSHttpTxnClientRespGet(), TSHttpTxnConfigFind(), TSHttpTxnConfigFloatGet(), TSHttpTxnConfigIntGet(), TSHttpTxnConfigStringGet(), TSHttpTxnEffectiveUrlStringGet(), TSHttpTxnIntercept(), TSHttpTxnMilestoneGet(), TSHttpTxnParentProxySet(), TSHttpTxnPristineUrlGet(), TSHttpTxnRedirectUrlSet(), TSHttpTxnServerIntercept(), TSHttpTxnServerReqGet(), TSHttpTxnServerRespGet(), TSICPCachedReqGet(), TSICPCachedRespGet(), TSIOBufferReaderAlloc(), TSIOBufferStart(), TSIOBufferWrite(), TSMatcherExtractIPRange(), TSMatcherLineDestroy(), TSMatcherLineName(), TSMatcherLineValue(), TSMatcherParseSrcIPConfigLine(), TSMatcherReadIntoBuffer(), TSMatcherTokLine(), TSMgmtUpdateRegister(), TSMimeHdrClone(), TSMimeHdrCreate(), TSMimeHdrFieldClone(), TSMimeHdrFieldCreate(), TSMimeHdrFieldCreateNamed(), TSMimeHdrFieldFind(), TSMimeHdrFieldNameGet(), TSMimeHdrFieldNameSet(), TSMimeHdrFieldValueAppend(), TSMimeHdrFieldValueStringGet(), TSMimeHdrFieldValueStringInsert(), TSMimeHdrFieldValueStringSet(), TSMimeHdrParse(), TSPluginRegister(), TSRedirectUrlSet(), TSStatCreate(), TSStatFindName(), TSStringPercentDecode(), TSStringPercentEncode(), TSTextLogObjectCreate(), TSTextLogObjectWrite(), TSUrlClone(), TSUrlCreate(), TSUrlParse(), TSUrlStringGet(), TSVConnCreate(), and URLPartGet().

int64_t TSIOBufferBlockDataSizeGet ( TSIOBufferBlock  blockp  ) 
void TSIOBufferBlockDestroy ( TSIOBufferBlock  blockp  ) 
TSIOBufferBlock TSIOBufferBlockNext ( TSIOBufferBlock  blockp  ) 
int64_t TSIOBufferBlockReadAvail ( TSIOBufferBlock  blockp,
TSIOBufferReader  readerp 
)
const char* TSIOBufferBlockReadStart ( TSIOBufferBlock  blockp,
TSIOBufferReader  readerp,
int64_t *  avail 
)
int64_t TSIOBufferBlockWriteAvail ( TSIOBufferBlock  blockp  ) 
char* TSIOBufferBlockWriteStart ( TSIOBufferBlock  blockp,
int64_t *  avail 
)
int64_t TSIOBufferCopy ( TSIOBuffer  bufp,
TSIOBufferReader  readerp,
int64_t  length,
int64_t  offset 
)
TSIOBuffer TSIOBufferCreate ( void   ) 
void TSIOBufferDestroy ( TSIOBuffer  bufp  ) 
void TSIOBufferProduce ( TSIOBuffer  bufp,
int64_t  nbytes 
)
TSIOBufferReader TSIOBufferReaderAlloc ( TSIOBuffer  bufp  ) 
int64_t TSIOBufferReaderAvail ( TSIOBufferReader  readerp  ) 
TSIOBufferReader TSIOBufferReaderClone ( TSIOBufferReader  readerp  ) 
void TSIOBufferReaderConsume ( TSIOBufferReader  readerp,
int64_t  nbytes 
)
void TSIOBufferReaderCopy ( TSIOBufferReader  readerp,
const void *  buf,
int64_t  length 
)

Definition at line 561 of file InkIOCoreAPI.cc.

References IOBufferReader::memcpy().

Referenced by SDK_API_TSIOBufferCopy().

void TSIOBufferReaderFree ( TSIOBufferReader  readerp  ) 
TSIOBufferBlock TSIOBufferReaderStart ( TSIOBufferReader  readerp  ) 
TSIOBuffer TSIOBufferSizedCreate ( TSIOBufferSizeIndex  index  ) 

Creates a new TSIOBuffer of the specified size.

With this function, you can create smaller buffers than the 32K buffer created by TSIOBufferCreate(). In some situations using smaller buffers can improve performance.

Parameters:
index size of the new TSIOBuffer to be created.
new TSIOBuffer of the specified size.

Definition at line 499 of file InkIOCoreAPI.cc.

References new_MIOBuffer, sdk_assert, sdk_sanity_check_iocore_structure(), TS_IOBUFFER_SIZE_INDEX_128, TS_IOBUFFER_SIZE_INDEX_32K, and TS_SUCCESS.

Referenced by SDK_API_TSIOBufferCopy(), SDK_API_TSIOBufferProduce(), SDK_API_TSIOBufferReaderClone(), SDK_API_TSIOBufferReaderConsume(), and SDK_API_TSIOBufferStart().

TSIOBufferBlock TSIOBufferStart ( TSIOBuffer  bufp  ) 
int64_t TSIOBufferWaterMarkGet ( TSIOBuffer  bufp  ) 

The watermark of an TSIOBuffer is the minimum number of bytes of data that have to be in the buffer before calling back any continuation that has initiated a read operation on this buffer.

TSIOBufferWaterMarkGet() will provide the size of the watermark, in bytes, for a specified TSIOBuffer.

Parameters:
bufp buffer whose watermark the function gets.

Definition at line 677 of file InkIOCoreAPI.cc.

References sdk_assert, sdk_sanity_check_iocore_structure(), TS_SUCCESS, and MIOBuffer::water_mark.

Referenced by SDK_API_TSIOBufferCreate().

void TSIOBufferWaterMarkSet ( TSIOBuffer  bufp,
int64_t  water_mark 
)

The watermark of an TSIOBuffer is the minimum number of bytes of data that have to be in the buffer before calling back any continuation that has initiated a read operation on this buffer.

As a writer feeds data into the TSIOBuffer, no readers are called back until the amount of data reaches the watermark. Setting a watermark can improve performance because it avoids frequent callbacks to read small amounts of data. TSIOBufferWaterMarkSet() assigns a watermark to a particular TSIOBuffer.

Parameters:
bufp buffer whose water mark the function sets.
water_mark watermark setting, as a number of bytes.

Definition at line 686 of file InkIOCoreAPI.cc.

References sdk_assert, sdk_sanity_check_iocore_structure(), TS_SUCCESS, and MIOBuffer::water_mark.

Referenced by SDK_API_TSIOBufferCreate().

int64_t TSIOBufferWrite ( TSIOBuffer  bufp,
const void *  buf,
int64_t  length 
)

Writes length bytes of data contained in the string buf to the TSIOBuffer bufp.

Returns the number of bytes of data successfully written to the TSIOBuffer.

Parameters:
bufp is the TSIOBuffer to write into.
buf string to write into the TSIOBuffer.
length of the string buf.
Returns:
length of data successfully copied into the buffer, in bytes.

Definition at line 549 of file InkIOCoreAPI.cc.

References sdk_assert, sdk_sanity_check_iocore_structure(), sdk_sanity_check_null_ptr(), TS_SUCCESS, and MIOBuffer::write().

Referenced by SDK_API_TSIOBufferBlockNext(), SDK_API_TSIOBufferBlockReadAvail(), SDK_API_TSIOBufferCopy(), and spdy_send_callback().

int TSMutexCheck ( TSMutex  mutex  ) 

Definition at line 209 of file InkIOCoreAPI.cc.

References RefCountObj::m_refcount, and ProxyMutex::nthread_holding.

TSMutex TSMutexCreate ( void   ) 
TSMutex TSMutexCreateInternal ( void   ) 

Definition at line 197 of file InkIOCoreAPI.cc.

References new_ProxyMutex(), sdk_assert, sdk_sanity_check_mutex(), and TS_SUCCESS.

void TSMutexLock ( TSMutex  mutexp  ) 
TSReturnCode TSMutexLockTry ( TSMutex  mutexp  ) 
void TSMutexUnlock ( TSMutex  mutexp  ) 
TSThread TSThreadCreate ( TSThreadFunc  func,
void *  data 
)
void TSThreadDestroy ( TSThread  thread  ) 

Definition at line 160 of file InkIOCoreAPI.cc.

References sdk_assert, sdk_sanity_check_iocore_structure(), and TS_SUCCESS.

Referenced by pthread_start_func().

TSThread TSThreadInit ( void   ) 

Definition at line 143 of file InkIOCoreAPI.cc.

References Thread::set_specific().

Referenced by pthread_start_func().

TSThread TSThreadSelf ( void   ) 

Definition at line 169 of file InkIOCoreAPI.cc.

References this_ethread().

Referenced by SDK_API_TSThread(), and thread_create_handler().

TSIOBuffer TSVIOBufferGet ( TSVIO  viop  ) 
TSCont TSVIOContGet ( TSVIO  viop  ) 
TSMutex TSVIOMutexGet ( TSVIO  viop  ) 

Definition at line 337 of file InkIOCoreAPI.cc.

References VIO::mutex, sdk_assert, sdk_sanity_check_iocore_structure(), and TS_SUCCESS.

Referenced by cache_handler().

int64_t TSVIONBytesGet ( TSVIO  viop  ) 
void TSVIONBytesSet ( TSVIO  viop,
int64_t  nbytes 
)
int64_t TSVIONDoneGet ( TSVIO  viop  ) 
void TSVIONDoneSet ( TSVIO  viop,
int64_t  ndone 
)
int64_t TSVIONTodoGet ( TSVIO  viop  ) 
TSIOBufferReader TSVIOReaderGet ( TSVIO  viop  ) 
void TSVIOReenable ( TSVIO  viop  ) 
TSVConn TSVIOVConnGet ( TSVIO  viop  ) 

Definition at line 328 of file InkIOCoreAPI.cc.

References sdk_assert, sdk_sanity_check_iocore_structure(), TS_SUCCESS, and VIO::vc_server.

Referenced by cache_handler().