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