Changeset 210


Ignore:
Timestamp:
10/22/10 18:46:49 (14 years ago)
Author:
tim
Message:

beginnings of pyregfi documentation build script

Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • Doxyfile.regfi

    r209 r210  
    2626# by quotes) that should identify the project.
    2727
    28 PROJECT_NAME           = reglookup
     28PROJECT_NAME           = regfi
    2929
    3030# The PROJECT_NUMBER tag can be used to enter a project or revision number.
     
    215215# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
    216216# .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.
    218219
    219220EXTENSION_MAPPING      =
     
    412413SORT_BRIEF_DOCS        = NO
    413414
    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.
    415422
    416423SORT_MEMBERS_CTORS_1ST = NO
     
    575582# with spaces.
    576583
    577 INPUT                  = trunk/lib trunk/include
     584INPUT                  = trunk/lib trunk/include trunk/python/pyregfi
    578585
    579586# This tag can be used to specify the character encoding of the source files
     
    831838# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
    832839# 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.
    834842
    835843GENERATE_DOCSET        = NO
     
    924932QHP_CUST_FILTER_NAME   =
    925933
    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
    927936# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
    928937
     
    948957# files needs to be copied into the plugins directory of eclipse. The name of
    949958# 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.
    951961
    952962GENERATE_ECLIPSEHELP   = NO
     
    9981008FORMULA_FONTSIZE       = 10
    9991009
    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
    10021015# typically be disabled. For large projects the javascript based search engine
    10031016# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
     
    10051018SEARCHENGINE           = YES
    10061019
    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
    10091026# and does not have live searching capabilities.
    10101027
     
    10901107LATEX_HIDE_INDICES     = NO
    10911108
    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.
    10931112
    10941113LATEX_SOURCE_CODE      = NO
     
    13381357# a tag file that is based on the input files it reads.
    13391358
    1340 GENERATE_TAGFILE       =
     1359GENERATE_TAGFILE       = doc/regfi/regfi.tags
    13411360
    13421361# If the ALLEXTERNALS tag is set to YES all external classes will be listed
  • trunk/python/pyregfi/__init__.py

    r209 r210  
    11#!/usr/bin/env python
     2
     3## @package pyregfi
     4# Python interface to the regfi library.
     5#
    26
    37import sys
     
    106110
    107111
    108 
    109 regfi.regfi_get_value
    110 
    111112regfi.regfi_init.argtypes = []
    112113regfi.regfi_init.restype = None
     
    114115
    115116
     117## Retrieves messages produced by regfi during parsing and interpretation
     118#
    116119def GetLogMessages():
    117120    msgs = regfi.regfi_log_get_str()
     
    142145
    143146    return ret_val
    144                
    145 
     147
     148
     149## Abstract class which Handles memory management and proxies attribute
     150#  access to base structures 
    146151class _StructureWrapper():
    147     "Handles memory management and proxies attribute access to base structures"
     152
    148153    hive = None
    149154    base = None
     
    166171        return (not self.__eq__(other))
    167172
    168 
     173## Registry key
    169174class Key(_StructureWrapper):
    170175    pass
     
    173178    pass
    174179
     180## Registry value data
    175181class Data(_StructureWrapper):
    176182    pass
    177183
     184## Registry security record/permissions
    178185class Security(_StructureWrapper):
    179186    pass
     
    277284
    278285
     286## Registry value (metadata)
     287#
     288# These represent registry values (@ref REGFI_VK records) and provide
     289# access to their associated data.
     290#
    279291class Value(_StructureWrapper):
    280292    def __getattr__(self, name):
     
    343355
    344356
    345 class Hive():   
     357## Represents a single registry hive (file)
     358#
     359class Hive():
    346360    file = None
    347361    raw_file = None
     
    366380        return getattr(self.file.contents, name)
    367381   
    368     def __del__(self):   
     382    def __del__(self):
    369383        regfi.regfi_free(self.file)
    370384        if self.raw_file != None:
     
    375389        return HiveIterator(self)
    376390
     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.
    377395    def subtree(self, path):
    378396        hi = HiveIterator(self)
     
    381399
    382400
     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.
    383413class HiveIterator():
    384414    hive = None
     
    419449                raise StopIteration('')
    420450           
     451            # XXX: Use non-generic exception
    421452            if not regfi.regfi_iterator_down(self.iter):
    422453                raise Exception('Error traversing iterator downward.'+
     
    439470        apath = (c_char_p*len(path))(*cpath)
    440471
     472        # XXX: Use non-generic exception
    441473        if not regfi.regfi_iterator_walk_path(self.iter,apath):
    442474            raise Exception('Could not locate path.\n'+GetLogMessages())
     
    444476    def current_key(self):
    445477        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.