1 /*
2  *  Copyright (c) 2018-present, Facebook, Inc.
3  *  All rights reserved.
4  *
5  *  This source code is licensed under the BSD-style license found in the
6  *  LICENSE file in the root directory of this source tree.
7  */
8 
9 #include <fizz/protocol/Params.h>
10 
11 namespace fizz {
operator ()(const Param & param) const12 Event EventVisitor::operator()(const Param& param) const {
13   switch (param.type()) {
14     case Param::Type::ClientHello_E:
15       return ClientHello::event;
16     case Param::Type::ServerHello_E:
17       return ServerHello::event;
18     case Param::Type::EndOfEarlyData_E:
19       return EndOfEarlyData::event;
20     case Param::Type::HelloRetryRequest_E:
21       return HelloRetryRequest::event;
22     case Param::Type::EncryptedExtensions_E:
23       return EncryptedExtensions::event;
24     case Param::Type::CertificateRequest_E:
25       return CertificateRequest::event;
26     case Param::Type::CompressedCertificate_E:
27       return CompressedCertificate::event;
28     case Param::Type::CertificateMsg_E:
29       return CertificateMsg::event;
30     case Param::Type::CertificateVerify_E:
31       return CertificateVerify::event;
32     case Param::Type::Finished_E:
33       return Finished::event;
34     case Param::Type::NewSessionTicket_E:
35       return NewSessionTicket::event;
36     case Param::Type::KeyUpdate_E:
37       return KeyUpdate::event;
38     case Param::Type::Alert_E:
39       return Alert::event;
40     case Param::Type::CloseNotify_E:
41       return CloseNotify::event;
42     case Param::Type::Accept_E:
43       return Accept::event;
44     case Param::Type::Connect_E:
45       return Connect::event;
46     case Param::Type::AppData_E:
47       return AppData::event;
48     case Param::Type::AppWrite_E:
49       return AppWrite::event;
50     case Param::Type::EarlyAppWrite_E:
51       return EarlyAppWrite::event;
52     case Param::Type::WriteNewSessionTicket_E:
53       return WriteNewSessionTicket::event;
54   }
55   folly::assume_unreachable();
56 }
57 } // namespace fizz
58