clientStream.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_SRC_CLIENTSTREAM_H
10 #define SQUID_SRC_CLIENTSTREAM_H
11 
12 #include "base/RefCount.h"
13 #include "clientStreamForward.h"
14 #include "dlink.h"
15 #include "StoreIOBuffer.h"
16 
76 {
78 
79 public:
80  clientStreamNode(CSR * aReadfunc, CSCB * aCallback, CSD * aDetach, CSS * aStatus, ClientStreamData);
82 
83  clientStreamNode *prev() const;
84  clientStreamNode *next() const;
85  void removeFromStream();
86 
88  dlink_list *head; /* sucks I know, but hey, the interface is limited */
91  CSD *detach; /* tell this node the next one downstream wants no more data */
93  ClientStreamData data; /* Context for the node */
94  StoreIOBuffer readBuffer; /* what, where and how much this node wants */
95 };
96 
98 void clientStreamInit(dlink_list *, CSR *, CSD *, CSS *, const ClientStreamData &, CSCB *, CSD *, const ClientStreamData &, StoreIOBuffer tailBuffer);
99 
102 
116 void clientStreamCallback(clientStreamNode *thisObject, ClientHttpRequest *http, HttpReply *rep, StoreIOBuffer replyBuffer);
117 
129 void clientStreamRead(clientStreamNode *thisObject, ClientHttpRequest *http, StoreIOBuffer readBuffer);
130 
141 void clientStreamDetach(clientStreamNode *thisObject, ClientHttpRequest *http);
142 
152 void clientStreamAbort(clientStreamNode *thisObject, ClientHttpRequest *http);
153 
167 
168 #endif /* SQUID_SRC_CLIENTSTREAM_H */
169 
void clientStreamAbort(clientStreamNode *thisObject, ClientHttpRequest *http)
dlink_node node
Definition: clientStream.h:87
ClientStreamData data
Definition: clientStream.h:93
#define CBDATA_CLASS(type)
Definition: cbdata.h:289
clientStream_status_t CSS(clientStreamNode *, ClientHttpRequest *)
void clientStreamDetach(clientStreamNode *thisObject, ClientHttpRequest *http)
clientStreamNode(CSR *aReadfunc, CSCB *aCallback, CSD *aDetach, CSS *aStatus, ClientStreamData)
Definition: clientStream.cc:86
dlink_list * head
Definition: clientStream.h:88
void CSD(clientStreamNode *, ClientHttpRequest *)
client stream detach
void CSR(clientStreamNode *, ClientHttpRequest *)
client stream read
void clientStreamInit(dlink_list *, CSR *, CSD *, CSS *, const ClientStreamData &, CSCB *, CSD *, const ClientStreamData &, StoreIOBuffer tailBuffer)
clientStreamNode * next() const
clientStreamNode * prev() const
clientStream_status_t clientStreamStatus(clientStreamNode *thisObject, ClientHttpRequest *http)
clientStream_status_t
Definition: enums.h:120
void clientStreamCallback(clientStreamNode *thisObject, ClientHttpRequest *http, HttpReply *rep, StoreIOBuffer replyBuffer)
StoreIOBuffer readBuffer
Definition: clientStream.h:94
void CSCB(clientStreamNode *, ClientHttpRequest *, HttpReply *, StoreIOBuffer)
client stream read callback
void clientStreamRead(clientStreamNode *thisObject, ClientHttpRequest *http, StoreIOBuffer readBuffer)
void clientStreamInsertHead(dlink_list *, CSR *, CSCB *, CSD *, CSS *, ClientStreamData)

 

Introduction

Documentation

Support

Miscellaneous