Ipc Namespace Reference

Namespaces

 Mem
 

Classes

class  BaseMultiQueue
 
class  Coordinator
 Coordinates shared activities of Strands (Squid processes or threads) More...
 
class  FewToFewBiQueue
 
class  Forwarder
 
class  Inquirer
 
class  MemMap
 A map of MemMapSlots indexed by their keys, with read/write slot locking. More...
 
class  MemMapCleaner
 API for adjusting external state when dirty map slot is being freed. More...
 
class  MemMapSlot
 a MemMap basic element, holding basic shareable memory block info More...
 
class  MultiQueue
 
class  OneToOneUniQueue
 
class  OneToOneUniQueues
 shared array of OneToOneUniQueues More...
 
class  OpenListenerParams
 "shared listen" is when concurrent processes are listening on the same fd More...
 
class  Port
 Waits for and receives incoming IPC messages; kids handle the messages. More...
 
class  QuestionerId
 
class  QueueReader
 
class  QueueReaders
 shared array of QueueReaders More...
 
class  ReadWriteLock
 
class  ReadWriteLockStats
 approximate stats of a set of ReadWriteLocks More...
 
class  Request
 IPC request. More...
 
class  RequestId
 
class  Response
 A response to Ipc::Request. More...
 
class  SharedListenRequest
 a request for a listen socket with given parameters More...
 
class  SharedListenResponse
 a response to SharedListenRequest More...
 
class  StartListeningCb
 common API for all StartListening() callbacks More...
 
class  StoreMap
 
class  StoreMapAnchor
 
class  StoreMapAnchors
 
class  StoreMapCleaner
 API for adjusting external state when dirty map slice is being freed. More...
 
class  StoreMapItems
 
class  StoreMapSlice
 
class  StoreMapUpdate
 Aggregates information required for updating entry metadata and headers. More...
 
class  Strand
 Receives coordination messages on behalf of its process or thread. More...
 
class  StrandCoord
 Strand location details. More...
 
class  StrandMessage
 an IPC message carrying StrandCoord More...
 
class  StrandSearchRequest
 asynchronous strand search request More...
 
class  TypedMsgHdr
 struct msghdr with a known type, fixed-size I/O and control buffers More...
 
class  UdsOp
 
class  UdsSender
 attempts to send an IPC message a few times, with a timeout More...
 

Typedefs

typedef int32_t StoreMapSliceId
 
typedef StoreMapItems< StoreMapSliceStoreMapSlices
 StoreMapSlices indexed by their slice ID. More...
 
typedef StoreMapItems< std::atomic< sfileno > > StoreMapFileNos
 StoreMapAnchor positions, indexed by entry "name" (i.e., the entry key hash) More...
 
typedef std::vector< StrandCoordStrandCoords
 a collection of strand coordinates; the order, if any, is owner-dependent More...
 

Enumerations

enum  FdNoteId {
  fdnNone,
  fdnHttpSocket,
  fdnHttpsSocket,
  fdnFtpSocket,
  fdnInSnmpSocket,
  fdnOutSnmpSocket,
  fdnInIcpSocket,
  fdnInHtcpSocket,
  fdnEnd
}
 We cannot send char* FD notes to other processes. Pass int IDs and convert. More...
 
enum  MessageType {
  mtNone = 0,
  mtRegisterStrand,
  mtStrandRegistered,
  mtFindStrand,
  mtStrandReady,
  mtSharedListenRequest,
  mtSharedListenResponse,
  mtIpcIoNotification,
  mtCollapsedForwardingNotification,
  mtCacheMgrRequest,
  mtCacheMgrResponse,
  mtSnmpRequest,
  mtSnmpResponse,
  mtEnd
}
 message class identifier More...
 

Functions

const char * FdNote (int fdNodeId)
 converts FdNoteId into a string More...
 
QuestionerId MyQuestionerId ()
 the questioner ID of the current/calling process More...
 
template<class Answer >
const Answer & Mine (const Answer &answer)
 
std::ostream & operator<< (std::ostream &os, const QuestionerId &qid)
 
std::ostream & operator<< (std::ostream &os, const Ipc::ReadWriteLock &)
 dumps approximate lock state (for debugging) More...
 
void AssertFlagIsSet (std::atomic_flag &flag)
 
std::ostream & operator<< (std::ostream &, const RequestId &)
 
void JoinSharedListen (const OpenListenerParams &, AsyncCall::Pointer &)
 prepare and send SharedListenRequest to Coordinator More...
 
void SharedListenJoined (const SharedListenResponse &response)
 process Coordinator response to SharedListenRequest More...
 
void StartListening (int sock_type, int proto, const Comm::ConnectionPointer &listenConn, FdNoteId fdNote, AsyncCall::Pointer &callback)
 
struct sockaddr_un PathToAddress (const String &pathAddr)
 converts human-readable filename path into UDS address More...
 
void SendMessage (const String &toAddress, const TypedMsgHdr &message)
 
const Comm::ConnectionPointerImportFdIntoComm (const Comm::ConnectionPointer &conn, int socktype, int protocol, FdNoteId noteId)
 import socket fd from another strand into our Comm state More...
 

Variables

const char strandAddrLabel [] = "-kid"
 strand's listening address unique label More...
 

Detailed Description

Declarations used by various IPC messages

Typedef Documentation

◆ StoreMapFileNos

typedef StoreMapItems< std::atomic<sfileno> > Ipc::StoreMapFileNos

Definition at line 178 of file StoreMap.h.

◆ StoreMapSliceId

typedef int32_t Ipc::StoreMapSliceId

Definition at line 24 of file StoreMap.h.

◆ StoreMapSlices

Definition at line 156 of file StoreMap.h.

◆ StrandCoords

Definition at line 19 of file StrandCoords.h.

Enumeration Type Documentation

◆ FdNoteId

fd_note() label ID

Enumerator
fdnNone 
fdnHttpSocket 
fdnHttpsSocket 
fdnFtpSocket 
fdnInSnmpSocket 
fdnOutSnmpSocket 
fdnInIcpSocket 
fdnInHtcpSocket 
fdnEnd 

Definition at line 20 of file FdNotes.h.

◆ MessageType

Enumerator
mtNone 

unspecified or unknown message kind; unused on the wire

mtRegisterStrand 

notifies about our strand existence

mtStrandRegistered 

acknowledges mtRegisterStrand acceptance

mtFindStrand 

a worker requests a strand from Coordinator

mtStrandReady 

an mtFindStrand answer: the strand exists and should be usable

mtSharedListenRequest 
mtSharedListenResponse 
mtIpcIoNotification 
mtCollapsedForwardingNotification 
mtCacheMgrRequest 
mtCacheMgrResponse 
mtSnmpRequest 
mtSnmpResponse 
mtEnd 

for message kind range checks; unused on the wire

Definition at line 20 of file Messages.h.

Function Documentation

◆ AssertFlagIsSet()

void Ipc::AssertFlagIsSet ( std::atomic_flag &  flag)

Same as assert(flag is set): The process assert()s if flag is not set. Side effect: The unset flag becomes set just before we assert(). Needed because atomic_flag cannot be compared with a boolean.

Definition at line 15 of file ReadWriteLock.cc.

References assert.

Referenced by Ipc::StoreMap::abortUpdating(), Ipc::StoreMap::closeForUpdating(), and Ipc::ReadWriteLock::unlockHeaders().

◆ FdNote()

◆ ImportFdIntoComm()

◆ JoinSharedListen()

void Ipc::JoinSharedListen ( const OpenListenerParams params,
AsyncCall::Pointer cb 
)

◆ Mine()

template<class Answer >
const Answer& Ipc::Mine ( const Answer &  answer)

Convenience wrapper for rejecting (freshly parsed) stale answers. All answers are assumed to have a "QuestionerId intendedRecepient()" member.

Definition at line 56 of file QuestionerId.h.

Referenced by Ipc::Coordinator::receive(), and Ipc::Strand::receive().

◆ MyQuestionerId()

Ipc::QuestionerId Ipc::MyQuestionerId ( )

◆ operator<<() [1/3]

std::ostream & Ipc::operator<< ( std::ostream &  os,
const RequestId requestId 
)

Definition at line 22 of file RequestId.cc.

References Ipc::RequestId::index(), and Ipc::RequestId::questioner().

◆ operator<<() [2/3]

std::ostream & Ipc::operator<< ( std::ostream &  os,
const Ipc::ReadWriteLock lock 
)

◆ operator<<() [3/3]

std::ostream& Ipc::operator<< ( std::ostream &  os,
const QuestionerId qid 
)
inline

Definition at line 62 of file QuestionerId.h.

References Ipc::QuestionerId::print().

◆ PathToAddress()

struct sockaddr_un Ipc::PathToAddress ( const String pathAddr)

Definition at line 67 of file UdsOp.cc.

◆ SendMessage()

◆ SharedListenJoined()

◆ StartListening()

Variable Documentation

◆ strandAddrLabel

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors