smlfuncs.h

Go to the documentation of this file.
00001 /**
00002  * \file smlfuncs.h <mi32/smlfuncs.h>
00003  * \brief List of all the install functions for SML.
00004  *
00005  * \if NODOC
00006  * $Id: smlfuncs.h_v 1.66 2004/10/11 16:32:56 vdronov Exp $
00007  *
00008  * If included without defining anything, it just defines the prototypes
00009  *
00010  * If included with
00011  *    SML_DEFINE_QUERY_DLL_FUNC_LIST
00012  *    SML_DEFINE_QUERY_FUNC_LIST
00013  *    SML_DEFINE_GEOFORMULA_FUNC_LIST
00014  *    SML_DEFINE_SML_FUNC_LIST
00015  *
00016  * $Log: smlfuncs.h_v $
00017  * Revision 1.66  2004/10/11 16:32:56  vdronov
00018  * added Triangulator class
00019  *
00020  * Revision 1.65  2004/08/13 17:45:44  dglasser
00021  * Don't change style install.
00022  *
00023  * Revision 1.64  2004/08/12 20:14:43  dglasser
00024  * Made cartoscripts installed generically.
00025  *
00026  * Revision 1.63  2004/07/26 19:29:28  dwilliss
00027  * Install new SpatRef classes
00028  *
00029  * Revision 1.62  2004/02/17 18:07:36  mju
00030  * Don't install tip functions/classes unless X or MFC as not usable.
00031  *
00032  * Revision 1.61  2004/01/30 15:15:30  dwilliss
00033  * Removed prototype for retired function
00034  *
00035  * Revision 1.60  2003/12/17 22:36:18  msmith
00036  * added sim class
00037  *
00038  * Revision 1.59  2003/09/15 13:49:56  fileserver!dwilliss
00039  * Doxygen
00040  *
00041  * Revision 1.58  2003/07/08 20:13:56  dwilliss
00042  * Added a new proto
00043  *
00044  * Revision 1.57  2002/12/09 17:25:35  dwilliss
00045  * Moved the MDISP function list to smlgre.c.  Only installed if calling
00046  * program calls SML_EnableGRE()
00047  *
00048  * Revision 1.56  2002/08/16 20:19:12  dwilliss
00049  * Added XML classes
00050  *
00051  * Revision 1.55  2002/05/14 17:01:21  mju
00052  * Don't install object conv funcs for geoformula unless X (and shouldn't need then either).
00053  *
00054  * Revision 1.54  2001/12/18 23:04:51  dwilliss
00055  * GUI control classes
00056  *
00057  * Revision 1.53  2001/10/16 14:32:33  vdronov
00058  * added SML_InstallFFTClasses
00059  *
00060  * Revision 1.52  2001/10/08 16:50:25  mju
00061  * Don't install GPS if win32-native-non-mfc.
00062  *
00063  * Revision 1.51  2001/07/06 14:21:42  mju
00064  * Add SML_InstallMapProjClass() prototype.
00065  *
00066  * Revision 1.50  2001/04/09 17:53:53  dwilliss
00067  * Added a tntdisp only function group again
00068  *
00069  * Revision 1.49  2001/04/09 16:33:39  vdronov
00070  * comment movie sml staff.
00071  *
00072  * Revision 1.48  2001/04/06 20:46:25  vdronov
00073  * *** empty log message ***
00074  *
00075  * Revision 1.47  2001/04/05 15:12:25  vdronov
00076  * added prototypes for Movie and Frame
00077  *
00078  * Revision 1.46  2001/04/04 22:25:06  vdronov
00079  * added sml movie and frame functions and classes.
00080  *
00081  * Revision 1.45  2000/12/04 16:31:30  mju
00082  * Fix genitor 'end ignore' tag.
00083  *
00084  * Revision 1.44  2000/10/25 21:04:11  dwilliss
00085  * Clean up and comment
00086  *
00087  * Revision 1.43  2000/10/25 20:53:55  dwilliss
00088  * Make it compile by itself
00089  *
00090  * Revision 1.42  2000/08/31 16:18:34  vdronov
00091  * watershed sml calsses and functions added
00092  *
00093  * Revision 1.41  2000/08/10 13:22:13  mju
00094  * Add doc comments for SML_EnableImportExport().
00095  *
00096  * Revision 1.40  2000/05/26 19:26:22  mju
00097  * Add EnableImport and remove InstallImportExport.
00098  *
00099  * \endif
00100 **/
00101 
00102 #ifndef  INC_MI32_SMLFUNCS_H
00103 #define  INC_MI32_SMLFUNCS_H
00104 
00105 struct SMLCONTEXT;
00106 
00107 //! The following typedef and prototype should really be in SML.h
00108 typedef int (*SMLFUNCINSTALLER)(SMLCONTEXT *);
00109 
00110 //! Enable import/export functions/classes in general SML contexts.
00111 //! The programmer is responsible for setting up the MIE system to add
00112 //! any desired formats, using the MieAddFormatsAll() or related functions.
00113 void SML_EnableImportExport ();
00114 
00115 //! Enable the GRE functions and classes in SML.  This should be called from
00116 //! main() of any program which will create an SML context and expects the
00117 //! GRE functions to be there.
00118 void SML_EnableGRE ();
00119 
00120 #ifndef GENERATING_DOXYGEN_OUTPUT
00121 //! Note.  Everything from here to the end of the file is stuff that
00122 //! should not be documented.  This include file should really be in
00123 //! inc/mi32p.  If we do that, the above stuff should be moved to sml.h
00124 //! and any module that installs sml functions or classes would need to
00125 //! include this file directly.  They currently include it indirectly
00126 //! through sml.h which includes it.   Failing to include this file
00127 //! the modules would still compile but their installer functions would
00128 //! end up getting C++ linkage instead of C and cause unresolved externals
00129 //! later.
00130 
00131 #ifndef  INC_MI32_SML_H
00132    #include <mi32/sml.h>
00133 #endif
00134 
00135 #if defined(__cplusplus)
00136 extern "C" {
00137 #endif
00138 
00139 #ifndef SML_FUNCLIST_PROTOS_DEFINED
00140 #define SML_FUNCLIST_PROTOS_DEFINED
00141 
00142 /* function prototypes for new sml installs */
00143 int SML_InstallRasterClasses(SMLCONTEXT *);
00144 int SML_InstallRasterFunctions(SMLCONTEXT *);
00145 int SML_InstallFilterFunctions(SMLCONTEXT *);
00146 int SML_InstallFFTClasses(SMLCONTEXT *);
00147 int SML_InstallVectorClasses(SMLCONTEXT *);
00148 int SML_InstallVectorFunctions(SMLCONTEXT *);
00149 int SML_InstallCADFunctions(SMLCONTEXT *);
00150 int SML_InstallTINFunctions(SMLCONTEXT *);
00151 int _qq_install_matrix_functions(SMLCONTEXT *);             /* in qqmatrix.c - matrix functions */
00152 int _qq_install_linestyle_functions(SMLCONTEXT *);          /* in qqstyle.c - line style functions */
00153 int SML_InstallVectorToolkitFunctions(SMLCONTEXT *);     /* in smlvkit.c - vector toolkit functions */
00154 int SML_InstallClassifyFunctions(SMLCONTEXT *);          /* in smlclass.c  - high level classify functions */
00155 int SML_InstallColorConversionFunctions(SMLCONTEXT *);
00156 int SML_InstallObjectConversionFunctions(SMLCONTEXT *);
00157 int SML_InstallRegionFunctions(SMLCONTEXT *);
00158 int SML_InstallToolFunctions(SMLCONTEXT *);
00159 int SML_InstallToolClasses(SMLCONTEXT *);
00160 
00161 int _qq_install_math_functions(SMLCONTEXT *);
00162 int _qq_install_georef_functions(SMLCONTEXT *);
00163 int SML_InstallGeorefFunctions(SMLCONTEXT *);
00164 int SML_InstallGeorefClasses(SMLCONTEXT *);
00165 int SML_InstallSpatRefClasses(SMLCONTEXT *);
00166 void SML_InstallMapProjClass(SMLCONTEXT *);
00167 int SML_InstallObjectFunctions(SMLCONTEXT *);
00168 RVCAPPLIBEXPORT int SML_InstallObjectClasses(SMLCONTEXT *);
00169 int SML_InstallPointSymbolFunctions(SMLCONTEXT *);
00170 
00171 int SML_InstallConsoleClasses(SMLCONTEXT *context);
00172 int SML_InstallConsoleFunctions(SMLCONTEXT *context);
00173 RVCAPPLIBEXPORT int SML_InstallStringFunctions(SMLCONTEXT *context);
00174 RVCAPPLIBEXPORT int SML_InstallPrintToBufferFunctions(SMLCONTEXT *context);
00175 int SML_InstallPopupFunctions(SMLCONTEXT *context);
00176 int SML_InstallPortClasses(SMLCONTEXT *context);
00177 int SML_InstallPortFunctions(SMLCONTEXT *context);
00178 int SML_InstallFileClasses(SMLCONTEXT *context);
00179 int SML_InstallFileFunctions(SMLCONTEXT *context);
00180 int SML_InstallIniFileClasses(SMLCONTEXT *context);
00181 int SML_InstallIniFileFunctions(SMLCONTEXT *context);
00182 int SML_InstallIniPortClasses(SMLCONTEXT *context);
00183 int SML_InstallIniPortFunctions(SMLCONTEXT *context);
00184 int SML_InstallStandardClasses(SMLCONTEXT *context);
00185 int SML_InstallColorPaletteFunctions(SMLCONTEXT *context);
00186 int SML_InstallStyleFunctions(SMLCONTEXT *context);
00187 int SML_InstallSystemFunctions(SMLCONTEXT *context);
00188 
00189 int SML_InstallWidgetClasses(SMLCONTEXT *);
00190 int SML_InstallWidgetFunctions(SMLCONTEXT *);
00191 int SML_InstallTipClasses(SMLCONTEXT *);
00192 int SML_InstallTipFunctions(SMLCONTEXT *);
00193 
00194 int SML_InstallMgdFuncs(SMLCONTEXT *);
00195 int SML_InstallMgdClasses(SMLCONTEXT *);
00196 int SML_InstallInternalSymbolFuncs(SMLCONTEXT *);
00197 int _SML_InstallDBEDITFuncs(SMLCONTEXT *);
00198 int _SML_InstallDBEDITClasses(SMLCONTEXT *);
00199 int _SML_InstallMdispFuncs(SMLCONTEXT *);
00200 int _SML_InstallMdispClasses(SMLCONTEXT *);
00201 int _SML_InstallMdispLayerFuncs(SMLCONTEXT *);
00202 int _SML_InstallMxdwFuncs(SMLCONTEXT *);     /* Should go away when disp2d does */
00203 
00204 #if defined(WIN32_MFC) || !defined(WIN32_NATIVE)
00205 int SML_InstallGPSClasses(SMLCONTEXT *context);
00206 int SML_InstallGPSFunctions(SMLCONTEXT *context);
00207 #endif
00208 int SML_InstallGeoFormulaFunctionList(SMLCONTEXT *context);
00209 int SML_InstallRunFunctions(SMLCONTEXT *);
00210 
00211 int SML_InstallNetworkClasses(SMLCONTEXT *);
00212 int SML_InstallNetworkFunctions(SMLCONTEXT *);
00213 
00214 int SML_InstallWatershedClasses(SMLCONTEXT *);
00215 int SML_InstallWatershedFunctions(SMLCONTEXT *);
00216 
00217 int SML_InstallMovieClasses(SMLCONTEXT *);
00218 int SML_InstallMovieFunctions(SMLCONTEXT *);
00219 
00220 int SML_InstallFrameClasses(SMLCONTEXT *);
00221 int SML_InstallFrameFunctions(SMLCONTEXT *);
00222 
00223 int SML_InstallSurfaceFunctions(SMLCONTEXT *);
00224 
00225 int SML_InstallTNTsim3DClass(SMLCONTEXT *);
00226 
00227 int SML_InstallTriangulatorFunctions(SMLCONTEXT *);
00228 /*----------------*/
00229 
00230 RVCAPPLIBEXPORT int SML_ResolveClassMembers(SMLCONTEXT *);
00231 
00232 RVCAPPLIBEXPORT int SML_InstallAutoClassesCompField (SMLCONTEXT* context);
00233 RVCAPPLIBEXPORT int SML_InstallAutoClassesSelectQuery (SMLCONTEXT* context);
00234 RVCAPPLIBEXPORT int SML_InstallAutoClassesStyleQuery (SMLCONTEXT* context);
00235 RVCAPPLIBEXPORT int SML_InstallAutoClassesDispLayer (SMLCONTEXT* context);
00236 RVCAPPLIBEXPORT int SML_InstallAutoClassesGeoFormula (SMLCONTEXT* context);
00237 RVCAPPLIBEXPORT int SML_InstallAutoClassesPinMap (SMLCONTEXT* context);
00238 RVCAPPLIBEXPORT int SML_InstallAutoClassesSML (SMLCONTEXT* context);
00239 int SML_InstallGUIControlClasses(SMLCONTEXT *);
00240 int SML_InstallGUIDataClasses(SMLCONTEXT *);
00241 int SML_InstallXMLClasses(SMLCONTEXT *);
00242 
00243 
00244 #endif
00245 
00246 /*-----------------------------------------------------*/
00247 #ifdef SML_DEFINE_QUERY_MIN_FUNC_LIST
00248 /*
00249  * This is the absolute minimum function list.  It should
00250  * only include functions needed by computed fields as
00251  * everything from this list will get pulled into rvcapp.dll
00252  */
00253 
00254 SMLFUNCINSTALLER SML_QueryMinFuncList[] = {
00255    _qq_install_math_functions,   //!<  qqmath.c (rvcapp.dll)
00256    SML_InstallStringFunctions,   //!<  qqstring.c (rvcapp.dll)
00257    SML_InstallObjectFunctions,   //!<  qqobject.c (rvcapp.dll)
00258    SML_InstallAutoClassesCompField,
00259    NULL
00260    };
00261 
00262 #endif
00263 
00264 /*-----------------------------------------------------*/
00265 #ifdef SML_DEFINE_QUERY_FUNC_LIST
00266 
00267 /*
00268 ** This is the list of all classes.  All classes are installed
00269 ** once the first time a context is created.  Once they're
00270 ** installed, all the members which are class pointers are
00271 ** initialized to point to their respective classes.
00272 */
00273 
00274 /*
00275  * Only install classes which need to be accessed from
00276  * query here.  IF you only need it in SML, install it
00277  * in the appropriate function list below
00278  */
00279 SMLFUNCINSTALLER SML_ClassList[] = {
00280    SML_InstallStandardClasses,
00281    SML_InstallObjectClasses,
00282    SML_InstallFileClasses,
00283    SML_InstallPortClasses,
00284    SML_InstallIniFileClasses,
00285    SML_InstallRasterClasses,
00286    SML_InstallVectorClasses,
00287    SML_InstallMgdClasses,
00288    SML_InstallGeorefClasses,
00289    SML_InstallSpatRefClasses,
00290    SML_InstallNetworkClasses,
00291    SML_InstallAutoClassesCompField,
00292    SML_InstallAutoClassesSelectQuery,
00293    SML_InstallAutoClassesStyleQuery,
00294    SML_InstallAutoClassesDispLayer,
00295    SML_InstallAutoClassesPinMap,
00296    SML_InstallAutoClassesSML,
00297 /*-------------------------------------*/
00298    SML_InstallGUIControlClasses,
00299    SML_InstallXMLClasses,
00300    SML_ResolveClassMembers,   //!<  Put this one last!
00301    NULL
00302    };
00303 
00304 
00305 
00306 /*
00307 **  This list is automatically installed on every context
00308 **  except for computed fields.  They only get the list
00309 **  SML_QueryMinFuncList[] above
00310 **
00311 **  If you modify this list, you'll have to recompile
00312 **  dbquery.c to make things show up.
00313 */
00314 SMLFUNCINSTALLER SML_QueryFuncList[] = {
00315    _qq_install_matrix_functions,    //!<  qqmatrix.c
00316    SML_InstallGeorefFunctions,      //!<  qqgeoref.c
00317    SML_InstallSpatRefClasses,    //!<  smlspatref.c
00318    SML_InstallColorPaletteFunctions,      //!<  qqstruct.c
00319    SML_InstallStyleFunctions,             //!<  qqstruct.c
00320    SML_InstallSystemFunctions,            //!<  qqstruct.c
00321    SML_InstallColorConversionFunctions,   //!<  smlconv.c
00322    SML_InstallVectorFunctions,      //!<  qqvect.c
00323    SML_InstallPopupFunctions,       //!<  smlpopup.c
00324    SML_InstallFileFunctions,        //!<  smlfile.c
00325    SML_InstallPortFunctions,        //!<  smlport.c
00326    SML_InstallIniFileFunctions,     //!<  smlini.c
00327    NULL
00328    };
00329 
00330 
00331 /*
00332 ** List of functions that only make sense in style queries.
00333 **
00334 ** Automatically added if context is created via
00335 ** DBQuery_CreateContextFromDBHandle or if the first
00336 ** parameter of DBQuery_CreateContext > 0
00337 */
00338 SMLFUNCINSTALLER SML_StyleQueryAdditionalFuncList[] = {
00339    SML_InstallPointSymbolFunctions,
00340    _qq_install_linestyle_functions,       //!<  qqstyle.c
00341    SML_InstallPrintToBufferFunctions,
00342    NULL
00343    };
00344 
00345 #endif
00346 
00347 /*-----------------------------------------------------*/
00348 #ifdef SML_DEFINE_GEOFORMULA_FUNC_LIST
00349 
00350 /*
00351 **  List of functions for GeoFormulas.  Installed by
00352 **  calling SML_InstallGeoFormulaFunctionList(context)
00353 **
00354 **  This list currently is the same as SML's list
00355 **  Do NOT install anything here which is in the
00356 **  QueryFuncList, as that list will already be
00357 **  installed when the context is created
00358 **
00359 **  If you modify this list, you'll have to recompile
00360 **  qqgeofrm.c to make things show up.
00361 */
00362 
00363 SMLFUNCINSTALLER SML_GeoFormulaFuncList[] = {
00364    SML_InstallAutoClassesGeoFormula,
00365 #ifdef X_NATIVE
00366    SML_InstallObjectConversionFunctions,     //!<  smlconv.c
00367 #endif
00368    SML_InstallRasterFunctions,               //!<  qqrast.c
00369    SML_InstallFilterFunctions,               //!<  qqfilt.c
00370    SML_InstallCADFunctions,                  //!<  qqcad.c
00371    SML_InstallTINFunctions,                  //!<  qqtin.c
00372    SML_InstallVectorToolkitFunctions,        //!<  smlvkit.c
00373    SML_InstallRegionFunctions,               //!<  smlrgn.c
00374    SML_InstallClassifyFunctions,             //!<  smlclsfy.c
00375    SML_InstallFFTClasses,                    //!<  fftfunc.c
00376    NULL
00377    };
00378 
00379 #endif
00380 
00381 /*-----------------------------------------------------*/
00382 #ifdef SML_DEFINE_SML_FUNC_LIST
00383 
00384 /*
00385 **  List of functions for SML.
00386 **
00387 **  Do NOT install anything here which is in the
00388 **  QueryFuncList, as that list will already be
00389 **  installed when the context is created
00390 **
00391 **  If you modify this list, you'll have to recompile
00392 **  smlinit.c to make things show up.
00393 **
00394 */
00395 
00396 SMLFUNCINSTALLER SML_SMLFuncList[] = {
00397 
00398    SML_InstallObjectConversionFunctions,  //!<  smlconv.c
00399    SML_InstallRasterFunctions,            //!<  qqrast.c
00400    SML_InstallFilterFunctions,            //!<  qqfilt.c
00401    SML_InstallCADFunctions,               //!<  qqcad.c
00402    SML_InstallTINFunctions,               //!<  qqtin.c
00403    SML_InstallVectorToolkitFunctions,     //!<  smlvkit.c
00404    SML_InstallRegionFunctions,            //!<  smlrgn.c
00405    SML_InstallClassifyFunctions,          //!<  smlclsfy.c
00406    SML_InstallConsoleFunctions,           //!<  qqprint.c
00407    SML_InstallMgdFuncs,                   //!<  qqmgd.c
00408    SML_InstallInternalSymbolFuncs,        //!<  smlinit.c
00409    SML_InstallWidgetClasses,              //!<  smlxwidg.c
00410    SML_InstallWidgetFunctions,            //!<  smlxwidg.c -- Needs classes installed by Mgd
00411    SML_InstallWatershedClasses,           //!<  watermdl.c
00412    SML_InstallWatershedFunctions,            //!<  watermdl.c
00413    SML_InstallFrameClasses,               //!<  framemem.c
00414    SML_InstallFrameFunctions,             //!<  framemem.c
00415 #if defined(X_NATIVE) || defined(WIN32_MFC)
00416    SML_InstallTipClasses,                 //!<  mguitooltip.c
00417    SML_InstallTipFunctions,               //!<  mguitooltip.c
00418 #endif
00419    SML_InstallSurfaceFunctions,           //!<  qqsfmod.c
00420    SML_InstallFFTClasses,                 //!<  fftfunc.c
00421    SML_InstallTNTsim3DClass,              //!<  smlsim.c
00422    SML_InstallTriangulatorFunctions,         //!<  qqtriang.c
00423    _qq_install_linestyle_functions,       //!<  qqstyle.c
00424 
00425    SML_InstallRunFunctions,               //!<  smlxmain.c
00426 
00427    NULL
00428    };
00429 
00430 
00431 #endif
00432 /*-----------------------------------------------------*/
00433 
00434 #ifdef SML_DEFINE_SML_TNTDISP_ONLY_FUNCS
00435 //! Functions in this list are only installed in TNTdisp (and SML/W)
00436 SMLFUNCINSTALLER SML_TNTDispFuncList[] = {
00437    SML_InstallMovieClasses,               //!<  movienc.c
00438    SML_InstallMovieFunctions,             //!<  movienc.c
00439    NULL
00440    };
00441 
00442 
00443 #endif
00444 
00445 #if defined(__cplusplus)
00446 }
00447 #endif
00448 
00449 #endif //!< GENERATING_DOXYGEN_OUTPUT
00450 //!
00451 #endif   //!< INC_MI32_SMLFUNCS_H
00452 

Generated on Tue Dec 14 13:18:38 2004 for TNTsdk by  doxygen 1.3.8-20040913