28 #ifndef __GABC_IArchive__
29 #define __GABC_IArchive__
43 #if ALEMBIC_LIBRARY_VERSION >= 10200
49 #define GABC_ALEMBIC_THREADSAFE
67 bool valid()
const {
return myArchive.valid(); }
70 const std::string &
error()
const {
return myError; }
73 const std::vector<std::string> &
filenames()
const {
return myFileNames; }
84 return myArchive.getPtr()->getMetaData();
87 bool isOgawa()
const {
return myIsOgawa; }
94 void reopenStream(
int num_ogawa_streams = -1);
111 if (!myRefCount.add(-1))
123 int num_ogawa_streams = -1);
129 static std::string filenamesToString(
const std::vector<std::string> &filenames);
133 void openArchive(
const std::vector<std::string> &paths,
int num_streams);
134 void closeAndDelete();
136 UT_Lock &getLock()
const {
return *theLock; }
140 int num_streams = -1);
149 bool openStream(
const std::string &
path,
150 int num_streams = -1);
154 std::vector<std::string> myFileNames;
156 struct gabc_streamentry
159 : myReader(nullptr), myStreamBuf(nullptr), myStream(nullptr) {}
166 gabc_istream *myReader;
167 gabc_streambuf *myStreamBuf;
168 std::istream *myStream;
177 static inline void intrusive_ptr_add_ref(GABC_IArchive *i) { i->incref(); }
178 static inline void intrusive_ptr_release(GABC_IArchive *i) { i->decref(); }
196 : myLock(&(arch.getLock()))
202 : myLock(arch ? &(arch->getLock()) : NULL)
212 void unlock() { myLock->unlock(); myLock = NULL; }
217 #if defined(GABC_ALEMBIC_THREADSAFE)
FS_IStreamDeviceBuffer gabc_streambuf
Alembic::Abc::MetaData getMetadata()
Access to archive metadata.
GABC_AutoFakeLock(const GABC_IArchivePtr &)
GLsizei const GLchar *const * path
bios::stream_buffer< FS_IStreamDevice > FS_IStreamDeviceBuffer
GABC_AutoLock(const GABC_IArchivePtr &arch)
bool valid() const
Test validity.
const std::vector< std::string > & filenames() const
Access the filename.
const IArchive & archive() const
Access to the underlying archive.
GABC_AutoLock(const GABC_IArchive &arch)
const std::string & error() const
Error (set on creation)
GABC_AutoFakeLock(const GABC_IArchive &)
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate and *a name There is also one special expression reference