Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

SoDB.h

00001 /**************************************************************************\
00002  *
00003  *  This file is part of the Coin 3D visualization library.
00004  *  Copyright (C) 1998-2002 by Systems in Motion. All rights reserved.
00005  *
00006  *  This library is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU Lesser General Public License
00008  *  version 2.1 as published by the Free Software Foundation. See the
00009  *  file LICENSE.LGPL at the root directory of the distribution for
00010  *  more details.
00011  *
00012  *  If you want to use Coin for applications not compatible with the
00013  *  LGPL, please contact SIM to acquire a Professional Edition license.
00014  *
00015  *  Systems in Motion, Prof Brochs gate 6, 7030 Trondheim, NORWAY
00016  *  http://www.sim.no support@sim.no Voice: +47 22114160 Fax: +47 22207097
00017  *
00018 \**************************************************************************/
00019 
00020 #ifndef COIN_SODB_H
00021 #define COIN_SODB_H
00022 
00023 #include <Inventor/SbBasic.h>
00024 #include <Inventor/SbString.h>
00025 #include <Inventor/SoType.h>
00026 #include <Inventor/sensors/SoSensorManager.h>
00027 
00028 class SbName;
00029 class SbTime;
00030 class SoBase;
00031 class SoField;
00032 class SoFieldConverter;
00033 class SoInput;
00034 class SoNode;
00035 class SoPath;
00036 class SoSensor;
00037 class SoSeparator;
00038 class SoTimerSensor;
00039 class SoVRMLGroup;
00040 
00041 class SoDB_HeaderInfo;
00042 
00043 typedef void SoDBHeaderCB(void * data, SoInput * in);
00044 
00045 
00046 class COIN_DLL_API SoDB {
00047 public:
00048   static void init(void);
00049 
00050   static const char * getVersion(void);
00051   static SbBool read(SoInput * in, SoPath *& path);
00052   static SbBool read(SoInput * in, SoBase *& base);
00053   static SbBool read(SoInput * in, SoNode *& rootnode);
00054   static SoSeparator * readAll(SoInput * in);
00055   static SbBool isValidHeader(const char * teststring);
00056   static SbBool registerHeader(const SbString & headerstring,
00057                                SbBool isbinary,
00058                                float ivversion,
00059                                SoDBHeaderCB * precallback,
00060                                SoDBHeaderCB * postcallback,
00061                                void * userdata = NULL);
00062   static SbBool getHeaderData(const SbString & headerstring,
00063                               SbBool & isbinary,
00064                               float & ivversion,
00065                               SoDBHeaderCB *& precallback,
00066                               SoDBHeaderCB *& postcallback,
00067                               void *& userdata,
00068                               SbBool substringok = FALSE);
00069   static int getNumHeaders(void);
00070   static SbString getHeaderString(const int i);
00071   static SoField * createGlobalField(const SbName & name, SoType type);
00072   static SoField * getGlobalField(const SbName & name);
00073   static void renameGlobalField(const SbName & from, const SbName & to);
00074 
00075   static void setRealTimeInterval(const SbTime & interval);
00076   static const SbTime & getRealTimeInterval(void);
00077   static void enableRealTimeSensor(SbBool on);
00078 
00079   static SoSensorManager * getSensorManager(void);
00080   static void setDelaySensorTimeout(const SbTime & t);
00081   static const SbTime & getDelaySensorTimeout(void);
00082   static int doSelect(int nfds, void * readfds, void * writefds,
00083                       void * exceptfds, struct timeval * usertimeout);
00084 
00085   static void addConverter(SoType from, SoType to, SoType converter);
00086   static SoType getConverter(SoType from, SoType to);
00087 
00088   static SbBool isInitialized(void);
00089 
00090   static void startNotify(void);
00091   static SbBool isNotifying(void);
00092   static void endNotify(void);
00093 
00094 private:
00095   static void clean(void);
00096   static void updateRealTimeFieldCB(void * data, SoSensor * sensor);
00097 
00098   static SbList<SoDB_HeaderInfo *> * headerlist;
00099   static SoSensorManager * sensormanager;
00100   static SoTimerSensor * globaltimersensor;
00101   static SbTime * realtimeinterval;
00102   static SbDict * converters;
00103   static int notificationcounter;
00104   static SbBool isinitialized;
00105 };
00106 
00107 #endif // !COIN_SODB_H

Generated at Tue Mar 5 03:31:12 2002 for Coin by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001