SoDB.h
#ifndef COIN_SODB_H
#define COIN_SODB_H
/**************************************************************************\
* Copyright (c) Kongsberg Oil & Gas Technologies AS
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\**************************************************************************/
#include <Inventor/SbBasic.h>
#include <Inventor/SbString.h>
#include <Inventor/SoType.h>
#include <Inventor/sensors/SoSensorManager.h>
class SbName;
class SbTime;
class SoBase;
class SoField;
class SoInput;
class SoNode;
class SoPath;
class SoSeparator;
class SoVRMLGroup;
class SoGroup;
typedef void SoDBHeaderCB(void * data, SoInput * input);
class COIN_DLL_API SoDB {
public:
static void init(void);
static void finish(void);
static void cleanup(void);
static const char * getVersion(void);
static SbBool read(SoInput * input, SoPath *& path);
static SbBool read(SoInput * input, SoBase *& base);
static SbBool read(SoInput * input, SoNode *& rootnode);
static SoSeparator * readAll(SoInput * input);
static SoVRMLGroup * readAllVRML(SoInput * input);
static SbBool isValidHeader(const char * teststring);
static SbBool registerHeader(const SbString & headerstring,
SbBool isbinary,
float ivversion,
SoDBHeaderCB * precallback,
SoDBHeaderCB * postcallback,
void * userdata = NULL);
static SbBool getHeaderData(const SbString & headerstring,
SbBool & isbinary,
float & ivversion,
SoDBHeaderCB *& precallback,
SoDBHeaderCB *& postcallback,
void *& userdata,
SbBool substringok = FALSE);
static int getNumHeaders(void);
static SbString getHeaderString(const int i);
static SoField * createGlobalField(const SbName & name, SoType type);
static SoField * getGlobalField(const SbName & name);
static void renameGlobalField(const SbName & from, const SbName & to);
static void setRealTimeInterval(const SbTime & interval);
static const SbTime & getRealTimeInterval(void);
static void enableRealTimeSensor(SbBool on);
static SoSensorManager * getSensorManager(void);
static void setDelaySensorTimeout(const SbTime & t);
static const SbTime & getDelaySensorTimeout(void);
static int doSelect(int nfds, void * readfds, void * writefds,
void * exceptfds, struct timeval * usertimeout);
static void addConverter(SoType from, SoType to, SoType converter);
static SoType getConverter(SoType from, SoType to);
static SbBool isInitialized(void);
static void startNotify(void);
static SbBool isNotifying(void);
static void endNotify(void);
typedef SbBool ProgressCallbackType(const SbName & itemid, float fraction,
SbBool interruptible, void * userdata);
static void addProgressCallback(ProgressCallbackType * func, void * userdata);
static void removeProgressCallback(ProgressCallbackType * func, void * userdata);
static SbBool isMultiThread(void);
static void readlock(void);
static void readunlock(void);
static void writelock(void);
static void writeunlock(void);
static void createRoute(SoNode * from, const char * eventout,
SoNode * to, const char * eventin);
static void removeRoute(SoNode * from, const char * eventout,
SoNode * to, const char * eventin);
private:
static SoGroup * readAllWrapper(SoInput * input, const SoType & grouptype);
};
#endif // !COIN_SODB_H
SbName
The SbName class stores strings by reference.
Definition SbName.h:40
SbString
The SbString class is a string class with convenience functions for string operations.
Definition SbString.h:52
SbTime
The SbTime class instances represents time values.
Definition SbTime.h:50
SoBase
The SoBase class is the top-level superclass for a number of class-hierarchies.
Definition SoBase.h:45
SoDB
The SoDB class keeps track of internal global data.
Definition SoDB.h:55
SoDB::addConverter
static void addConverter(SoType from, SoType to, SoType converter)
Definition SoDB.cpp:1090
SoDB::isNotifying
static SbBool isNotifying(void)
Definition SoDB.cpp:1152
SoDB::getConverter
static SoType getConverter(SoType from, SoType to)
Definition SoDB.cpp:1117
SoDB::readAllVRML
static SoVRMLGroup * readAllVRML(SoInput *input)
Definition SoDB.cpp:696
SoDB::readlock
static void readlock(void)
Definition SoDB.cpp:1444
SoDB::readAll
static SoSeparator * readAll(SoInput *input)
Definition SoDB.cpp:682
SoDB::getVersion
static const char * getVersion(void)
Definition SoDB.cpp:517
SoDB::endNotify
static void endNotify(void)
Definition SoDB.cpp:1161
SoDB::writelock
static void writelock(void)
Definition SoDB.cpp:1480
SoDB::removeRoute
static void removeRoute(SoNode *from, const char *eventout, SoNode *to, const char *eventin)
Definition SoDB.cpp:1649
SoDB::setDelaySensorTimeout
static void setDelaySensorTimeout(const SbTime &t)
Definition SoDB.cpp:1023
SoDB::createGlobalField
static SoField * createGlobalField(const SbName &name, SoType type)
Definition SoDB.cpp:887
SoDB::getNumHeaders
static int getNumHeaders(void)
Definition SoDB.cpp:850
SoDB::read
static SbBool read(SoInput *input, SoPath *&path)
Definition SoDB.cpp:537
SoDB::getHeaderString
static SbString getHeaderString(const int i)
Definition SoDB.cpp:861
SoDB::startNotify
static void startNotify(void)
Definition SoDB.cpp:1140
SoDB::finish
static void finish(void)
Definition SoDB.cpp:494
SoDB::enableRealTimeSensor
static void enableRealTimeSensor(SbBool on)
Definition SoDB.cpp:1187
SoDB::addProgressCallback
static void addProgressCallback(ProgressCallbackType *func, void *userdata)
Definition SoDB.cpp:1382
SoDB::init
static void init(void)
Definition SoDB.cpp:200
SoDB::setRealTimeInterval
static void setRealTimeInterval(const SbTime &interval)
Definition SoDB.cpp:987
SoDB::isMultiThread
static SbBool isMultiThread(void)
Definition SoDB.cpp:1412
SoDB::isInitialized
static SbBool isInitialized(void)
Definition SoDB.cpp:1131
SoDB::getGlobalField
static SoField * getGlobalField(const SbName &name)
Definition SoDB.cpp:931
SoDB::doSelect
static int doSelect(int nfds, void *readfds, void *writefds, void *exceptfds, struct timeval *usertimeout)
Definition SoDB.cpp:1065
SoDB::createRoute
static void createRoute(SoNode *from, const char *eventout, SoNode *to, const char *eventin)
Definition SoDB.cpp:1550
SoDB::writeunlock
static void writeunlock(void)
Definition SoDB.cpp:1495
SoDB::renameGlobalField
static void renameGlobalField(const SbName &from, const SbName &to)
Definition SoDB.cpp:945
SoDB::registerHeader
static SbBool registerHeader(const SbString &headerstring, SbBool isbinary, float ivversion, SoDBHeaderCB *precallback, SoDBHeaderCB *postcallback, void *userdata=NULL)
Definition SoDB.cpp:750
SoDB::removeProgressCallback
static void removeProgressCallback(ProgressCallbackType *func, void *userdata)
Definition SoDB.cpp:1397
SoDB::getHeaderData
static SbBool getHeaderData(const SbString &headerstring, SbBool &isbinary, float &ivversion, SoDBHeaderCB *&precallback, SoDBHeaderCB *&postcallback, void *&userdata, SbBool substringok=FALSE)
Definition SoDB.cpp:798
SoDB::cleanup
static void cleanup(void)
Definition SoDB.cpp:507
SoDB::ProgressCallbackType
SbBool ProgressCallbackType(const SbName &itemid, float fraction, SbBool interruptible, void *userdata)
Definition SoDB.h:106
SoDB::getSensorManager
static SoSensorManager * getSensorManager(void)
Definition SoDB.cpp:1045
SoDB::getDelaySensorTimeout
static const SbTime & getDelaySensorTimeout(void)
Definition SoDB.cpp:1035
SoDB::getRealTimeInterval
static const SbTime & getRealTimeInterval(void)
Definition SoDB.cpp:1011
SoDB::readunlock
static void readunlock(void)
Definition SoDB.cpp:1459
SoDB::isValidHeader
static SbBool isValidHeader(const char *teststring)
Definition SoDB.cpp:712
SoField
The SoField class is the top-level abstract base class for fields.
Definition SoField.h:47
SoGroup
The SoGroup class is a node which managed other node instances.
Definition SoGroup.h:40
SoInput
The SoInput class is an abstraction of file import functionality.
Definition SoInput.h:61
SoNode
The SoNode class is the base class for nodes used in scene graphs.
Definition SoNode.h:56
SoPath
The SoPath class is a container class for traversal path descriptions.
Definition SoPath.h:52
SoSensorManager
The SoSensorManager class handles the sensor queues.
Definition SoSensorManager.h:43
SoSeparator
The SoSeparator class is a state-preserving group node.
Definition SoSeparator.h:44
SoType
The SoType class is the basis for the runtime type system in Coin.
Definition SoType.h:59
SoVRMLGroup
The SoVRMLGroup class is used for grouping VRML nodes.
Definition SoVRMLGroup.h:45