comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: creating documentation file
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: creating documentation file [message #43122 is a reply to message #43121] Tue, 15 March 2005 08:14 Go to previous messageGo to previous message
Antonio Santiago is currently offline  Antonio Santiago
Messages: 201
Registered: February 2004
Senior Member
I created my own perl script:
http://asantiago.gentelibre.org/index.php/archives/2004/12/0 1/a-perlscript-for-idl-documentation-generator/

but I change to IDLdoc when I found it:
http://asantiago.gentelibre.org/index.php/archives/2005/03/0 1/idldoc-documentation-utility/

Also attach a file that use IDLdoc syntax.





;+
; @file_comments Product class represents a radar product to
; generate. Maintains associations with the plugins which is based
; plugin information and parent dependencies.
;
; @author Antonio Santiago
; (santiago\@grahi.upc.edu - http://asantiago.gentelibre.org)
;
; @requires linkedlist logmsg
;
; @field parents Linkedlist of products that represnts parent or input
; dependencies
; @field children Linkedlist of products that represent children
; dependencies.
; @field executed Indicates if the product has been generated.
; @field name Name of the product.
; @field description Description of the product.
; @field plugin Plugin object that implements the product.
; @field plugin_info PluginInfo object that has the plugin
; information.
;
; @history
;
; Fri Jan 14 17:08:04 2005, Antonio Santiago
; (santiago\@grahi.upc.edu - http://asantiago.gentelibre.org)
;-
PRO Product__define
struct = { Product, $
parents: OBJ_NEW(), $
children: OBJ_NEW(), $

executed: 0B, $

name: '', $
description: '', $

plugin: OBJ_NEW(), $ ;'Plugin' object
plugin_info: OBJ_NEW() $ ;'PluginInfo' object
}
END


;+
; Creates and initializes the object.
;
; @returns 1 if successful; 0 otherwise
;
; @private
;-
FUNCTION Product::Init
self.parents = OBJ_NEW('linkedlist')
self.children = OBJ_NEW('linkedlist')
RETURN, 1
END


;+
; Frees the resources used by the object.
;
; @private
;-
PRO Product::Cleanup
;;Frees Plugin and PluginInfo objects
OBJ_DESTROY, [self.parents, self.children, self.plugin, $
self.plugin_info]
END


;+
; Set individual property values.
;
; @keyword name {in}{optional}{type=string} Name of the product.
; @keyword description {in}{optional}{type=string} Description of the
; products.
;-
PRO Product::SetProperty, NAME=name, DESCRIPTION=description
IF N_ELEMENTS(name) THEN self.name = name
IF N_ELEMENTS(description) THEN self.description = description
END
;+
; Get individual properties.
; <i>(See SetProperty methos)</i>
;-
PRO Product::GetProperty, NAME=name, DESCRIPTION=description
IF ARG_PRESENT(name) THEN name = self.name
IF ARG_PRESENT(description) THEN description = self.description
END


;+
; Sets a parent dependency for the object and automatically sets a
; reference from parent to child.
;
; @param product {in}{required}{type=Product} Product object that
; represents a parent dependency.
;-
PRO Product::AddParent, product
IF NOT OBJ_ISA(product, 'Product') THEN BEGIN
logmsg, 'ERROR', 'The object is not a Product object !!!'
RETURN
ENDIF
self.parents->Add, product
END


;+
; Sets a child dependency for the object and set a reference from
; child to parent.
;
; @param product {in}{required}{type=Product} Product object that
; represents a child dependency.
;-
PRO Product::AddChild, product
IF NOT OBJ_ISA(product, 'Product') THEN BEGIN
logmsg, 'ERROR', 'The object is not a PRODUCT object !!!'
RETURN
ENDIF
self.children->Add, product
END


;+
; Gets the parent dependencies of the product
;
; @returns Linkedlist of Product.
;-
FUNCTION Product::GetParents
RETURN, self.parents
END


;+
; Gets the children referencies.
;
; @returns Linkedlist of Products
;-
FUNCTION Product::GetChildren
RETURN, self.children
END


;+
; Executes the plugin associated with the Product to generate the
; output data.
;-
PRO Product::MakeProduct

;;Test if it was executed yet
IF self.executed THEN RETURN

;;Test if all parents are executed before.
num = self.parents->Get_Count()
executed = 1
i = 0
WHILE i LT num AND executed EQ 1 DO BEGIN
product = self.parents->Get_Item(i, /DEREFERENCE)
executed = product.executed
i++
ENDWHILE
IF executed NE 1 THEN RETURN

;;Collect the input parameters for the Product.
input_params = self.plugin_info->CollectInputData()
self.plugin->SetInputData, input_params

;;The node is not executed yet. We execute it and all its children
logmsg, 'DEBUG', 'Go to execute the plugin of the product: ' + self.name
result = self.plugin->Execute()
logmsg, 'DEBUG', 'Result was: ' + STRING(result)

;;Test if there was errors.
;;If all is ok then mars as executed, otherwise returns and
;;don't execute its children.
IF result EQ 1 THEN self.executed = 1 $
ELSE RETURN

num = self.children->Get_Count()
FOR i=0, num-1 DO BEGIN
product = self.children->Get_Item(i, /DEREFERENCE)
product->MakeProduct
ENDFOR
END


;+
; Sets the Plugin object on which is based the Product.
;
; @param plugin {in}{required}{type=Plugin} Plugin on which is
; related.
;-
PRO Product::SetPlugin, plugin
IF NOT OBJ_ISA(plugin, 'Plugin') THEN BEGIN
logmsg, 'ERROR', 'The object is not a PLUGIN object !!!'
RETURN
ENDIF
self.plugin = plugin
END


;+
; Sets the PluginInfo object that stores the Plugin information.
;
; @param plugin_info {in}{required}{type=PluginInfo} PluginInfo object.
;-
PRO Product::SetPluginInfo, plugin_info
IF NOT OBJ_ISA(plugin_info, 'PluginInfo') THEN BEGIN
logmsg, 'ERROR', 'The object is not a PLUGIN_INFO object !!!'
RETURN
ENDIF
self.plugin_info = plugin_info
END


;+
; Creates an association from PluginInfo to Plugin object of the
; Product.
;
; @pre Product object must has references to a valid Plugin and
; PluginInfo objects.
;-
PRO Product::AssocPluginInfo2Plugin
IF OBJ_ISA(self.plugin, 'Plugin') AND $
OBJ_ISA(self.plugin_info, 'PluginInfo') THEN BEGIN
self.plugin_info->SetPlugin, self.plugin
ENDIF
END


;+
; Gets the Plugin object on which the Product is based.
;
; @returns Plugin
;-
FUNCTION Product::GetPlugin
RETURN, self.plugin
END


;+
; Gets the PluginInfo object with the information of the Plugin on
; which the Product is based.
;
; @returns PluginInfo
;-
FUNCTION Product::GetPluginInfo
RETURN, self.plugin_info
END
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: robust outlier detection (spikes in data)
Next Topic: Re: objets solarsoft

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 08:58:49 PDT 2025

Total time taken to generate the page: 1.58353 seconds