Api.h
1 /*
2  * Copyright (C) 2004-2011 Marc Boris Duerner
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * As a special exception, you may use this file as part of a free
10  * software library without restriction. Specifically, if other files
11  * instantiate templates or use macros or inline functions from this
12  * file, or you compile this file and link it with other files to
13  * produce an executable, this file does not by itself cause the
14  * resulting executable to be covered by the GNU General Public
15  * License. This exception does not however invalidate any other
16  * reasons why the executable file might be covered by the GNU Library
17  * General Public License.
18  *
19  * This library is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22  * Lesser General Public License for more details.
23  *
24  * You should have received a copy of the GNU Lesser General Public
25  * License along with this library; if not, write to the Free Software
26  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
27  */
28 
29 #if defined(_MSC_VER)
30  //http://support.microsoft.com/support/kb/articles/Q134/9/80.asp
31  //http://support.microsoft.com/support/kb/articles/Q168/9/58.ASP
32  //http://support.microsoft.com/support/kb/articles/Q172/3/96.ASP
33 
34  // deprectated stdc++ functions
35  #pragma warning( disable : 4996 )
36 
37  // dll-linkage
38  #pragma warning( disable : 4251 )
39 
40  // non dll-interface base class
41  #pragma warning( disable : 4275 )
42 
43  // exception sepcification ignored
44  #pragma warning( disable : 4290 )
45 #endif
46 
47 #if defined (__INTEL_COMPILER)
48  // field of class type without a DLL interface used in a class with a DLL interface
49  #pragma warning( disable : 1744 )
50 
51  //base class dllexport/dllimport specification differs from that of the derived class
52  #pragma warning( disable : 1738 )
53 #endif
54 
55 #if defined(WIN32) || defined(_WIN32)
56  // suppress min/max macros from win32 headers
57  #ifndef NOMINMAX
58  #define NOMINMAX
59  #endif
60 #endif
61 
62 #define PT_VERSION_MAJOR 1
63 #define PT_VERSION_MINOR 1
64 #define PT_VERSION_REVISION 1
65 
66 #if defined(_MSC_VER) || defined(WIN32) || defined(_WIN32)
67  #define PT_EXPORT __declspec(dllexport)
68  #define PT_IMPORT __declspec(dllimport)
69 #elif __GNUC__ >= 4
70  #define PT_EXPORT __attribute__((visibility("default")))
71  #define PT_IMPORT
72 #elif __SYMBIAN32__
73  #define PT_EXPORT
74  #define PT_IMPORT
75 #else
76  #define PT_EXPORT
77  #define PT_IMPORT
78 #endif
79 
80 #if defined(PT_API_EXPORT)
81  #define PT_API PT_EXPORT
82 #else
83  #define PT_API PT_IMPORT
84 #endif
85 
86 #if ! defined(__NOLOCK_ON_INPUT)
87  // disable locking of iostreams on xlC
88  #define __NOLOCK_ON_INPUT
89 #endif
90 
91 #if ! defined(__NOLOCK_ON_OUTPUT)
92  // disable locking of iostreams on xlC
93  #define __NOLOCK_ON_OUTPUT
94 #endif
95 
96 #ifndef Pt_Api_h
97 #define Pt_Api_h
98 
241 namespace Pt {
242 
243  class Allocator;
244  class Any;
245  class Connectable;
246  class Connection;
247  class Date;
248  class DateTime;
249  class Event;
250  class SerializationContext;
251  class SerializationInfo;
252  class Settings;
253  class SourceInfo;
254  class Time;
255 
256 }
257 
258 /*______ _ _ _ _____
259  | ___ \ | | | (_) / __ \ _ _
260  | |_/ / | __ _| |_ _ _ __ _ _ _ __ ___ | / \/| |_ _| |_
261  | __/| |/ _` | __| | '_ \| | | | '_ ` _ \ | | |_ _|_ _|
262  | | | | (_| | |_| | | | | |_| | | | | | | | \__/\|_| |_|
263  \_| |_|\__,_|\__|_|_| |_|\__,_|_| |_| |_| \____/
264  ______ _
265  | ___| | |
266  | |_ _ __ __ _ _ __ ___ _____ _____ _ __| | __
267  | _| '__/ _` | '_ ` _ \ / _ \ \ /\ / / _ \| '__| |/ /
268  | | | | | (_| | | | | | | __/\ V V / (_) | | | <
269  \_| |_| \__,_|_| |_| |_|\___| \_/\_/ \___/|_| |_|\_\
270 */
271 
272 #endif