InOut.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_ICAPINOUT_H
10#define SQUID_ICAPINOUT_H
11
12#include "HttpReply.h"
13
14// IcapInOut manages a pointer to the HTTP message being worked on.
15// For HTTP responses, request header information is also available
16// as the "cause". ICAP transactions use this class to store virgin
17// and adapted HTTP messages.
18
19namespace Adaptation
20{
21namespace Icap
22{
23
24class InOut
25{
26
27public:
28 // TODO: s/Header/Message/i ?
30
31 InOut(): header(nullptr), cause(nullptr) {}
32
36 }
37
39 if (r) {
41 cause = r;
43 } else {
44 assert(!cause);
45 }
46 }
47
48 void setHeader(Header *h) {
50 header = h;
53 }
54
55public:
56 // virgin or adapted message being worked on
57 Header *header; // parsed HTTP status/request line and headers
58
59 // HTTP request header for HTTP responses (the cause of the response)
61
62 // Copy of header->body_pipe, in case somebody moves the original.
64};
65
66} // namespace Icap
67} // namespace Adaptation
68
69#endif /* SQUID_ICAPINOUT_H */
70
#define assert(EX)
Definition: assert.h:17
HttpRequest * cause
Definition: InOut.h:60
void setHeader(Header *h)
Definition: InOut.h:48
void setCause(HttpRequest *r)
Definition: InOut.h:38
Http::Message Header
Definition: InOut.h:29
BodyPipe::Pointer body_pipe
Definition: InOut.h:63
common parts of HttpRequest and HttpReply
Definition: Message.h:26
BodyPipe::Pointer body_pipe
optional pipeline to receive message body
Definition: Message.h:97
void HTTPMSGUNLOCK(M *&a)
Definition: Message.h:150
void HTTPMSGLOCK(Http::Message *a)
Definition: Message.h:161

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors