MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
template_instnt.cpp
1 /*
2  Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; version 2 of the License.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; see the file COPYING. If not, write to the
15  Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
16  MA 02110-1301 USA.
17 */
18 
19 
20 /* Explicit template instantiation requests
21  */
22 
23 
24 #include "runtime.hpp"
25 #include "handshake.hpp"
26 #include "yassl_int.hpp"
27 #include "crypto_wrapper.hpp"
28 #include "hmac.hpp"
29 #include "md5.hpp"
30 #include "sha.hpp"
31 #include "ripemd.hpp"
32 #include "openssl/ssl.h"
33 
34 #ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
35 
36 namespace mySTL {
37 template class list<unsigned char*>;
39 template pair<int, yaSSL::Message* (*)()>* uninit_copy<mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message* (*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message* (*)()>*);
40 template pair<int, yaSSL::HandShakeBase* (*)()>* uninit_copy<mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*>(mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*);
41 template void destroy<mySTL::pair<int, yaSSL::Message* (*)()>*>(mySTL::pair<int, yaSSL::Message* (*)()>*, mySTL::pair<int, yaSSL::Message* (*)()>*);
42 template void destroy<mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*>(mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*, mySTL::pair<int, yaSSL::HandShakeBase* (*)()>*);
43 template pair<int, yaSSL::ServerKeyBase* (*)()>* uninit_copy<mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*>(mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*);
44 template void destroy<mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*>(mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ServerKeyBase* (*)()>*);
45 template pair<int, yaSSL::ClientKeyBase* (*)()>* uninit_copy<mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*>(mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*);
46 template class list<TaoCrypt::Signer*>;
47 template class list<yaSSL::SSL_SESSION*>;
48 template class list<yaSSL::input_buffer*>;
49 template class list<yaSSL::output_buffer*>;
50 template class list<yaSSL::x509*>;
51 template class list<yaSSL::Digest*>;
52 template class list<yaSSL::BulkCipher*>;
53 template void destroy<mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*>(mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*, mySTL::pair<int, yaSSL::ClientKeyBase* (*)()>*);
61 template bool list<yaSSL::ThreadError>::erase(list<yaSSL::ThreadError>::iterator);
62 template void list<yaSSL::ThreadError>::push_back(yaSSL::ThreadError);
63 template void list<yaSSL::ThreadError>::pop_front();
64 template void list<yaSSL::ThreadError>::pop_back();
65 template list<yaSSL::ThreadError>::~list();
66 template pair<int, yaSSL::Message* (*)()>* GetArrayMemory<pair<int, yaSSL::Message* (*)()> >(size_t);
67 template void FreeArrayMemory<pair<int, yaSSL::Message* (*)()> >(pair<int, yaSSL::Message* (*)()>*);
68 template pair<int, yaSSL::HandShakeBase* (*)()>* GetArrayMemory<pair<int, yaSSL::HandShakeBase* (*)()> >(size_t);
69 template void FreeArrayMemory<pair<int, yaSSL::HandShakeBase* (*)()> >(pair<int, yaSSL::HandShakeBase* (*)()>*);
70 template pair<int, yaSSL::ServerKeyBase* (*)()>* GetArrayMemory<pair<int, yaSSL::ServerKeyBase* (*)()> >(size_t);
71 template void FreeArrayMemory<pair<int, yaSSL::ServerKeyBase* (*)()> >(pair<int, yaSSL::ServerKeyBase* (*)()>*);
72 template pair<int, yaSSL::ClientKeyBase* (*)()>* GetArrayMemory<pair<int, yaSSL::ClientKeyBase* (*)()> >(size_t);
73 template void FreeArrayMemory<pair<int, yaSSL::ClientKeyBase* (*)()> >(pair<int, yaSSL::ClientKeyBase* (*)()>*);
74 }
75 
76 namespace yaSSL {
77 template void ysDelete<SSL_CTX>(yaSSL::SSL_CTX*);
78 template void ysDelete<SSL>(yaSSL::SSL*);
79 template void ysDelete<BIGNUM>(yaSSL::BIGNUM*);
80 template void ysDelete<unsigned char>(unsigned char*);
81 template void ysDelete<DH>(yaSSL::DH*);
82 template void ysDelete<TaoCrypt::Signer>(TaoCrypt::Signer*);
83 template void ysDelete<SSL_SESSION>(yaSSL::SSL_SESSION*);
84 template void ysDelete<input_buffer>(input_buffer*);
85 template void ysDelete<output_buffer>(output_buffer*);
86 template void ysDelete<x509>(x509*);
87 template void ysDelete<Auth>(Auth*);
88 template void ysDelete<HandShakeBase>(HandShakeBase*);
89 template void ysDelete<ServerKeyBase>(ServerKeyBase*);
90 template void ysDelete<ClientKeyBase>(ClientKeyBase*);
91 template void ysDelete<SSL_METHOD>(SSL_METHOD*);
92 template void ysDelete<DiffieHellman>(DiffieHellman*);
93 template void ysDelete<BulkCipher>(BulkCipher*);
94 template void ysDelete<Digest>(Digest*);
95 template void ysDelete<X509>(X509*);
96 template void ysDelete<Message>(Message*);
97 template void ysDelete<sslFactory>(sslFactory*);
98 template void ysDelete<Sessions>(Sessions*);
99 template void ysDelete<Errors>(Errors*);
100 template void ysArrayDelete<unsigned char>(unsigned char*);
101 template void ysArrayDelete<char>(char*);
102 
103 template int min<int>(int, int);
104 template uint16 min<uint16>(uint16, uint16);
105 template unsigned int min<unsigned int>(unsigned int, unsigned int);
106 template unsigned long min<unsigned long>(unsigned long, unsigned long);
107 }
108 
109 #endif // HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
110