1 #ifndef CORELIB___NCBI_TOOLKIT_IMPL__HPP 2 #define CORELIB___NCBI_TOOLKIT_IMPL__HPP 3 4 /* $Id: ncbi_toolkit_impl.hpp 309867 2011-06-28 18:43:15Z gouriano $ 5 * =========================================================================== 6 * 7 * PUBLIC DOMAIN NOTICE 8 * National Center for Biotechnology Information 9 * 10 * This software/database is a "United States Government Work" under the 11 * terms of the United States Copyright Act. It was written as part of 12 * the author's official duties as a United States Government employee and 13 * thus cannot be copyrighted. This software/database is freely available 14 * to the public for use. The National Library of Medicine and the U.S. 15 * Government have not placed any restriction on its use or reproduction. 16 * 17 * Although all reasonable efforts have been taken to ensure the accuracy 18 * and reliability of the software and data, the NLM and the U.S. 19 * Government do not and cannot warrant the performance or results that 20 * may be obtained by using this software or data. The NLM and the U.S. 21 * Government disclaim all warranties, express or implied, including 22 * warranties of performance, merchantability or fitness for any particular 23 * purpose. 24 * 25 * Please cite the author in any work or product based on this material. 26 * 27 * =========================================================================== 28 * 29 * Authors: Andrei Gourianov, Denis Vakatov 30 * 31 */ 32 33 /// @file ncbi_toolkit_impl.hpp 34 35 /** @addtogroup AppFramework 36 * 37 * @{ 38 */ 39 40 #include <string> 41 42 namespace ncbi { 43 44 45 46 // Forward declarations 47 class INcbiToolkit_LogHandler; 48 struct SDiagMessage; 49 class CNcbiApplication; 50 51 // Single/Multi-byte characters 52 #if defined(_MSC_VER) && defined(_UNICODE) 53 typedef wchar_t TNcbiToolkit_XChar; 54 #else 55 typedef char TNcbiToolkit_XChar; 56 #endif 57 58 // Export/import specifications 59 #if defined(_MSC_VER) && defined(_USRDLL) 60 # ifdef NCBI_XNCBI_EXPORTS 61 # define NCBI_TOOLKIT_EXPORT __declspec(dllexport) 62 # else 63 # define NCBI_TOOLKIT_EXPORT __declspec(dllimport) 64 # endif 65 #else 66 # define NCBI_TOOLKIT_EXPORT 67 #endif 68 69 70 71 ///////////////////////////////////////////////////////////////////////////// 72 /// Provide means of creating custom CNcbiApplication object -- to use the 73 /// latter instead of "dummy" NCBI application. 74 /// @note 75 /// It is an esoteric feature that is very rarely used. 76 77 typedef CNcbiApplication* (*FNcbiApplicationFactory)(void); 78 79 void NCBI_TOOLKIT_EXPORT NcbiToolkit_RegisterNcbiApplicationFactory 80 (FNcbiApplicationFactory f); 81 82 } /* namespace ncbi */ 83 84 85 86 #endif /* CORELIB___NCBI_TOOLKIT_IMPL__HPP */ 87