cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cmnPlugin.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Peter Kazanzides
7  Created on: 2007-01-16
8 
9  (C) Copyright 2007-2007 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 */
20 
21 
41 #pragma once
42 
43 #ifndef _cmnPlugin_h
44 #define _cmnPlugin_h
45 
46 #include <typeinfo>
47 #include <cisstCommon/cmnExport.h>
48 
57 #define CMN_PLUGIN_WRAPPERS(base, derived) \
58  extern "C" CISST_EXPORT base* derived##Create() \
59  { return new derived; } \
60  extern "C" CISST_EXPORT void derived##Destroy(base* obj) \
61  { delete obj; obj = 0; } \
62  extern "C" CISST_EXPORT const std::type_info &derived##BaseType = typeid(base); \
63  extern "C" CISST_EXPORT const int derived##Version = derived::VERSION;
64 
65 
66 #endif // _cmnPlugin_h
67 
Macros to export the symbols of cisstCommon (in a Dll).