From 66f3721aa5d9e2ed334da88e82087e73b47988ac Mon Sep 17 00:00:00 2001 From: Alesandro Dragnev Date: Wed, 16 Oct 2024 13:51:54 +0300 Subject: [PATCH 1/2] Implementing provider and providerVersion --- src/Implementation/CMediaRessourceVectorImpl.cpp | 12 +++++++++++- src/Implementation/CMediaRessourceVectorImpl.h | 3 ++- src/Include/IMediaRessourceVectorInterface.h | 3 ++- src/Prefix/CommonPrefix.h | 2 ++ src/SceneDataExchange.cpp | 12 ++++++++++-- src/SceneDataExchange.h | 5 ++++- 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/Implementation/CMediaRessourceVectorImpl.cpp b/src/Implementation/CMediaRessourceVectorImpl.cpp index 225e762b..71144a38 100644 --- a/src/Implementation/CMediaRessourceVectorImpl.cpp +++ b/src/Implementation/CMediaRessourceVectorImpl.cpp @@ -23,7 +23,6 @@ SceneData::SceneDataExchange* VectorworksMVR::CMediaRessourceVectorImpl::GetExch return & fExchangeObj; } - VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::AddFileToMvrFile(MvrString fullPath) { TXString strFullPath(fullPath); @@ -74,6 +73,17 @@ VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::AddGdtfFold return kVCOMError_NoError; } +VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::AddProviderAndProviderVersion( MvrString provider, MvrString providerVersion ) +{ + TXString strProvider(provider); + TXString strProviderVersion(providerVersion); + + fExchangeObj.AddProviderAndProviderVersion(strProvider, strProviderVersion); + + return kVCOMError_NoError; + +} + VectorworksMVR::VCOMError VectorworksMVR::CMediaRessourceVectorImpl::OpenForWrite(MvrString fullPath) { //--------------------------------------------------------------------------- diff --git a/src/Implementation/CMediaRessourceVectorImpl.h b/src/Implementation/CMediaRessourceVectorImpl.h index ebc1e42d..2e3d8c44 100644 --- a/src/Implementation/CMediaRessourceVectorImpl.h +++ b/src/Implementation/CMediaRessourceVectorImpl.h @@ -43,7 +43,8 @@ namespace VectorworksMVR virtual VCOMError VCOM_CALLTYPE AddGdtfFolderLocation(MvrString fullPathToFolder); virtual VCOMError VCOM_CALLTYPE AddFileToMvrFile(MvrString fullPath); virtual VCOMError VCOM_CALLTYPE AddBufferToMvrFile(MvrString filename, char* buffer, size_t length); - + virtual VCOMError VCOM_CALLTYPE AddProviderAndProviderVersion( MvrString provider, MvrString providerVersion ); + // After this you can generate Aux Objects virtual VCOMError VCOM_CALLTYPE CreateDataProviderObject( MvrString provider, MvrString version, ISceneDataProvider** outSceneDataProvider); virtual VCOMError VCOM_CALLTYPE CreatePositionObject( const MvrUUID& guid, MvrString name, IPosition** outPositionObj); diff --git a/src/Include/IMediaRessourceVectorInterface.h b/src/Include/IMediaRessourceVectorInterface.h index af7c03a8..081821e8 100644 --- a/src/Include/IMediaRessourceVectorInterface.h +++ b/src/Include/IMediaRessourceVectorInterface.h @@ -395,7 +395,8 @@ namespace VectorworksMVR virtual VCOMError VCOM_CALLTYPE AddGdtfFolderLocation(MvrString fullPathToFolder) = 0; virtual VCOMError VCOM_CALLTYPE AddFileToMvrFile(MvrString fullPath) = 0; virtual VCOMError VCOM_CALLTYPE AddBufferToMvrFile(MvrString filename, char* buffer, size_t length) = 0; - + virtual VCOMError VCOM_CALLTYPE AddProviderAndProviderVersion( MvrString provider, MvrString providerVersion ) = 0; + // After this you can generate Aux Objects virtual VCOMError VCOM_CALLTYPE CreateDataProviderObject( MvrString provider, MvrString version, ISceneDataProvider** outSceneDataProvider) = 0; virtual VCOMError VCOM_CALLTYPE CreatePositionObject( const MvrUUID& guid, MvrString name, IPosition** outPositionObj) = 0; diff --git a/src/Prefix/CommonPrefix.h b/src/Prefix/CommonPrefix.h index 973a69f2..6ab34400 100644 --- a/src/Prefix/CommonPrefix.h +++ b/src/Prefix/CommonPrefix.h @@ -62,6 +62,8 @@ #define XML_Val_RootNodeName "GeneralSceneDescription" #define XML_Val_RootAttrMainVersion "verMajor" #define XML_Val_RootAttrMinorVersion "verMinor" +#define XML_Val_RootAttrProvider "provider" +#define XML_Val_RootAttrProviderVersion "providerVersion" #define XML_Val_UserDataNodeName "UserData" #define XML_Val_UserDataVWEntry "VWEntry" diff --git a/src/SceneDataExchange.cpp b/src/SceneDataExchange.cpp index d3322651..98e46364 100644 --- a/src/SceneDataExchange.cpp +++ b/src/SceneDataExchange.cpp @@ -3377,6 +3377,12 @@ bool SceneDataExchange::WriteToFile(const IFileIdentifierPtr& file) return true; } +void SceneDataExchange::AddProviderAndProviderVersion(const TXString& provider, const TXString& providerVersion) +{ + fProvider = provider; + fProviderVersion = providerVersion; +} + bool SceneDataExchange::WriteXml(const IFolderIdentifierPtr& folder, IXMLFileIOBufferImpl& outBuffer) { @@ -3395,8 +3401,10 @@ bool SceneDataExchange::WriteXml(const IFolderIdentifierPtr& folder, IXMLFileIOB { //------------------------------------------------------------------------------------------------- // Set Version for the export Format - pDatabaseRoot->SetNodeAttributeValue(XML_Val_RootAttrMainVersion, TXString() << kMVR_MajorVersion); - pDatabaseRoot->SetNodeAttributeValue(XML_Val_RootAttrMinorVersion, TXString() << kMVR_MinorVersion); + pDatabaseRoot->SetNodeAttributeValue(XML_Val_RootAttrMainVersion, TXString() << kMVR_MajorVersion); + pDatabaseRoot->SetNodeAttributeValue(XML_Val_RootAttrMinorVersion, TXString() << kMVR_MinorVersion); + pDatabaseRoot->SetNodeAttributeValue(XML_Val_RootAttrProvider, fProvider); + pDatabaseRoot->SetNodeAttributeValue(XML_Val_RootAttrProviderVersion, fProviderVersion); //------------------------------------------------------------------------------------------------- diff --git a/src/SceneDataExchange.h b/src/SceneDataExchange.h index 6a66e43b..03ab4a5f 100644 --- a/src/SceneDataExchange.h +++ b/src/SceneDataExchange.h @@ -991,6 +991,8 @@ namespace SceneData // size_t fCountExportedGeometryProviders; + TXString fProvider; + TXString fProviderVersion; //Duplicated Uuids flag bool fDuplicatedUuids; @@ -1068,7 +1070,8 @@ namespace SceneData void AddFileToZip(const IFileIdentifierPtr& file, ERessourceType resType); void AddBufferToZip(const TXString& fileName, ISceneDataZipBuffer* buffer); void AddLocationForGdtfFiles(IFolderIdentifierPtr folder); - + void AddProviderAndProviderVersion(const TXString& provider, const TXString& providerVersion ); + private: bool WriteXml(const IFolderIdentifierPtr& folder , IXMLFileIOBufferImpl& outBuffer); From 3c0df4d3e120dcbbba96ad3e8a6abab0ec429919 Mon Sep 17 00:00:00 2001 From: Alesandro Dragnev Date: Wed, 16 Oct 2024 14:18:05 +0300 Subject: [PATCH 2/2] Fixing updated version of xerces from xerces 3.2.5 to 3.3.0 --- .github/actions/build-ubuntu/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-ubuntu/action.yml b/.github/actions/build-ubuntu/action.yml index 29e38e9d..26502d01 100644 --- a/.github/actions/build-ubuntu/action.yml +++ b/.github/actions/build-ubuntu/action.yml @@ -22,7 +22,7 @@ runs: run: | mkdir xerces-c cd xerces-c - curl -o xerces-c.zip https://dlcdn.apache.org//xerces/c/3/sources/xerces-c-3.2.5.zip + curl -o xerces-c.zip https://dlcdn.apache.org//xerces/c/3/sources/xerces-c-3.3.0.zip unzip xerces-c.zip -d . && mv xerces-c-*/* . # libMVRGdtf expects XMLChar be uint16_t