1*2e2212a7SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2e2212a7SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2e2212a7SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2e2212a7SAndrew Rist * distributed with this work for additional information 6*2e2212a7SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2e2212a7SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2e2212a7SAndrew Rist * "License"); you may not use this file except in compliance 9*2e2212a7SAndrew Rist * with the License. You may obtain a copy of the License at 10*2e2212a7SAndrew Rist * 11*2e2212a7SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2e2212a7SAndrew Rist * 13*2e2212a7SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2e2212a7SAndrew Rist * software distributed under the License is distributed on an 15*2e2212a7SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2e2212a7SAndrew Rist * KIND, either express or implied. See the License for the 17*2e2212a7SAndrew Rist * specific language governing permissions and limitations 18*2e2212a7SAndrew Rist * under the License. 19*2e2212a7SAndrew Rist * 20*2e2212a7SAndrew Rist *************************************************************/ 21*2e2212a7SAndrew Rist 22*2e2212a7SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef DBACCESS_MIGRATIONENGINE_HXX 25cdf0e10cSrcweir #define DBACCESS_MIGRATIONENGINE_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir /** === begin UNO includes === **/ 28cdf0e10cSrcweir #include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp> 29cdf0e10cSrcweir /** === end UNO includes === **/ 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include <comphelper/componentcontext.hxx> 32cdf0e10cSrcweir 33cdf0e10cSrcweir #include <memory> 34cdf0e10cSrcweir 35cdf0e10cSrcweir namespace comphelper { 36cdf0e10cSrcweir class ComponentContext; 37cdf0e10cSrcweir } 38cdf0e10cSrcweir 39cdf0e10cSrcweir //........................................................................ 40cdf0e10cSrcweir namespace dbmm 41cdf0e10cSrcweir { 42cdf0e10cSrcweir //........................................................................ 43cdf0e10cSrcweir 44cdf0e10cSrcweir class IMigrationProgress; 45cdf0e10cSrcweir class MigrationLog; 46cdf0e10cSrcweir 47cdf0e10cSrcweir //==================================================================== 48cdf0e10cSrcweir //= MigrationEngine 49cdf0e10cSrcweir //==================================================================== 50cdf0e10cSrcweir class MigrationEngine_Impl; 51cdf0e10cSrcweir class MigrationEngine 52cdf0e10cSrcweir { 53cdf0e10cSrcweir public: 54cdf0e10cSrcweir /** creates the migration engine 55cdf0e10cSrcweir @param _rxDocument 56cdf0e10cSrcweir the document whose macros/scripts should be migrated 57cdf0e10cSrcweir @param _rProgress 58cdf0e10cSrcweir a callback for notifying progress. Beware of lifetimes here: The progress callback, 59cdf0e10cSrcweir passed herein as reference, must live as long as the engine instance lives. 60cdf0e10cSrcweir */ 61cdf0e10cSrcweir MigrationEngine( 62cdf0e10cSrcweir const ::comphelper::ComponentContext& _rContext, 63cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XOfficeDatabaseDocument >& _rxDocument, 64cdf0e10cSrcweir IMigrationProgress& _rProgress, 65cdf0e10cSrcweir MigrationLog& _rLogger 66cdf0e10cSrcweir ); 67cdf0e10cSrcweir 68cdf0e10cSrcweir ~MigrationEngine(); 69cdf0e10cSrcweir 70cdf0e10cSrcweir sal_Int32 getFormCount() const; 71cdf0e10cSrcweir sal_Int32 getReportCount() const; 72cdf0e10cSrcweir 73cdf0e10cSrcweir /** starts migrating the scripts and macros in the forms/reports to the database 74cdf0e10cSrcweir document. 75cdf0e10cSrcweir 76cdf0e10cSrcweir This process cannot be cancelled, as it would leave the document in an inconsistent 77cdf0e10cSrcweir state. 78cdf0e10cSrcweir 79cdf0e10cSrcweir When the function returns, then the migration is finished. 80cdf0e10cSrcweir 81cdf0e10cSrcweir @return 82cdf0e10cSrcweir whether or not the migration was successful. If it wasn't, then an error has been reported 83cdf0e10cSrcweir to the user, using the document's interaction handler. If no such interaction handler 84cdf0e10cSrcweir was present, then the error has been silenced. 85cdf0e10cSrcweir */ 86cdf0e10cSrcweir bool migrateAll(); 87cdf0e10cSrcweir 88cdf0e10cSrcweir private: 89cdf0e10cSrcweir ::std::auto_ptr< MigrationEngine_Impl > m_pImpl; 90cdf0e10cSrcweir }; 91cdf0e10cSrcweir 92cdf0e10cSrcweir //........................................................................ 93cdf0e10cSrcweir } // namespace dbmm 94cdf0e10cSrcweir //........................................................................ 95cdf0e10cSrcweir 96cdf0e10cSrcweir #endif // DBACCESS_MIGRATIONENGINE_HXX 97