[GME-commit] GMESRC/GME/Mga MgaLibOps.cpp,1.10,1.11
gme-commit at list.isis.vanderbilt.edu
gme-commit at list.isis.vanderbilt.edu
Fri Jul 21 20:44:24 CDT 2006
- Previous message: [GME-commit]
GMESRC/SDK/BON BONImpl.cpp,1.33,1.34 BONImpl.h,1.19,1.20
Extensions.cpp,1.11,1.12 MON.cpp,1.8,1.9 MON.h,1.7,1.8
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /project/gme-repository/GMESRC/GME/Mga
In directory escher:/tmp/cvs-serv9972
Modified Files:
MgaLibOps.cpp
Log Message:
Allowing SubLanguages mga files as libraries, in case of Language Composition.
CVS User: Zoltan Molnar, ISIS (zolmol)
Index: MgaLibOps.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Mga/MgaLibOps.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** MgaLibOps.cpp 22 May 2006 17:11:07 -0000 1.10
--- MgaLibOps.cpp 21 Jul 2006 19:44:22 -0000 1.11
***************
*** 7,11 ****
#include "MgaLibOps.h" // by ZolMol
#include "MgaLibRefr.h"
!
HRESULT FCO::get_LibraryName(BSTR *libname) {
--- 7,11 ----
#include "MgaLibOps.h" // by ZolMol
#include "MgaLibRefr.h"
! #include "../interfaces/Parser.h"
HRESULT FCO::get_LibraryName(BSTR *libname) {
***************
*** 182,192 ****
// ask some info about the project to be attached
long mga_ver( 0);
{
! CComBSTR par_nm; // not used now
CComBSTR par_vs; // not used now
CComVariant par_gd; // not used now
VARIANT_BOOL ro_mode;// not used now
COMTHROW(p->QueryProjectInfo( connstr, &mga_ver, &par_nm, &par_vs, &par_gd, &ro_mode));
}
--- 182,246 ----
// ask some info about the project to be attached
+ bool upgraded = false; CComBSTR connstr_upgraded( "MGA=");
long mga_ver( 0);
{
! CComBSTR par_nm;
CComBSTR par_vs; // not used now
CComVariant par_gd; // not used now
VARIANT_BOOL ro_mode;// not used now
COMTHROW(p->QueryProjectInfo( connstr, &mga_ver, &par_nm, &par_vs, &par_gd, &ro_mode));
+ if( par_nm != paradigmname)
+ {
+ // must upgrade 'connstr' project into 'paradigmname' paradigm
+ VARIANT_BOOL ro = VARIANT_TRUE;
+ HRESULT hr = p->Open( connstr, &ro);
+ if( FAILED( hr)) {
+ Reporter( mgaproject).show( CComBSTR( "Could not open the to-be-library project."));
+ return;
+ }
+
+ // Find TEMP directory
+ TCHAR szTempPath[MAX_PATH];
+ if (::GetTempPath(MAX_PATH, szTempPath) == 0) {
+ Reporter( mgaproject).show( CComBSTR( "Could not find TEMP directory."));
+ return;
+ }
+
+ // Create temporary filenames
+ TCHAR szTempXmeFileName[MAX_PATH];
+ TCHAR szTempMgaFileName[MAX_PATH];
+ if( ::GetTempFileName(szTempPath, _T("GME"), 0, szTempXmeFileName) == 0 // 0 means ERROR
+ || ::GetTempFileName(szTempPath, _T("GME"), 0, szTempMgaFileName) == 0) {
+ ASSERT(("Unable to get temporary filename.", false));
+ Reporter( mgaproject).show( CComBSTR( "Could not get temporary filename."));
+ return;
+ }
+
+ // Dump the to-be-library into XML
+ CComPtr<IMgaDumper> dumper;
+ COMTHROW( dumper.CoCreateInstance(L"Mga.MgaDumper") );
+ ASSERT( dumper != NULL );
+
+ COMTHROW(dumper->put_FormatVersion(0));
+ COMTHROW(dumper->DumpProject( p, PutInBstr( szTempXmeFileName)) );
+
+ p->Close();
+
+ // Create a new 'paradigmname' project
+ connstr_upgraded.Append( szTempMgaFileName); // connection string prepared
+ hr = p->CreateEx( PutInBstr( connstr_upgraded), PutInBstr( paradigmname), paradigmGUID);
+ if( SUCCEEDED( hr)) {
+ CComPtr<IMgaParser> parser;
+ COMTHROW( parser.CoCreateInstance(L"Mga.MgaParser") );
+ ASSERT( parser != NULL );
+
+ COMTHROW(parser->ParseProject( p, PutInBstr( szTempXmeFileName)) );
+ p->Close();
+ upgraded = true;
+ }
+ else if(hr == E_MGA_PARADIGM_NOTREG || hr == E_MGA_PARADIGM_INVALID) {
+ ASSERT(0); // how come? these are similar to mgaproject's data
+ }
+ }
}
***************
*** 211,215 ****
}
! COMTHROW(p->OpenEx(connstr, paradigmname, paradigmGUID));
COMTHROW(p->BeginTransaction(NULL, TRANSACTION_READ_ONLY));
{
--- 265,270 ----
}
! COMTHROW(p->OpenEx( upgraded?connstr_upgraded:connstr, paradigmname, paradigmGUID));
!
COMTHROW(p->BeginTransaction(NULL, TRANSACTION_READ_ONLY));
{
- Previous message: [GME-commit]
GMESRC/SDK/BON BONImpl.cpp,1.33,1.34 BONImpl.h,1.19,1.20
Extensions.cpp,1.11,1.12 MON.cpp,1.8,1.9 MON.h,1.7,1.8
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the GME-commit
mailing list