37#ifndef Alembic_Abc_ArchiveInfo_h
38#define Alembic_Abc_ArchiveInfo_h
40#include <Alembic/Util/Export.h>
41#include <Alembic/Abc/Foundation.h>
42#include <Alembic/Abc/IArchive.h>
43#include <Alembic/Abc/OArchive.h>
49namespace ALEMBIC_VERSION_NS {
58static const char * kApplicationNameKey =
"_ai_Application";
59static const char * kDateWrittenKey =
"_ai_DateWritten";
60static const char * kUserDescriptionKey =
"_ai_Description";
61static const char * kDCCFPSKey =
"_ai_DCC_FPS";
64template <
class ARCHIVE_CTOR>
72 const std::string &iFileName,
75 const std::string & iApplicationWriter,
79 const std::string & iUserDescription,
88template <
class ARCHIVE_CTOR>
96 const std::string &iFileName,
102 const std::string & iApplicationWriter,
106 const std::string & iUserDescription,
121 std::string & oApplicationWriter,
124 std::string & oAlembicVersion,
127 Util::uint32_t & oAlembicApiVersion,
130 std::string & oDateWritten,
133 std::string & oUserDescription );
142 std::string & oApplicationWriter,
145 std::string & oAlembicVersion,
148 Util::uint32_t & oAlembicApiVersion,
151 std::string & oDateWritten,
154 std::string & oUserDescription,
168GetArchiveStartAndEndTime(
177template <
class ARCHIVE_CTOR>
180 const std::string &iFileName,
182 const std::string &iApplicationWriter,
183 const std::string &iUserDescription,
188 ErrorHandler::Policy policy = GetErrorHandlerPolicyFromArgs( iArg0, iArg1 );
190 if ( iApplicationWriter !=
"" )
192 md.set( kApplicationNameKey, iApplicationWriter );
198#if defined _WIN32 || defined _WIN64
199 ctime_s( dateBuf, 128, &rawtimeNow);
201 ctime_r( &rawtimeNow, dateBuf );
204 std::size_t bufLen = strlen( dateBuf );
205 if ( bufLen > 0 && dateBuf[bufLen - 1] ==
'\n' )
207 dateBuf[bufLen - 1] =
'\0';
209 md.set( kDateWrittenKey, dateBuf );
211 if ( iUserDescription !=
"" )
213 md.set( kUserDescriptionKey, iUserDescription );
218 md.set( kDCCFPSKey, std::to_string( iDCCFPS ) );
221 return OArchive( iCtor, iFileName, md, policy );
225template <
class ARCHIVE_CTOR>
228 const std::string &iFileName,
229 const std::string &iApplicationWriter,
230 const std::string &iUserDescription,
234 return CreateArchiveWithInfo( iCtor, iFileName, 0, iApplicationWriter,
235 iUserDescription, iArg0, iArg1 );
240using namespace ALEMBIC_VERSION_NS;
Definition Argument.h:120
Alembic namespace ...
Definition ArchiveInfo.cpp:39