Add QUIC_EXPORT_PRIVATE to prepare for presubmit A subsequent CL (cl/276207410) will add a presubmit to mitigate QUICHE merge issues, this CL gets our code-base to a state of compliance with that presubmit. These haven't caused issues in Chromium if they were only used in the same build unit, but it's worth it to have a consistent use across the codebase to make sure everything works in Chromium. gfe-relnote: no behavior change, QUIC_EXPORT_PRIVATE is a no-op in google3 PiperOrigin-RevId: 276276729 Change-Id: I67ab8c9df92d24d0006de7084ca563153f0bf07f
diff --git a/quic/core/chlo_extractor.h b/quic/core/chlo_extractor.h index 3cf0d24..4562d84 100644 --- a/quic/core/chlo_extractor.h +++ b/quic/core/chlo_extractor.h
@@ -12,9 +12,9 @@ // A utility for extracting QUIC Client Hello messages from packets, // without needs to spin up a full QuicSession. -class ChloExtractor { +class QUIC_EXPORT_PRIVATE ChloExtractor { public: - class Delegate { + class QUIC_EXPORT_PRIVATE Delegate { public: virtual ~Delegate() {}
diff --git a/quic/core/congestion_control/bandwidth_sampler.h b/quic/core/congestion_control/bandwidth_sampler.h index 5bbb6ba..b27e3a1 100644 --- a/quic/core/congestion_control/bandwidth_sampler.h +++ b/quic/core/congestion_control/bandwidth_sampler.h
@@ -289,7 +289,7 @@ // and the state of the connection at the moment the packet was sent, // specifically the information about the most recently acknowledged packet at // that moment. - struct ConnectionStateOnSentPacket { + struct QUIC_EXPORT_PRIVATE ConnectionStateOnSentPacket { // Time at which the packet is sent. QuicTime sent_time;
diff --git a/quic/core/congestion_control/bbr2_drain.h b/quic/core/congestion_control/bbr2_drain.h index 546962b..ccc0320 100644 --- a/quic/core/congestion_control/bbr2_drain.h +++ b/quic/core/congestion_control/bbr2_drain.h
@@ -32,7 +32,7 @@ bool IsProbingForBandwidth() const override { return false; } - struct DebugState { + struct QUIC_EXPORT_PRIVATE DebugState { QuicByteCount drain_target; };
diff --git a/quic/core/congestion_control/bbr2_probe_bw.h b/quic/core/congestion_control/bbr2_probe_bw.h index 407056b..429b6fe 100644 --- a/quic/core/congestion_control/bbr2_probe_bw.h +++ b/quic/core/congestion_control/bbr2_probe_bw.h
@@ -42,7 +42,7 @@ static const char* CyclePhaseToString(CyclePhase phase); - struct DebugState { + struct QUIC_EXPORT_PRIVATE DebugState { CyclePhase phase; QuicTime cycle_start_time = QuicTime::Zero(); QuicTime phase_start_time = QuicTime::Zero(); @@ -102,7 +102,7 @@ void RaiseInflightHighSlope(); void ProbeInflightHighUpward(const Bbr2CongestionEvent& congestion_event); - struct Cycle { + struct QUIC_EXPORT_PRIVATE Cycle { QuicTime cycle_start_time = QuicTime::Zero(); CyclePhase phase = CyclePhase::PROBE_NOT_STARTED; uint64_t rounds_in_phase = 0;
diff --git a/quic/core/congestion_control/bbr2_probe_rtt.h b/quic/core/congestion_control/bbr2_probe_rtt.h index 811c646..c112a33 100644 --- a/quic/core/congestion_control/bbr2_probe_rtt.h +++ b/quic/core/congestion_control/bbr2_probe_rtt.h
@@ -30,7 +30,7 @@ bool IsProbingForBandwidth() const override { return false; } - struct DebugState { + struct QUIC_EXPORT_PRIVATE DebugState { QuicByteCount inflight_target; QuicTime exit_time = QuicTime::Zero(); };
diff --git a/quic/core/congestion_control/bbr2_sender.h b/quic/core/congestion_control/bbr2_sender.h index 79239a2..74efc89 100644 --- a/quic/core/congestion_control/bbr2_sender.h +++ b/quic/core/congestion_control/bbr2_sender.h
@@ -97,7 +97,7 @@ return cwnd_limits().Min(); } - struct DebugState { + struct QUIC_EXPORT_PRIVATE DebugState { Bbr2Mode mode; // Shared states.
diff --git a/quic/core/congestion_control/bbr2_startup.h b/quic/core/congestion_control/bbr2_startup.h index df3f9a7..489bd55 100644 --- a/quic/core/congestion_control/bbr2_startup.h +++ b/quic/core/congestion_control/bbr2_startup.h
@@ -35,7 +35,7 @@ bool FullBandwidthReached() const { return full_bandwidth_reached_; } - struct DebugState { + struct QUIC_EXPORT_PRIVATE DebugState { bool full_bandwidth_reached; QuicBandwidth full_bandwidth_baseline = QuicBandwidth::Zero(); QuicRoundTripCount round_trips_without_bandwidth_growth;
diff --git a/quic/core/congestion_control/bbr_sender.h b/quic/core/congestion_control/bbr_sender.h index 8321b8c..b4baa2f 100644 --- a/quic/core/congestion_control/bbr_sender.h +++ b/quic/core/congestion_control/bbr_sender.h
@@ -62,7 +62,7 @@ // Debug state can be exported in order to troubleshoot potential congestion // control issues. - struct DebugState { + struct QUIC_EXPORT_PRIVATE DebugState { explicit DebugState(const BbrSender& sender); DebugState(const DebugState& state);
diff --git a/quic/core/congestion_control/windowed_filter.h b/quic/core/congestion_control/windowed_filter.h index 8729895..4176d73 100644 --- a/quic/core/congestion_control/windowed_filter.h +++ b/quic/core/congestion_control/windowed_filter.h
@@ -38,14 +38,14 @@ // Compares two values and returns true if the first is less than or equal // to the second. template <class T> -struct MinFilter { +struct QUIC_EXPORT_PRIVATE MinFilter { bool operator()(const T& lhs, const T& rhs) const { return lhs <= rhs; } }; // Compares two values and returns true if the first is greater than or equal // to the second. template <class T> -struct MaxFilter { +struct QUIC_EXPORT_PRIVATE MaxFilter { bool operator()(const T& lhs, const T& rhs) const { return lhs >= rhs; } }; @@ -63,7 +63,7 @@ // two timestamps. Has to be the type of (a - b) if both |a| and |b| are // of type TimeT. template <class T, class Compare, typename TimeT, typename TimeDeltaT> -class WindowedFilter { +class QUIC_EXPORT_PRIVATE WindowedFilter { public: // |window_length| is the period after which a best estimate expires. // |zero_value| is used as the uninitialized value for objects of T. @@ -143,7 +143,7 @@ T GetThirdBest() const { return estimates_[2].sample; } private: - struct Sample { + struct QUIC_EXPORT_PRIVATE Sample { T sample; TimeT time; Sample(T init_sample, TimeT init_time)
diff --git a/quic/core/crypto/crypto_utils.h b/quic/core/crypto/crypto_utils.h index cb02dd7..da746e3 100644 --- a/quic/core/crypto/crypto_utils.h +++ b/quic/core/crypto/crypto_utils.h
@@ -32,7 +32,7 @@ // Diversification is a utility class that's used to act like a union type. // Values can be created by calling the functions like |NoDiversification|, // below. - class Diversification { + class QUIC_EXPORT_PRIVATE Diversification { public: enum Mode { NEVER, // Key diversification will never be used. Forward secure
diff --git a/quic/core/crypto/key_exchange.h b/quic/core/crypto/key_exchange.h index c695523..127dc62 100644 --- a/quic/core/crypto/key_exchange.h +++ b/quic/core/crypto/key_exchange.h
@@ -25,7 +25,7 @@ // Callback base class for receiving the results of an async call to // CalculateSharedKeys. - class Callback { + class QUIC_EXPORT_PRIVATE Callback { public: Callback() = default; virtual ~Callback() = default;
diff --git a/quic/core/crypto/proof_source.h b/quic/core/crypto/proof_source.h index fd89098..f774efc 100644 --- a/quic/core/crypto/proof_source.h +++ b/quic/core/crypto/proof_source.h
@@ -37,13 +37,13 @@ // Details is an abstract class which acts as a container for any // implementation-specific details that a ProofSource wants to return. - class Details { + class QUIC_EXPORT_PRIVATE Details { public: virtual ~Details() {} }; // Callback base class for receiving the results of an async call to GetProof. - class Callback { + class QUIC_EXPORT_PRIVATE Callback { public: Callback() {} virtual ~Callback() {} @@ -74,7 +74,7 @@ }; // Base class for signalling the completion of a call to ComputeTlsSignature. - class SignatureCallback { + class QUIC_EXPORT_PRIVATE SignatureCallback { public: SignatureCallback() {} virtual ~SignatureCallback() = default;
diff --git a/quic/core/crypto/quic_compressed_certs_cache.h b/quic/core/crypto/quic_compressed_certs_cache.h index 2003187..586ea88 100644 --- a/quic/core/crypto/quic_compressed_certs_cache.h +++ b/quic/core/crypto/quic_compressed_certs_cache.h
@@ -52,7 +52,7 @@ // A wrapper of the tuple: // |chain, client_common_set_hashes, client_cached_cert_hashes| // to identify uncompressed representation of certs. - struct UncompressedCerts { + struct QUIC_EXPORT_PRIVATE UncompressedCerts { UncompressedCerts(); UncompressedCerts( const QuicReferenceCountedPointer<ProofSource::Chain>& chain, @@ -68,7 +68,7 @@ // Certs stored by QuicCompressedCertsCache where uncompressed certs data is // used to identify the uncompressed representation of certs and // |compressed_cert| is the cached compressed representation. - class CachedCerts { + class QUIC_EXPORT_PRIVATE CachedCerts { public: CachedCerts(); CachedCerts(const UncompressedCerts& uncompressed_certs,
diff --git a/quic/core/crypto/quic_crypto_client_config.h b/quic/core/crypto/quic_crypto_client_config.h index 838b2ee..d3e627d 100644 --- a/quic/core/crypto/quic_crypto_client_config.h +++ b/quic/core/crypto/quic_crypto_client_config.h
@@ -195,7 +195,7 @@ }; // Used to filter server ids for partial config deletion. - class ServerIdFilter { + class QUIC_EXPORT_PRIVATE ServerIdFilter { public: virtual ~ServerIdFilter() {}
diff --git a/quic/core/crypto/quic_crypto_server_config.h b/quic/core/crypto/quic_crypto_server_config.h index 3fb424d..809ebae 100644 --- a/quic/core/crypto/quic_crypto_server_config.h +++ b/quic/core/crypto/quic_crypto_server_config.h
@@ -41,7 +41,7 @@ // ClientHelloInfo contains information about a client hello message that is // only kept for as long as it's being processed. -struct ClientHelloInfo { +struct QUIC_EXPORT_PRIVATE ClientHelloInfo { ClientHelloInfo(const QuicIpAddress& in_client_ip, QuicWallTime in_now); ClientHelloInfo(const ClientHelloInfo& other); ~ClientHelloInfo(); @@ -68,7 +68,7 @@ } // namespace test // Hook that allows application code to subscribe to primary config changes. -class PrimaryConfigChangedCallback { +class QUIC_EXPORT_PRIVATE PrimaryConfigChangedCallback { public: PrimaryConfigChangedCallback(); PrimaryConfigChangedCallback(const PrimaryConfigChangedCallback&) = delete; @@ -128,7 +128,7 @@ // Callback used to receive the results of a call to // BuildServerConfigUpdateMessage. -class BuildServerConfigUpdateMessageResultCallback { +class QUIC_EXPORT_PRIVATE BuildServerConfigUpdateMessageResultCallback { public: BuildServerConfigUpdateMessageResultCallback() = default; virtual ~BuildServerConfigUpdateMessageResultCallback() {} @@ -141,7 +141,7 @@ // Object that is interested in built rejections (which include REJ, SREJ and // cheap SREJ). -class RejectionObserver { +class QUIC_EXPORT_PRIVATE RejectionObserver { public: RejectionObserver() = default; virtual ~RejectionObserver() {} @@ -511,7 +511,7 @@ QUIC_SHARED_LOCKS_REQUIRED(configs_lock_); // A snapshot of the configs associated with an in-progress handshake. - struct Configs { + struct QUIC_EXPORT_PRIVATE Configs { QuicReferenceCountedPointer<Config> requested; QuicReferenceCountedPointer<Config> primary; QuicReferenceCountedPointer<Config> fallback; @@ -552,7 +552,7 @@ // Convenience class which carries the arguments passed to // |ProcessClientHellp| along. - class ProcessClientHelloContext { + class QUIC_EXPORT_PRIVATE ProcessClientHelloContext { public: ProcessClientHelloContext( QuicReferenceCountedPointer<ValidateClientHelloResultCallback::Result>
diff --git a/quic/core/crypto/quic_hkdf.h b/quic/core/crypto/quic_hkdf.h index 09006ee..94d45bc 100644 --- a/quic/core/crypto/quic_hkdf.h +++ b/quic/core/crypto/quic_hkdf.h
@@ -15,7 +15,7 @@ // QuicHKDF implements the key derivation function specified in RFC 5869 // (using SHA-256) and outputs key material, as needed by QUIC. // See https://tools.ietf.org/html/rfc5869 for details. -class QUIC_EXPORT QuicHKDF { +class QUIC_EXPORT_PRIVATE QuicHKDF { public: // |secret|: the input shared secret (or, from RFC 5869, the IKM). // |salt|: an (optional) public salt / non-secret random value. While
diff --git a/quic/core/crypto/tls_client_connection.h b/quic/core/crypto/tls_client_connection.h index a9212ff..6660343 100644 --- a/quic/core/crypto/tls_client_connection.h +++ b/quic/core/crypto/tls_client_connection.h
@@ -15,7 +15,7 @@ public: // A TlsClientConnection::Delegate implements the client-specific methods that // are set as callbacks for an SSL object. - class Delegate { + class QUIC_EXPORT_PRIVATE Delegate { public: virtual ~Delegate() {}
diff --git a/quic/core/crypto/tls_connection.h b/quic/core/crypto/tls_connection.h index 4774ba6..fd4f64b 100644 --- a/quic/core/crypto/tls_connection.h +++ b/quic/core/crypto/tls_connection.h
@@ -26,7 +26,7 @@ public: // A TlsConnection::Delegate implements the methods that are set as callbacks // of TlsConnection. - class Delegate { + class QUIC_EXPORT_PRIVATE Delegate { public: virtual ~Delegate() {}
diff --git a/quic/core/crypto/tls_server_connection.h b/quic/core/crypto/tls_server_connection.h index 0e78d1b..96d71e2 100644 --- a/quic/core/crypto/tls_server_connection.h +++ b/quic/core/crypto/tls_server_connection.h
@@ -15,7 +15,7 @@ public: // A TlsServerConnection::Delegate implement the server-specific methods that // are set as callbacks for an SSL object. - class Delegate { + class QUIC_EXPORT_PRIVATE Delegate { public: virtual ~Delegate() {}
diff --git a/quic/core/http/http_frames.h b/quic/core/http/http_frames.h index dde8b1e..215fa56 100644 --- a/quic/core/http/http_frames.h +++ b/quic/core/http/http_frames.h
@@ -34,7 +34,7 @@ // // DATA frames (type=0x0) convey arbitrary, variable-length sequences of // octets associated with an HTTP request or response payload. -struct DataFrame { +struct QUIC_EXPORT_PRIVATE DataFrame { QuicStringPiece data; }; @@ -42,7 +42,7 @@ // // The HEADERS frame (type=0x1) is used to carry a header block, // compressed using QPACK. -struct HeadersFrame { +struct QUIC_EXPORT_PRIVATE HeadersFrame { QuicStringPiece headers; }; @@ -65,7 +65,7 @@ ROOT_OF_TREE = 3 }; -struct PriorityFrame { +struct QUIC_EXPORT_PRIVATE PriorityFrame { PriorityElementType prioritized_type = REQUEST_STREAM; PriorityElementType dependency_type = REQUEST_STREAM; bool exclusive = false; @@ -103,7 +103,7 @@ // server push prior to the push stream being created. using PushId = uint64_t; -struct CancelPushFrame { +struct QUIC_EXPORT_PRIVATE CancelPushFrame { PushId push_id; bool operator==(const CancelPushFrame& rhs) const { @@ -119,7 +119,7 @@ using SettingsMap = std::map<uint64_t, uint64_t>; -struct SettingsFrame { +struct QUIC_EXPORT_PRIVATE SettingsFrame { SettingsMap values; bool operator==(const SettingsFrame& rhs) const { @@ -148,7 +148,7 @@ // // The PUSH_PROMISE frame (type=0x05) is used to carry a request header // set from server to client, as in HTTP/2. -struct PushPromiseFrame { +struct QUIC_EXPORT_PRIVATE PushPromiseFrame { PushId push_id; QuicStringPiece headers; @@ -161,7 +161,7 @@ // // The GOAWAY frame (type=0x7) is used to initiate graceful shutdown of // a connection by a server. -struct GoAwayFrame { +struct QUIC_EXPORT_PRIVATE GoAwayFrame { QuicStreamId stream_id; bool operator==(const GoAwayFrame& rhs) const { @@ -173,7 +173,7 @@ // // The MAX_PUSH_ID frame (type=0xD) is used by clients to control the // number of server pushes that the server can initiate. -struct MaxPushIdFrame { +struct QUIC_EXPORT_PRIVATE MaxPushIdFrame { PushId push_id; bool operator==(const MaxPushIdFrame& rhs) const { @@ -186,7 +186,7 @@ // The DUPLICATE_PUSH frame (type=0xE) is used by servers to indicate // that an existing pushed resource is related to multiple client // requests. -struct DuplicatePushFrame { +struct QUIC_EXPORT_PRIVATE DuplicatePushFrame { PushId push_id; bool operator==(const DuplicatePushFrame& rhs) const {
diff --git a/quic/core/http/quic_client_promised_info.h b/quic/core/http/quic_client_promised_info.h index bf61405..9268940 100644 --- a/quic/core/http/quic_client_promised_info.h +++ b/quic/core/http/quic_client_promised_info.h
@@ -84,7 +84,7 @@ private: friend class test::QuicClientPromisedInfoPeer; - class CleanupAlarm : public QuicAlarm::Delegate { + class QUIC_EXPORT_PRIVATE CleanupAlarm : public QuicAlarm::Delegate { public: explicit CleanupAlarm(QuicClientPromisedInfo* promised) : promised_(promised) {}
diff --git a/quic/core/http/quic_spdy_client_session.h b/quic/core/http/quic_spdy_client_session.h index 3611c69..dde3e5d 100644 --- a/quic/core/http/quic_spdy_client_session.h +++ b/quic/core/http/quic_spdy_client_session.h
@@ -20,7 +20,8 @@ class QuicConnection; class QuicServerId; -class QuicSpdyClientSession : public QuicSpdyClientSessionBase { +class QUIC_EXPORT_PRIVATE QuicSpdyClientSession + : public QuicSpdyClientSessionBase { public: // Takes ownership of |connection|. Caller retains ownership of // |promised_by_url|.
diff --git a/quic/core/http/quic_spdy_client_stream.h b/quic/core/http/quic_spdy_client_stream.h index 9c94b70..2ebf8b0 100644 --- a/quic/core/http/quic_spdy_client_stream.h +++ b/quic/core/http/quic_spdy_client_stream.h
@@ -19,7 +19,7 @@ // All this does right now is send an SPDY request, and aggregate the // SPDY response. -class QuicSpdyClientStream : public QuicSpdyStream { +class QUIC_EXPORT_PRIVATE QuicSpdyClientStream : public QuicSpdyStream { public: QuicSpdyClientStream(QuicStreamId id, QuicSpdyClientSession* session,
diff --git a/quic/core/http/quic_spdy_server_stream_base.h b/quic/core/http/quic_spdy_server_stream_base.h index ad0d326..24d0f13 100644 --- a/quic/core/http/quic_spdy_server_stream_base.h +++ b/quic/core/http/quic_spdy_server_stream_base.h
@@ -9,7 +9,7 @@ namespace quic { -class QuicSpdyServerStreamBase : public QuicSpdyStream { +class QUIC_EXPORT_PRIVATE QuicSpdyServerStreamBase : public QuicSpdyStream { public: QuicSpdyServerStreamBase(QuicStreamId id, QuicSpdySession* session,
diff --git a/quic/core/http/quic_spdy_stream_body_manager.h b/quic/core/http/quic_spdy_stream_body_manager.h index 6b2dd62..1942c26 100644 --- a/quic/core/http/quic_spdy_stream_body_manager.h +++ b/quic/core/http/quic_spdy_stream_body_manager.h
@@ -77,7 +77,7 @@ // A Fragment instance represents a body fragment with a count of bytes // received afterwards but before the next body fragment that can be marked // consumed as soon as all of the body fragment is read. - struct Fragment { + struct QUIC_EXPORT_PRIVATE Fragment { // |body| must not be empty. QuicStringPiece body; // Might be zero.
diff --git a/quic/core/packet_number_indexed_queue.h b/quic/core/packet_number_indexed_queue.h index 695ff7d..83e3d88 100644 --- a/quic/core/packet_number_indexed_queue.h +++ b/quic/core/packet_number_indexed_queue.h
@@ -35,7 +35,7 @@ // Because of that, it is not a general-purpose container and should not be used // as one. template <typename T> -class PacketNumberIndexedQueue { +class QUIC_EXPORT_PRIVATE PacketNumberIndexedQueue { public: PacketNumberIndexedQueue() : number_of_present_entries_(0) {} @@ -86,7 +86,7 @@ private: // Wrapper around T used to mark whether the entry is actually in the map. - struct EntryWrapper : T { + struct QUIC_EXPORT_PRIVATE EntryWrapper : T { bool present; EntryWrapper() : present(false) {}
diff --git a/quic/core/qpack/offline/qpack_offline_decoder.h b/quic/core/qpack/offline/qpack_offline_decoder.h index c12c491..ecaebc8 100644 --- a/quic/core/qpack/offline/qpack_offline_decoder.h +++ b/quic/core/qpack/offline/qpack_offline_decoder.h
@@ -19,7 +19,8 @@ // a list of expected header lists read from another file. File format is // described at // https://github.com/quicwg/base-drafts/wiki/QPACK-Offline-Interop. -class QpackOfflineDecoder : public QpackDecoder::EncoderStreamErrorDelegate { +class QUIC_EXPORT_PRIVATE QpackOfflineDecoder + : public QpackDecoder::EncoderStreamErrorDelegate { public: QpackOfflineDecoder(); ~QpackOfflineDecoder() override = default; @@ -39,7 +40,7 @@ // Data structure to hold TestHeadersHandler and QpackProgressiveDecoder until // decoding of a header header block (and all preceding header blocks) is // complete. - struct Decoder { + struct QUIC_EXPORT_PRIVATE Decoder { std::unique_ptr<test::TestHeadersHandler> headers_handler; std::unique_ptr<QpackProgressiveDecoder> progressive_decoder; uint64_t stream_id;
diff --git a/quic/core/qpack/qpack_decoded_headers_accumulator.h b/quic/core/qpack/qpack_decoded_headers_accumulator.h index c649322..93c5621 100644 --- a/quic/core/qpack/qpack_decoded_headers_accumulator.h +++ b/quic/core/qpack/qpack_decoded_headers_accumulator.h
@@ -37,7 +37,7 @@ // Visitor interface used for blocked decoding. Exactly one visitor method // will be called if EndHeaderBlock() returned kBlocked. No visitor method // will be called if EndHeaderBlock() returned any other value. - class Visitor { + class QUIC_EXPORT_PRIVATE Visitor { public: virtual ~Visitor() = default;
diff --git a/quic/core/qpack/qpack_decoder_stream_receiver.h b/quic/core/qpack/qpack_decoder_stream_receiver.h index 6071939..396c6df 100644 --- a/quic/core/qpack/qpack_decoder_stream_receiver.h +++ b/quic/core/qpack/qpack_decoder_stream_receiver.h
@@ -23,7 +23,7 @@ public: // An interface for handling instructions decoded from the decoder stream, see // https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#rfc.section.5.3 - class Delegate { + class QUIC_EXPORT_PRIVATE Delegate { public: virtual ~Delegate() = default;
diff --git a/quic/core/qpack/qpack_encoder.h b/quic/core/qpack/qpack_encoder.h index 1ed56a8..22232e6 100644 --- a/quic/core/qpack/qpack_encoder.h +++ b/quic/core/qpack/qpack_encoder.h
@@ -95,7 +95,7 @@ // changing QpackInstructionEncoder::Encoder() to take an // InstructionWithValues struct instead of separate |instruction| and |values| // arguments. - struct InstructionWithValues { + struct QUIC_EXPORT_PRIVATE InstructionWithValues { // |instruction| is not owned. const QpackInstruction* instruction; QpackInstructionEncoder::Values values;
diff --git a/quic/core/qpack/qpack_encoder_stream_receiver.h b/quic/core/qpack/qpack_encoder_stream_receiver.h index 8da3147..b393b54 100644 --- a/quic/core/qpack/qpack_encoder_stream_receiver.h +++ b/quic/core/qpack/qpack_encoder_stream_receiver.h
@@ -22,7 +22,7 @@ public: // An interface for handling instructions decoded from the encoder stream, see // https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#rfc.section.5.2 - class Delegate { + class QUIC_EXPORT_PRIVATE Delegate { public: virtual ~Delegate() = default;
diff --git a/quic/core/qpack/qpack_header_table.h b/quic/core/qpack/qpack_header_table.h index 78d85f6..d2650e5 100644 --- a/quic/core/qpack/qpack_header_table.h +++ b/quic/core/qpack/qpack_header_table.h
@@ -40,7 +40,7 @@ enum class MatchType { kNameAndValue, kName, kNoMatch }; // Observer interface for dynamic table insertion. - class Observer { + class QUIC_EXPORT_PRIVATE Observer { public: virtual ~Observer() = default;
diff --git a/quic/core/qpack/qpack_instruction_encoder.h b/quic/core/qpack/qpack_instruction_encoder.h index 1ca52e6..4f1392a 100644 --- a/quic/core/qpack/qpack_instruction_encoder.h +++ b/quic/core/qpack/qpack_instruction_encoder.h
@@ -21,7 +21,7 @@ public: // Storage for field values to be encoded. // The encoded instruction determines which values are actually used. - struct Values { + struct QUIC_EXPORT_PRIVATE Values { bool s_bit; uint64_t varint; uint64_t varint2;
diff --git a/quic/core/qpack/qpack_test_utils.h b/quic/core/qpack/qpack_test_utils.h index 42fa383..7011e88 100644 --- a/quic/core/qpack/qpack_test_utils.h +++ b/quic/core/qpack/qpack_test_utils.h
@@ -27,7 +27,8 @@ FragmentMode fragment_mode); // Mock QpackUnidirectionalStreamSenderDelegate implementation. -class MockQpackStreamSenderDelegate : public QpackStreamSenderDelegate { +class QUIC_EXPORT_PRIVATE MockQpackStreamSenderDelegate + : public QpackStreamSenderDelegate { public: ~MockQpackStreamSenderDelegate() override = default;
diff --git a/quic/core/quic_arena_scoped_ptr.h b/quic/core/quic_arena_scoped_ptr.h index 7c20fc7..bb55752 100644 --- a/quic/core/quic_arena_scoped_ptr.h +++ b/quic/core/quic_arena_scoped_ptr.h
@@ -14,12 +14,13 @@ #include <cstdint> // for uintptr_t #include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h" +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h" namespace quic { template <typename T> -class QuicArenaScopedPtr { +class QUIC_EXPORT_PRIVATE QuicArenaScopedPtr { static_assert(QUIC_ALIGN_OF(T*) > 1, "QuicArenaScopedPtr can only store objects that are aligned to " "greater than 1 byte.");
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h index bcd9ff2..bc97119 100644 --- a/quic/core/quic_connection.h +++ b/quic/core/quic_connection.h
@@ -979,7 +979,7 @@ // addresses) of those packets which are serialized but failed to send because // socket is blocked. From unacked packet map and send algorithm's // perspective, buffered packets are treated as sent. - struct BufferedPacket { + struct QUIC_EXPORT_PRIVATE BufferedPacket { BufferedPacket(const SerializedPacket& packet, const QuicSocketAddress& self_address, const QuicSocketAddress& peer_address);
diff --git a/quic/core/quic_connection_id.h b/quic/core/quic_connection_id.h index 431cc74..25af43d 100644 --- a/quic/core/quic_connection_id.h +++ b/quic/core/quic_connection_id.h
@@ -127,7 +127,7 @@ // Note however that this property is not guaranteed across process lifetimes. // This makes QuicConnectionIdHash suitable for data structures such as hash // tables but not for sending a hash over the network. -class QuicConnectionIdHash { +class QUIC_EXPORT_PRIVATE QuicConnectionIdHash { public: size_t operator()(QuicConnectionId const& connection_id) const noexcept { return connection_id.Hash();
diff --git a/quic/core/quic_crypto_client_handshaker.h b/quic/core/quic_crypto_client_handshaker.h index d33ebfe..f880fb3 100644 --- a/quic/core/quic_crypto_client_handshaker.h +++ b/quic/core/quic_crypto_client_handshaker.h
@@ -60,7 +60,8 @@ // ProofVerifierCallbackImpl is passed as the callback method to VerifyProof. // The ProofVerifier calls this class with the result of proof verification // when verification is performed asynchronously. - class ProofVerifierCallbackImpl : public ProofVerifierCallback { + class QUIC_EXPORT_PRIVATE ProofVerifierCallbackImpl + : public ProofVerifierCallback { public: explicit ProofVerifierCallbackImpl(QuicCryptoClientHandshaker* parent); ~ProofVerifierCallbackImpl() override;
diff --git a/quic/core/quic_crypto_server_handshaker.h b/quic/core/quic_crypto_server_handshaker.h index b24e9e9..a67ea5e 100644 --- a/quic/core/quic_crypto_server_handshaker.h +++ b/quic/core/quic_crypto_server_handshaker.h
@@ -91,7 +91,8 @@ private: friend class test::QuicCryptoServerStreamPeer; - class ValidateCallback : public ValidateClientHelloResultCallback { + class QUIC_EXPORT_PRIVATE ValidateCallback + : public ValidateClientHelloResultCallback { public: explicit ValidateCallback(QuicCryptoServerHandshaker* parent); ValidateCallback(const ValidateCallback&) = delete;
diff --git a/quic/core/quic_crypto_server_stream.h b/quic/core/quic_crypto_server_stream.h index 3a7d6e7..e66e55b 100644 --- a/quic/core/quic_crypto_server_stream.h +++ b/quic/core/quic_crypto_server_stream.h
@@ -125,7 +125,7 @@ virtual size_t BufferSizeLimitForLevel(EncryptionLevel level) const = 0; }; - class Helper { + class QUIC_EXPORT_PRIVATE Helper { public: virtual ~Helper() {}
diff --git a/quic/core/quic_crypto_stream.h b/quic/core/quic_crypto_stream.h index 12a36f8..e38b3f8 100644 --- a/quic/core/quic_crypto_stream.h +++ b/quic/core/quic_crypto_stream.h
@@ -155,7 +155,7 @@ // levels. Some of the state for the single logical crypto stream is split // across encryption levels, and a CryptoSubstream is used to manage that // state for a particular encryption level. - struct CryptoSubstream { + struct QUIC_EXPORT_PRIVATE CryptoSubstream { CryptoSubstream(QuicCryptoStream* crypto_stream, EncryptionLevel); QuicStreamSequencer sequencer;
diff --git a/quic/core/quic_dispatcher.h b/quic/core/quic_dispatcher.h index abcd4f2..528d6cf 100644 --- a/quic/core/quic_dispatcher.h +++ b/quic/core/quic_dispatcher.h
@@ -34,9 +34,10 @@ class QuicConfig; class QuicCryptoServerConfig; -class QuicDispatcher : public QuicTimeWaitListManager::Visitor, - public ProcessPacketInterface, - public QuicBufferedPacketStore::VisitorInterface { +class QUIC_EXPORT_PRIVATE QuicDispatcher + : public QuicTimeWaitListManager::Visitor, + public ProcessPacketInterface, + public QuicBufferedPacketStore::VisitorInterface { public: // Ideally we'd have a linked_hash_set: the boolean is unused. typedef QuicLinkedHashMap<QuicBlockedWriterInterface*, bool> WriteBlockedList;
diff --git a/quic/core/quic_epoll_alarm_factory.h b/quic/core/quic_epoll_alarm_factory.h index fc9b45c..5c04e3d 100644 --- a/quic/core/quic_epoll_alarm_factory.h +++ b/quic/core/quic_epoll_alarm_factory.h
@@ -13,7 +13,7 @@ namespace quic { // Creates alarms that use the supplied EpollServer for timing and firing. -class QuicEpollAlarmFactory : public QuicAlarmFactory { +class QUIC_EXPORT_PRIVATE QuicEpollAlarmFactory : public QuicAlarmFactory { public: explicit QuicEpollAlarmFactory(QuicEpollServer* eps); QuicEpollAlarmFactory(const QuicEpollAlarmFactory&) = delete;
diff --git a/quic/core/quic_epoll_connection_helper.h b/quic/core/quic_epoll_connection_helper.h index 7041454..ce68cfb 100644 --- a/quic/core/quic_epoll_connection_helper.h +++ b/quic/core/quic_epoll_connection_helper.h
@@ -27,7 +27,8 @@ enum class QuicAllocator { SIMPLE, BUFFER_POOL }; -class QuicEpollConnectionHelper : public QuicConnectionHelperInterface { +class QUIC_EXPORT_PRIVATE QuicEpollConnectionHelper + : public QuicConnectionHelperInterface { public: QuicEpollConnectionHelper(QuicEpollServer* eps, QuicAllocator allocator); QuicEpollConnectionHelper(const QuicEpollConnectionHelper&) = delete;
diff --git a/quic/core/quic_error_codes.h b/quic/core/quic_error_codes.h index 9b3fab2..6008ab6 100644 --- a/quic/core/quic_error_codes.h +++ b/quic/core/quic_error_codes.h
@@ -362,7 +362,7 @@ QuicRstStreamErrorCode error); // Returns the name of the QuicErrorCode as a char* -QUIC_EXPORT const char* QuicErrorCodeToString(QuicErrorCode error); +QUIC_EXPORT_PRIVATE const char* QuicErrorCodeToString(QuicErrorCode error); // Wire values for QPACK errors. // https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#error-code-registration
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h index 65a0b3b..4e1b11e 100644 --- a/quic/core/quic_framer.h +++ b/quic/core/quic_framer.h
@@ -645,7 +645,7 @@ typedef std::map<QuicPacketNumber, uint8_t> NackRangeMap; - struct AckFrameInfo { + struct QUIC_EXPORT_PRIVATE AckFrameInfo { AckFrameInfo(); AckFrameInfo(const AckFrameInfo& other); ~AckFrameInfo();
diff --git a/quic/core/quic_interval.h b/quic/core/quic_interval.h index c860e88..272c43d 100644 --- a/quic/core/quic_interval.h +++ b/quic/core/quic_interval.h
@@ -63,17 +63,19 @@ #include <utility> #include <vector> +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" + namespace quic { template <typename T> -class QuicInterval { +class QUIC_EXPORT_PRIVATE QuicInterval { private: // Type trait for deriving the return type for QuicInterval::Length. If // operator-() is not defined for T, then the return type is void. This makes // the signature for Length compile so that the class can be used for such T, // but code that calls Length would still generate a compilation error. template <typename U> - class DiffTypeOrVoid { + class QUIC_EXPORT_PRIVATE DiffTypeOrVoid { private: template <typename V> static auto f(const V* v) -> decltype(*v - *v);
diff --git a/quic/core/quic_interval_set.h b/quic/core/quic_interval_set.h index 4722528..98ee894 100644 --- a/quic/core/quic_interval_set.h +++ b/quic/core/quic_interval_set.h
@@ -65,12 +65,12 @@ namespace quic { template <typename T> -class QuicIntervalSet { +class QUIC_EXPORT_PRIVATE QuicIntervalSet { public: typedef QuicInterval<T> value_type; private: - struct IntervalLess { + struct QUIC_EXPORT_PRIVATE IntervalLess { bool operator()(const value_type& a, const value_type& b) const; }; typedef std::set<value_type, IntervalLess> Set; @@ -320,7 +320,7 @@ private: // Simple member-wise equality, since all intervals are non-empty. - struct NonemptyIntervalEq { + struct QUIC_EXPORT_PRIVATE NonemptyIntervalEq { bool operator()(const value_type& a, const value_type& b) const { return a.min() == b.min() && a.max() == b.max(); }
diff --git a/quic/core/quic_lru_cache.h b/quic/core/quic_lru_cache.h index b8c78c6..4972f9c 100644 --- a/quic/core/quic_lru_cache.h +++ b/quic/core/quic_lru_cache.h
@@ -8,6 +8,7 @@ #include <memory> #include "net/third_party/quiche/src/quic/platform/api/quic_containers.h" +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h" #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h" @@ -18,7 +19,7 @@ // Value* returned by Lookup() can be invalid if the entry is evicted by other // threads. template <class K, class V> -class QuicLRUCache { +class QUIC_EXPORT_PRIVATE QuicLRUCache { public: explicit QuicLRUCache(size_t capacity) : capacity_(capacity) {} QuicLRUCache(const QuicLRUCache&) = delete;
diff --git a/quic/core/quic_one_block_arena.h b/quic/core/quic_one_block_arena.h index c76a70f..41842f3 100644 --- a/quic/core/quic_one_block_arena.h +++ b/quic/core/quic_one_block_arena.h
@@ -20,7 +20,7 @@ namespace quic { template <uint32_t ArenaSize> -class QuicOneBlockArena { +class QUIC_EXPORT_PRIVATE QuicOneBlockArena { static const uint32_t kMaxAlign = 8; public:
diff --git a/quic/core/quic_packet_number.h b/quic/core/quic_packet_number.h index 0cf7f15..066d49c 100644 --- a/quic/core/quic_packet_number.h +++ b/quic/core/quic_packet_number.h
@@ -85,7 +85,7 @@ uint64_t packet_number_; }; -class QuicPacketNumberHash { +class QUIC_EXPORT_PRIVATE QuicPacketNumberHash { public: uint64_t operator()(QuicPacketNumber packet_number) const noexcept { return packet_number.Hash();
diff --git a/quic/core/quic_packet_reader.h b/quic/core/quic_packet_reader.h index 1826ef3..1e644aa 100644 --- a/quic/core/quic_packet_reader.h +++ b/quic/core/quic_packet_reader.h
@@ -25,7 +25,7 @@ const int kNumPacketsPerReadMmsgCall = 16; #endif -class QuicPacketReader { +class QUIC_EXPORT_PRIVATE QuicPacketReader { public: QuicPacketReader(); QuicPacketReader(const QuicPacketReader&) = delete; @@ -70,7 +70,7 @@ // from exceeding maximum allowed frame size. // packets_ and mmsg_hdr_ are used to supply cbuf and buf to the recvmmsg // call. - struct PacketData { + struct QUIC_EXPORT_PRIVATE PacketData { iovec iov; // raw_address is used for address information provided by the recvmmsg // call on the packets.
diff --git a/quic/core/quic_packet_writer_wrapper.h b/quic/core/quic_packet_writer_wrapper.h index cc3dbc2..23a737f 100644 --- a/quic/core/quic_packet_writer_wrapper.h +++ b/quic/core/quic_packet_writer_wrapper.h
@@ -15,7 +15,7 @@ // Wraps a writer object to allow dynamically extending functionality. Use // cases: replace writer while dispatcher and connections hold on to the // wrapper; mix in monitoring; mix in mocks in unit tests. -class QuicPacketWriterWrapper : public QuicPacketWriter { +class QUIC_EXPORT_PRIVATE QuicPacketWriterWrapper : public QuicPacketWriter { public: QuicPacketWriterWrapper(); QuicPacketWriterWrapper(const QuicPacketWriterWrapper&) = delete;
diff --git a/quic/core/quic_process_packet_interface.h b/quic/core/quic_process_packet_interface.h index fc4257e..1d92a2d 100644 --- a/quic/core/quic_process_packet_interface.h +++ b/quic/core/quic_process_packet_interface.h
@@ -11,7 +11,7 @@ namespace quic { // A class to process each incoming packet. -class ProcessPacketInterface { +class QUIC_EXPORT_PRIVATE ProcessPacketInterface { public: virtual ~ProcessPacketInterface() {} virtual void ProcessPacket(const QuicSocketAddress& self_address,
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h index d221fe6..fba1e63 100644 --- a/quic/core/quic_session.h +++ b/quic/core/quic_session.h
@@ -51,7 +51,7 @@ // An interface from the session to the entity owning the session. // This lets the session notify its owner (the Dispatcher) when the connection // is closed, blocked, or added/removed from the time-wait list. - class Visitor { + class QUIC_EXPORT_PRIVATE Visitor { public: virtual ~Visitor() {}
diff --git a/quic/core/quic_stream_id_manager.h b/quic/core/quic_stream_id_manager.h index 4cb9a88..e39e14f 100644 --- a/quic/core/quic_stream_id_manager.h +++ b/quic/core/quic_stream_id_manager.h
@@ -29,7 +29,7 @@ // This class manages the stream ids for Version 99/IETF QUIC. class QUIC_EXPORT_PRIVATE QuicStreamIdManager { public: - class DelegateInterface { + class QUIC_EXPORT_PRIVATE DelegateInterface { public: virtual ~DelegateInterface() = default;
diff --git a/quic/core/quic_stream_send_buffer.h b/quic/core/quic_stream_send_buffer.h index 74e9d0d..f3b799c 100644 --- a/quic/core/quic_stream_send_buffer.h +++ b/quic/core/quic_stream_send_buffer.h
@@ -26,7 +26,7 @@ // contiguous memory space. Please note, BufferedSlice is constructed when // stream data is saved in send buffer and is removed when stream data is fully // acked. It is move-only. -struct BufferedSlice { +struct QUIC_EXPORT_PRIVATE BufferedSlice { BufferedSlice(QuicMemSlice mem_slice, QuicStreamOffset offset); BufferedSlice(BufferedSlice&& other); BufferedSlice& operator=(BufferedSlice&& other); @@ -41,7 +41,7 @@ QuicStreamOffset offset; }; -struct StreamPendingRetransmission { +struct QUIC_EXPORT_PRIVATE StreamPendingRetransmission { StreamPendingRetransmission(QuicStreamOffset offset, QuicByteCount length) : offset(offset), length(length) {}
diff --git a/quic/core/quic_stream_sequencer.h b/quic/core/quic_stream_sequencer.h index 8f8a6a0..54e0e28 100644 --- a/quic/core/quic_stream_sequencer.h +++ b/quic/core/quic_stream_sequencer.h
@@ -25,7 +25,7 @@ class QUIC_EXPORT_PRIVATE QuicStreamSequencer { public: // Interface that thie Sequencer uses to communicate with the Stream. - class StreamInterface { + class QUIC_EXPORT_PRIVATE StreamInterface { public: virtual ~StreamInterface() = default;
diff --git a/quic/core/quic_stream_sequencer_buffer.h b/quic/core/quic_stream_sequencer_buffer.h index 93b723f..406cd92 100644 --- a/quic/core/quic_stream_sequencer_buffer.h +++ b/quic/core/quic_stream_sequencer_buffer.h
@@ -85,7 +85,7 @@ static const size_t kBlockSizeBytes = 8 * 1024; // 8KB // The basic storage block used by this buffer. - struct BufferBlock { + struct QUIC_EXPORT_PRIVATE BufferBlock { char buffer[kBlockSizeBytes]; };
diff --git a/quic/core/quic_time_wait_list_manager.h b/quic/core/quic_time_wait_list_manager.h index e2a4594..74289ed 100644 --- a/quic/core/quic_time_wait_list_manager.h +++ b/quic/core/quic_time_wait_list_manager.h
@@ -35,7 +35,8 @@ // wait state. After the connection_id expires its time wait period, a new // connection/session will be created if a packet is received for this // connection_id. -class QuicTimeWaitListManager : public QuicBlockedWriterInterface { +class QUIC_EXPORT_PRIVATE QuicTimeWaitListManager + : public QuicBlockedWriterInterface { public: // Specifies what the time wait list manager should do when processing packets // of a time wait connection. @@ -49,7 +50,7 @@ DO_NOTHING, }; - class Visitor : public QuicSession::Visitor { + class QUIC_EXPORT_PRIVATE Visitor : public QuicSession::Visitor { public: // Called after the given connection is added to the time-wait list. virtual void OnConnectionAddedToTimeWaitList( @@ -159,7 +160,7 @@ QuicConnectionId connection_id) const; // Internal structure to store pending termination packets. - class QueuedPacket { + class QUIC_EXPORT_PRIVATE QueuedPacket { public: QueuedPacket(const QuicSocketAddress& self_address, const QuicSocketAddress& peer_address, @@ -229,7 +230,7 @@ // A map from a recently closed connection_id to the number of packets // received after the termination of the connection bound to the // connection_id. - struct ConnectionIdData { + struct QUIC_EXPORT_PRIVATE ConnectionIdData { ConnectionIdData(int num_packets, bool ietf_quic, QuicTime time_added,
diff --git a/quic/core/quic_trace_visitor.h b/quic/core/quic_trace_visitor.h index 124b4b6..29f9b03 100644 --- a/quic/core/quic_trace_visitor.h +++ b/quic/core/quic_trace_visitor.h
@@ -14,7 +14,7 @@ // Records a QUIC trace protocol buffer for a QuicConnection. It's the // responsibility of the user of this visitor to process or store the resulting // trace, which can be accessed via trace(). -class QuicTraceVisitor : public QuicConnectionDebugVisitor { +class QUIC_EXPORT_PRIVATE QuicTraceVisitor : public QuicConnectionDebugVisitor { public: explicit QuicTraceVisitor(const QuicConnection* connection);
diff --git a/quic/core/quic_types.h b/quic/core/quic_types.h index afd42be..efbda04 100644 --- a/quic/core/quic_types.h +++ b/quic/core/quic_types.h
@@ -476,7 +476,7 @@ PacketHeaderFormat format); // Information about a newly acknowledged packet. -struct AckedPacket { +struct QUIC_EXPORT_PRIVATE AckedPacket { AckedPacket(QuicPacketNumber packet_number, QuicPacketLength bytes_acked, QuicTime receive_timestamp) @@ -501,7 +501,7 @@ typedef std::vector<AckedPacket> AckedPacketVector; // Information about a newly lost packet. -struct LostPacket { +struct QUIC_EXPORT_PRIVATE LostPacket { LostPacket(QuicPacketNumber packet_number, QuicPacketLength bytes_lost) : packet_number(packet_number), bytes_lost(bytes_lost) {} @@ -542,7 +542,7 @@ // first element of the pair is false, it means that an IETF Application Close // should be done instead. -struct QuicErrorCodeToIetfMapping { +struct QUIC_EXPORT_PRIVATE QuicErrorCodeToIetfMapping { bool is_transport_close_; union { uint64_t application_error_code_;
diff --git a/quic/core/quic_write_blocked_list.h b/quic/core/quic_write_blocked_list.h index 7cab768..b80eca6 100644 --- a/quic/core/quic_write_blocked_list.h +++ b/quic/core/quic_write_blocked_list.h
@@ -247,9 +247,9 @@ // A StaticStreamCollection is a vector of <QuicStreamId, bool> pairs plus a // eagerly-computed number of blocked static streams. - class StaticStreamCollection { + class QUIC_EXPORT_PRIVATE StaticStreamCollection { public: - struct StreamIdBlockedPair { + struct QUIC_EXPORT_PRIVATE StreamIdBlockedPair { QuicStreamId id; bool is_blocked; };
diff --git a/quic/core/tls_client_handshaker.h b/quic/core/tls_client_handshaker.h index 4672821..52afc26 100644 --- a/quic/core/tls_client_handshaker.h +++ b/quic/core/tls_client_handshaker.h
@@ -73,7 +73,8 @@ private: // ProofVerifierCallbackImpl handles the result of an asynchronous certificate // verification operation. - class ProofVerifierCallbackImpl : public ProofVerifierCallback { + class QUIC_EXPORT_PRIVATE ProofVerifierCallbackImpl + : public ProofVerifierCallback { public: explicit ProofVerifierCallbackImpl(TlsClientHandshaker* parent); ~ProofVerifierCallbackImpl() override;
diff --git a/quic/core/tls_server_handshaker.h b/quic/core/tls_server_handshaker.h index 829aeaf..e7470be 100644 --- a/quic/core/tls_server_handshaker.h +++ b/quic/core/tls_server_handshaker.h
@@ -88,7 +88,8 @@ TlsConnection::Delegate* ConnectionDelegate() override { return this; } private: - class SignatureCallback : public ProofSource::SignatureCallback { + class QUIC_EXPORT_PRIVATE SignatureCallback + : public ProofSource::SignatureCallback { public: explicit SignatureCallback(TlsServerHandshaker* handshaker); void Run(bool ok, std::string signature) override;
diff --git a/quic/platform/api/quic_cert_utils.h b/quic/platform/api/quic_cert_utils.h index 1c660b5..8e21fcb 100644 --- a/quic/platform/api/quic_cert_utils.h +++ b/quic/platform/api/quic_cert_utils.h
@@ -5,12 +5,13 @@ #ifndef QUICHE_QUIC_PLATFORM_API_QUIC_CERT_UTILS_H_ #define QUICHE_QUIC_PLATFORM_API_QUIC_CERT_UTILS_H_ +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" #include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h" #include "net/quic/platform/impl/quic_cert_utils_impl.h" namespace quic { -class QuicCertUtils { +class QUIC_EXPORT_PRIVATE QuicCertUtils { public: static bool ExtractSubjectNameFromDERCert(QuicStringPiece cert, QuicStringPiece* subject_out) {
diff --git a/quic/platform/api/quic_endian.h b/quic/platform/api/quic_endian.h index 65edd51..56a69a9 100644 --- a/quic/platform/api/quic_endian.h +++ b/quic/platform/api/quic_endian.h
@@ -5,6 +5,7 @@ #ifndef QUICHE_QUIC_PLATFORM_API_QUIC_ENDIAN_H_ #define QUICHE_QUIC_PLATFORM_API_QUIC_ENDIAN_H_ +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" #include "net/quic/platform/impl/quic_endian_impl.h" namespace quic { @@ -17,7 +18,7 @@ // Provide utility functions that convert from/to network order (big endian) // to/from host order (can be either little or big endian depending on the // platform). -class QuicEndian { +class QUIC_EXPORT_PRIVATE QuicEndian { public: // Convert |x| from host order (can be either little or big endian depending // on the platform) to network order (big endian).
diff --git a/quic/platform/api/quic_reference_counted.h b/quic/platform/api/quic_reference_counted.h index 6ffc237..40f92d5 100644 --- a/quic/platform/api/quic_reference_counted.h +++ b/quic/platform/api/quic_reference_counted.h
@@ -51,7 +51,7 @@ // QuicReferenceCountedPointer<T> r_ptr_b = std::move(r_ptr_a); template <class T> -class QuicReferenceCountedPointer { +class QUIC_EXPORT_PRIVATE QuicReferenceCountedPointer { public: QuicReferenceCountedPointer() = default;
diff --git a/quic/platform/api/quic_test_mem_slice_vector.h b/quic/platform/api/quic_test_mem_slice_vector.h index 06be8f7..ed416b7 100644 --- a/quic/platform/api/quic_test_mem_slice_vector.h +++ b/quic/platform/api/quic_test_mem_slice_vector.h
@@ -18,7 +18,7 @@ // Tests using QuicTestMemSliceVector need to make sure the actual data buffers // outlive QuicTestMemSliceVector, and QuicTestMemSliceVector outlive the // returned QuicMemSliceSpan. -class QuicTestMemSliceVector { +class QUIC_EXPORT_PRIVATE QuicTestMemSliceVector { public: explicit QuicTestMemSliceVector(std::vector<std::pair<char*, size_t>> buffers) : impl_(std::move(buffers)) {}
diff --git a/quic/platform/api/quic_text_utils.h b/quic/platform/api/quic_text_utils.h index 1fa3c72..186368f 100644 --- a/quic/platform/api/quic_text_utils.h +++ b/quic/platform/api/quic_text_utils.h
@@ -7,13 +7,14 @@ #include <string> +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" #include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h" #include "net/quic/platform/impl/quic_text_utils_impl.h" namespace quic { // Various utilities for manipulating text. -class QuicTextUtils { +class QUIC_EXPORT_PRIVATE QuicTextUtils { public: // Returns true if |data| starts with |prefix|, case sensitively. static bool StartsWith(QuicStringPiece data, QuicStringPiece prefix) {
diff --git a/quic/platform/api/quic_thread.h b/quic/platform/api/quic_thread.h index 7032dc4..4b1e564 100644 --- a/quic/platform/api/quic_thread.h +++ b/quic/platform/api/quic_thread.h
@@ -7,12 +7,13 @@ #include <string> +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" #include "net/quic/platform/impl/quic_thread_impl.h" namespace quic { // A class representing a thread of execution in QUIC. -class QuicThread : public QuicThreadImpl { +class QUIC_EXPORT_PRIVATE QuicThread : public QuicThreadImpl { public: QuicThread(const std::string& string) : QuicThreadImpl(string) {} QuicThread(const QuicThread&) = delete;
diff --git a/quic/quic_transport/quic_transport_client_session.h b/quic/quic_transport/quic_transport_client_session.h index 8c90aae..a39f112 100644 --- a/quic/quic_transport/quic_transport_client_session.h +++ b/quic/quic_transport/quic_transport_client_session.h
@@ -26,7 +26,7 @@ namespace quic { // A client session for the QuicTransport protocol. -class QUIC_EXPORT QuicTransportClientSession +class QUIC_EXPORT_PRIVATE QuicTransportClientSession : public QuicSession, public QuicTransportSessionInterface { public: @@ -65,7 +65,7 @@ void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) override; protected: - class ClientIndication : public QuicStream { + class QUIC_EXPORT_PRIVATE ClientIndication : public QuicStream { public: using QuicStream::QuicStream;
diff --git a/quic/quic_transport/quic_transport_protocol.h b/quic/quic_transport/quic_transport_protocol.h index 307354f..47ed877 100644 --- a/quic/quic_transport/quic_transport_protocol.h +++ b/quic/quic_transport/quic_transport_protocol.h
@@ -12,17 +12,17 @@ namespace quic { // The ALPN used by QuicTransport. -QUIC_EXPORT inline const char* QuicTransportAlpn() { +QUIC_EXPORT_PRIVATE inline const char* QuicTransportAlpn() { return "wq-vvv-01"; } // The stream ID on which the client indication is sent. -QUIC_EXPORT constexpr QuicStreamId ClientIndicationStream() { +QUIC_EXPORT_PRIVATE constexpr QuicStreamId ClientIndicationStream() { return 2; } // The maximum allowed size of the client indication. -QUIC_EXPORT constexpr QuicByteCount ClientIndicationMaxSize() { +QUIC_EXPORT_PRIVATE constexpr QuicByteCount ClientIndicationMaxSize() { return 65536; }
diff --git a/quic/quic_transport/quic_transport_server_session.h b/quic/quic_transport/quic_transport_server_session.h index 7183ead..b1a9043 100644 --- a/quic/quic_transport/quic_transport_server_session.h +++ b/quic/quic_transport/quic_transport_server_session.h
@@ -16,11 +16,11 @@ namespace quic { // A server session for the QuicTransport protocol. -class QUIC_EXPORT QuicTransportServerSession +class QUIC_EXPORT_PRIVATE QuicTransportServerSession : public QuicSession, public QuicTransportSessionInterface { public: - class ServerVisitor { + class QUIC_EXPORT_PRIVATE ServerVisitor { public: virtual ~ServerVisitor() {} @@ -59,7 +59,7 @@ } protected: - class ClientIndication : public QuicStream { + class QUIC_EXPORT_PRIVATE ClientIndication : public QuicStream { public: explicit ClientIndication(QuicTransportServerSession* session); void OnDataAvailable() override; @@ -70,7 +70,7 @@ }; // Utility class for parsing the client indication. - class ClientIndicationParser { + class QUIC_EXPORT_PRIVATE ClientIndicationParser { public: ClientIndicationParser(QuicTransportServerSession* session, QuicStringPiece indication)
diff --git a/quic/quic_transport/quic_transport_session_interface.h b/quic/quic_transport/quic_transport_session_interface.h index 971fa5b..cdb3e99 100644 --- a/quic/quic_transport/quic_transport_session_interface.h +++ b/quic/quic_transport/quic_transport_session_interface.h
@@ -5,11 +5,13 @@ #ifndef QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_SESSION_INTERFACE_H_ #define QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_SESSION_INTERFACE_H_ +#include "net/third_party/quiche/src/quic/platform/api/quic_export.h" + namespace quic { // Shared interface between QuicTransportClientSession and // QuicTransportServerSession. -class QuicTransportSessionInterface { +class QUIC_EXPORT_PRIVATE QuicTransportSessionInterface { public: virtual ~QuicTransportSessionInterface() {}
diff --git a/quic/quic_transport/quic_transport_stream.h b/quic/quic_transport/quic_transport_stream.h index 3b94eab..44694db 100644 --- a/quic/quic_transport/quic_transport_stream.h +++ b/quic/quic_transport/quic_transport_stream.h
@@ -19,9 +19,9 @@ // QuicTransportStream is an extension of QuicStream that provides I/O interface // that is safe to use in the QuicTransport context. The interface ensures no // application data is processed before the client indication is processed. -class QUIC_EXPORT QuicTransportStream : public QuicStream { +class QUIC_EXPORT_PRIVATE QuicTransportStream : public QuicStream { public: - class Visitor { + class QUIC_EXPORT_PRIVATE Visitor { public: virtual ~Visitor() {} virtual void OnCanRead() = 0;