RCOMTypeLibraryInterfaceDefinition-class: Class to represent R interface to a Type Library

RCOMTypeLibraryInterfaceDefinition-classR Documentation

Class to represent R interface to a Type Library

Description

This class is used to represent all the information gathered in processing the contents of a DCOM-related type library to define an R interface to all the classes, enumeration elements, event handlers, etc. in that type library. This is created by a call to generateInterface and the result is an object that contains information about the necessary class definitions, property and method accessor functions, event handler constructors, and enumeration definitions. These can then be written to a connection for use in future R sessions via writeCode. Some incomplete code allows it to be used directly in the current session, or "just in time", via the define function.

Objects from the Class

Objects are typically created using the function generateInterface.

Slots

types:

Object of class "list" a collection of objects describing an R-level interface to the corresponding DCOM type in the type library. These elements are of class RCOMDispatchInterfaceDefinition-class.

enums:

Object of class "list" a collection of objects describing an enumeration definition in the type library. Each object is merely the named integer vector giving the symbolic names and the corresponding value.

events:

Object of class "list" a collection of objects describing the interface to an event source for responding to its event announcements or triggers. Each element is an object of class RCOMEventInterfaceDefinition-class.

externalClasses:

Object of class "list". This is used to store a collection of RCOMTypeLibraryInterfaceDefinition objects. There is one for each of the libraries and their types that are referenced within the original top-level library. This happens when we process a type library to create an R interface to it (via generateInterface) and encounter types for parameters and return values of methods and properties that are not actually defined in the original type library, but rather in secondary libraries. We can generate interfaces to these types in those libraries in the same way we do for the original top-level/initial library and we store these interfaces in this slot.

coclass:

a list. The co-class interfaces of interest in this library.

referencedClasses:

a list. This identifies types in the library that are return types, parameter types, or property types that were encountered indirectly when processing the specified elements of the library.

typeEventMap:

a list. Information about the events in the classes of this interface

uuids:

Methods

writeCode

signature(def = "RCOMTypeLibraryInterfaceDefinition", file = "character"): write the R code contained in this interface definition to a directory or file. This is responsible for creating the necessary connections to the files and then writing the code.

writeCode

signature(def = "RCOMTypeLibraryInterfaceDefinition", file = "ANY"): write this code to the specified connection.

Author(s)

Duncan Temple Lang <duncan@wald.ucdavis.edu>

References

http://msdn.microsoft.com/library http://www.omegahat.org/RWinTypeLibs

See Also

generateInterface writeCode

It may be useful to look at non-exported functions in generate.S and referencedClasses.S to see how the entire thing works and how it can be changed. This interface is not cast in stone. We want others to be able to explore alternatives, ideally by extending or parameterizing the mechanism rather than presenting an entirely parallel but similar mechanism.


omegahat/SWinTypeLibs documentation built on Jan. 17, 2024, 6:40 p.m.