| 36 | * have in common with each other. |
| 37 | */ |
| 38 | template<class T> class curl_interface { |
| 39 | protected: |
| 40 | /** |
| 41 | * The default constructor will initialize the curl |
| 42 | * environment with the default flag. |
| 43 | */ |
| 44 | curl_interface(); |
| 45 | /** |
| 46 | * Overloaded constructor that initializes curl environment |
| 47 | * with user specified flag. |
| 48 | */ |
| 49 | explicit curl_interface(long); |
| 50 | /** |
| 51 | * The virtual destructor will provide an easy and clean |
| 52 | * way to deallocate resources, closing curl environment |
| 53 | * correctly. |
| 54 | */ |
| 55 | virtual ~curl_interface(); |
| 56 | |
| 57 | private: |
| 58 | /** |
| 59 | * This struct is used for initializing curl only once |
| 60 | * it is implemented as a singleton pattern |
| 61 | */ |
| 62 | struct global_initializer { |
| 63 | explicit global_initializer(long); |
| 64 | ~global_initializer(); |
| 65 | }; |
| 66 | |
| 67 | /** |
| 68 | * the singleton initialization, constructing a global_initializer. |
| 69 | */ |
| 70 | static void init(long flag); |
| 71 | }; |
| 72 | |
| 73 | // Implementation of constructor. |
| 74 | template<class T> curl_interface<T>::curl_interface() { |
nothing calls this directly
no outgoing calls
no test coverage detected