ooo-build r12635 - trunk/doc



Author: noelpwer
Date: Thu May 22 17:14:24 2008
New Revision: 12635
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12635&view=rev

Log:
some more detail


Modified:
   trunk/doc/BasicLibraryModuleNotes.txt

Modified: trunk/doc/BasicLibraryModuleNotes.txt
==============================================================================
--- trunk/doc/BasicLibraryModuleNotes.txt	(original)
+++ trunk/doc/BasicLibraryModuleNotes.txt	Thu May 22 17:14:24 2008
@@ -13,34 +13,25 @@
   o SfxScriptLibraryContainer - is the Library container ( it's the "com.sun.star.script.ScriptLibraryContainer" service
 
       XInitialization
-           ^
            |
       XStorageBasedLibraryContainer
-           ^
            |
       XLibraryContainerPassword
-           ^
            |
       XLibraryContainerExport
-           ^
            |
       XContainer
-           ^
            |
       XServiceInfo
-           ^
            |
 LibraryContainerHelper ::utl::OEventListenerAdapter
-              ^        ^
-               \      /
-                \    /
-                 \  /
-                  \/
+      |                           |
+      -----------------------------
+                  |
          SfxLibraryContainer OldBasicPassword
-                        ^      ^
-                         \    /
-                          \  /
-                           \/
+                  |                 |
+                  -------------------
+                            |
                SfxScriptLibraryContainer
 
 basic/source/uno/namecont.cxx
@@ -104,14 +95,70 @@
 
   What are all these other classes for e.g. BasicManagerImpl, BasMgrContainerListenerImpl, BasicLibInfo, BasicLibs, BasicManager
 
+BasicManagerImpl ( basmgr.cxx )
 
+   - internal structure
 
+struct LibraryContainerInfo
+{
+    ::com::sun::star::uno::Reference< com::sun::star::script::XPersistentLibraryContainer > mxScriptCont;
+    ::com::sun::star::uno::Reference< com::sun::star::script::XPersistentLibraryContainer > mxDialogCont;
+    OldBasicPassword* mpOldBasicPassword;
+};
+
+struct BasicManagerImpl
+{
+    LibraryContainerInfo    maContainerInfo;
+
+    // Save stream data
+    SvMemoryStream*  mpManagerStream;
+    SvMemoryStream** mppLibStreams;
+    sal_Int32        mnLibStreamCount;
+    sal_Bool         mbModifiedByLibraryContainer;
+    sal_Bool         mbError;
+};
+
+BasicLibInfo - class storing  the following info 
+
+  StarBASICRef xLib;         - the library
+  String aLibName;           - the name
+  String aStorageName;       - ?
+  String aRelStorageName;    - ?
+  String aPassword;          - self explanitory
+  BOOL bDoLoad;              - preload?
+  BOOL bReference;           - link?
+  BOOL bPasswordVerified;    - 
+  BOOL bFoundInPath;         - ?
+  Reference< XLibraryContainer > mxScriptCont; - uno library storage
+
+BasicLibs derived for ( list of library BasicLibInfo ) - with aBasicLibPath memeber. e.g. a list of BasicLibInfo associated with a path.
+
+The BasicManager holds instance(s) of the BasicManagerImp & BasicLibs classes
+
+so, in the case of a BasicManager created for the document
+   a) SfxObjectShell::InitBasicManager_Impl calls basic::BasicManagerRepository::getDocumentBasicManager( xModel ) which for the initial call actually creates the basic manager ( passing in the storage and pAppBasic ) 
+**note** pAppBasic is actually a pointer to the StdLibrary of application basic
+   b) BasicManager::BasicManger called
+   c) Init() is called, simply just creates instances of BasicLibs and BasicManagerImpl
+   d) ImpCreateStdLib( pParentFromStdLib ) is called to create the standard library. Basically its created, populated and added to the pLibs instance
+   e) after basic::BasicManagerRepository::getDocumentBasicManager( xModel ) creates the basicmanager it tries to bind the library containers ( the uno ones ) if they exist by calling BasicManager::SetLibraryContainerInfo(...) 
 
 
+**Note** SetLibraryContainerInfo also creates the listeners etc. to get notified of any changes via the api
+
 Excel/Import & Basic
 =====================
 
-svx/source/msfilter/svxmsbas.cxx ( etc. etc. ) - I might have some sketchy notes for this somewhere ( perhaps out of date though )
 
+The basic stack is as follows 
+
+   SfxObjectShell::DoLoad 
+   ScDocShell::ConvertFrom  sc/source/ui/docshell/docsh.cxx
+*  SvxImportMSVBasic::ImportCode_Impl svx/source/msfilter/svxmsbas.cxx
+   SvxImportMSVBasic::Import
+   ImportExcel8::ReadBasic  sc/source/filter/excel/excimp8.cxx:310
+   ImportExcel8::Read       sc/source/filter/excel/read.cxx:998
+   ScImportExcel            sc/source/filter/excel/excel.cxx:193
 
+[*] import of dialog is initialted from SvxImportMSVBasic::ImportForms_Impl
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]