Changeset 210
- Timestamp:
- 10/22/10 18:46:49 (14 years ago)
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Doxyfile.regfi
r209 r210 26 26 # by quotes) that should identify the project. 27 27 28 PROJECT_NAME = reg lookup28 PROJECT_NAME = regfi 29 29 30 30 # The PROJECT_NUMBER tag can be used to enter a project or revision number. … … 215 215 # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat 216 216 # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), 217 # use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. 217 # use: inc=Fortran f=C. Note that for custom extensions you also need to set 218 # FILE_PATTERNS otherwise the files are not read by doxygen. 218 219 219 220 EXTENSION_MAPPING = … … 412 413 SORT_BRIEF_DOCS = NO 413 414 414 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. 415 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort 416 # the (brief and detailed) documentation of class members so that constructors 417 # and destructors are listed first. If set to NO (the default) the 418 # constructors will appear in the respective orders defined by 419 # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief 420 # docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if 421 # SORT_MEMBER_DOCS is set to NO. 415 422 416 423 SORT_MEMBERS_CTORS_1ST = NO … … 575 582 # with spaces. 576 583 577 INPUT = trunk/lib trunk/include 584 INPUT = trunk/lib trunk/include trunk/python/pyregfi 578 585 579 586 # This tag can be used to specify the character encoding of the source files … … 831 838 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 832 839 # it at startup. 833 # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. 840 # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for 841 # more information. 834 842 835 843 GENERATE_DOCSET = NO … … 924 932 QHP_CUST_FILTER_NAME = 925 933 926 # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see 934 # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the 935 # custom filter to add.For more information please see 927 936 # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. 928 937 … … 948 957 # files needs to be copied into the plugins directory of eclipse. The name of 949 958 # the directory within the plugins directory should be the same as 950 # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears. 959 # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted 960 # before the help appears. 951 961 952 962 GENERATE_ECLIPSEHELP = NO … … 998 1008 FORMULA_FONTSIZE = 10 999 1009 1000 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for the HTML output. The underlying search engine uses javascript 1001 # and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) there is already a search function so this one should 1010 # When the SEARCHENGINE tag is enabled doxygen will generate a search box 1011 # for the HTML output. The underlying search engine uses javascript 1012 # and DHTML and should work on any modern browser. Note that when using HTML 1013 # help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) 1014 # there is already a search function so this one should 1002 1015 # typically be disabled. For large projects the javascript based search engine 1003 1016 # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. … … 1005 1018 SEARCHENGINE = YES 1006 1019 1007 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index 1008 # file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup 1020 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be 1021 # implemented using a PHP enabled web server instead of at the web client using 1022 # Javascript. Doxygen will generate the search PHP script and index 1023 # file to put on the web server. The advantage of the server based approach is 1024 # that it scales better to large projects and allows full text search. The 1025 # disadvances is that it is more difficult to setup 1009 1026 # and does not have live searching capabilities. 1010 1027 … … 1090 1107 LATEX_HIDE_INDICES = NO 1091 1108 1092 # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. 1109 # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code 1110 # with syntax highlighting in the LaTeX output. Note that which sources are 1111 # shown also depends on other settings such as SOURCE_BROWSER. 1093 1112 1094 1113 LATEX_SOURCE_CODE = NO … … 1338 1357 # a tag file that is based on the input files it reads. 1339 1358 1340 GENERATE_TAGFILE = 1359 GENERATE_TAGFILE = doc/regfi/regfi.tags 1341 1360 1342 1361 # If the ALLEXTERNALS tag is set to YES all external classes will be listed -
trunk/python/pyregfi/__init__.py
r209 r210 1 1 #!/usr/bin/env python 2 3 ## @package pyregfi 4 # Python interface to the regfi library. 5 # 2 6 3 7 import sys … … 106 110 107 111 108 109 regfi.regfi_get_value110 111 112 regfi.regfi_init.argtypes = [] 112 113 regfi.regfi_init.restype = None … … 114 115 115 116 117 ## Retrieves messages produced by regfi during parsing and interpretation 118 # 116 119 def GetLogMessages(): 117 120 msgs = regfi.regfi_log_get_str() … … 142 145 143 146 return ret_val 144 145 147 148 149 ## Abstract class which Handles memory management and proxies attribute 150 # access to base structures 146 151 class _StructureWrapper(): 147 "Handles memory management and proxies attribute access to base structures" 152 148 153 hive = None 149 154 base = None … … 166 171 return (not self.__eq__(other)) 167 172 168 173 ## Registry key 169 174 class Key(_StructureWrapper): 170 175 pass … … 173 178 pass 174 179 180 ## Registry value data 175 181 class Data(_StructureWrapper): 176 182 pass 177 183 184 ## Registry security record/permissions 178 185 class Security(_StructureWrapper): 179 186 pass … … 277 284 278 285 286 ## Registry value (metadata) 287 # 288 # These represent registry values (@ref REGFI_VK records) and provide 289 # access to their associated data. 290 # 279 291 class Value(_StructureWrapper): 280 292 def __getattr__(self, name): … … 343 355 344 356 345 class Hive(): 357 ## Represents a single registry hive (file) 358 # 359 class Hive(): 346 360 file = None 347 361 raw_file = None … … 366 380 return getattr(self.file.contents, name) 367 381 368 def __del__(self): 382 def __del__(self): 369 383 regfi.regfi_free(self.file) 370 384 if self.raw_file != None: … … 375 389 return HiveIterator(self) 376 390 391 ## Creates a @ref HiveIterator initialized at the specified path in 392 # the hive. 393 # 394 # Raises an Exception if the path could not be found/traversed. 377 395 def subtree(self, path): 378 396 hi = HiveIterator(self) … … 381 399 382 400 401 ## A special purpose iterator for registry hives 402 # 403 # Iterating over an object of this type causes all keys in a specific 404 # hive subtree to be returned in a depth-first manner. These iterators 405 # are typically created using the @ref Hive.subtree() function on a @ref Hive 406 # object. 407 # 408 # HiveIterators can also be used to manually traverse up and down a 409 # registry hive as they retain information about the current position in 410 # the hive, along with which iteration state for subkeys and values for 411 # every parent key. See the @ref up and @ref down methods for more 412 # information. 383 413 class HiveIterator(): 384 414 hive = None … … 419 449 raise StopIteration('') 420 450 451 # XXX: Use non-generic exception 421 452 if not regfi.regfi_iterator_down(self.iter): 422 453 raise Exception('Error traversing iterator downward.'+ … … 439 470 apath = (c_char_p*len(path))(*cpath) 440 471 472 # XXX: Use non-generic exception 441 473 if not regfi.regfi_iterator_walk_path(self.iter,apath): 442 474 raise Exception('Could not locate path.\n'+GetLogMessages()) … … 444 476 def current_key(self): 445 477 return Key(self.hive, regfi.regfi_iterator_cur_key(self.iter)) 478 479 #XXX Add subkey/value search accessor functions (?)
Note: See TracChangeset
for help on using the changeset viewer.