Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
nsGenericInterfaceInfo Class Reference

#include <iixprivate.h>

Inheritance diagram for nsGenericInterfaceInfo:
Inheritance graph
[legend]
Collaboration diagram for nsGenericInterfaceInfo:
Collaboration graph
[legend]

List of all members.

Public Member Functions

NS_DECL_ISUPPORTS
NS_DECL_NSIINTERFACEINFO
NS_DECL_NSIGENERICINTERFACEINFO 
nsGenericInterfaceInfo (nsGenericInterfaceInfoSet *aSet, const char *aName, const nsIID &aIID, nsIInterfaceInfo *aParent, PRUint8 aFlags)
virtual ~nsGenericInterfaceInfo ()
PRUint16 appendMethod (in XPTMethodDescriptorPtr aMethod)
 All members except params* and result* copied.
PRUint16 appendConst (in XPTConstDescriptorPtr aConst)
 All members copied.
PRBool isScriptable ()
void getMethodInfo (in PRUint16 index,[shared, retval] out nsXPTMethodInfoPtr info)
 These include methods and constants for parent (and all ancestors).
void getMethodInfoForName (in string methodName, out PRUint16 index,[shared, retval] out nsXPTMethodInfoPtr info)
void getConstant (in PRUint16 index,[shared, retval] out nsXPTConstantPtr constant)
nsIInterfaceInfo getInfoForParam (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param)
 Get the interface information or iid associated with a param of some method in this interface.
nsIIDPtr getIIDForParam (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param)
nsXPTType getTypeForParam (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param, in PRUint16 dimension)
 These do not make copies ***explicit bending of XPCOM rules***.
PRUint8 getSizeIsArgNumberForParam (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param, in PRUint16 dimension)
PRUint8 getLengthIsArgNumberForParam (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param, in PRUint16 dimension)
PRUint8 getInterfaceIsArgNumberForParam (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param)
PRBool isIID (in nsIIDPtr IID)
void getNameShared ([shared, retval] out string name)
void getIIDShared ([shared, retval] out nsIIDPtrShared iid)
PRBool isFunction ()
PRBool hasAncestor (in nsIIDPtr iid)
nsresult getIIDForParamNoAlloc (in PRUint16 methodIndex,[const ] in nsXPTParamInfoPtr param, out nsIID iid)

Public Attributes

readonly attribute string name
readonly attribute nsIIDPtr InterfaceIID
readonly attribute nsIInterfaceInfo parent
readonly attribute PRUint16 methodCount
 These include counts for parent (and all ancestors).
readonly attribute PRUint16 constantCount

Private Member Functions

 nsGenericInterfaceInfo ()
const XPTTypeDescriptorGetPossiblyNestedType (const XPTParamDescriptor *param)
const XPTTypeDescriptorGetTypeInArray (const XPTParamDescriptor *param, PRUint16 dimension)

Private Attributes

char * mName
nsIID mIID
nsVoidArray mMethods
nsVoidArray mConstants
nsGenericInterfaceInfoSetmSet
nsIInterfaceInfomParent
PRUint16 mMethodBaseIndex
PRUint16 mConstantBaseIndex
PRUint8 mFlags

Detailed Description

Definition at line 121 of file iixprivate.h.


Constructor & Destructor Documentation

Definition at line 334 of file nsGenericInterfaceInfoSet.cpp.

    : mName(nsnull),
      mIID(aIID),
      mSet(aSet),
      mParent(aParent),
      mFlags(aFlags)
{
    if(mParent)
    {
        mParent->GetMethodCount(&mMethodBaseIndex);
        mParent->GetConstantCount(&mConstantBaseIndex);
    }
    else
    {
        mMethodBaseIndex = mConstantBaseIndex = 0;
    }

    int len = PL_strlen(aName);
    mName = (char*) XPT_MALLOC(mSet->GetArena(), len+1);
    if(mName)
        memcpy(mName, aName, len);
}

Here is the call graph for this function:

virtual nsGenericInterfaceInfo::~nsGenericInterfaceInfo ( ) [inline, virtual]

Definition at line 133 of file iixprivate.h.

    {
    }

Member Function Documentation

All members copied.

All members except params* and result* copied.

void nsIInterfaceInfo::getConstant ( in PRUint16  index,
[shared, retval] out nsXPTConstantPtr  constant 
) [inherited]
nsIIDPtr nsIInterfaceInfo::getIIDForParam ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param 
) [inherited]
nsresult nsIInterfaceInfo::getIIDForParamNoAlloc ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param,
out nsIID  iid 
) [inherited]
void nsIInterfaceInfo::getIIDShared ( [shared, retval] out nsIIDPtrShared  iid) [inherited]
nsIInterfaceInfo nsIInterfaceInfo::getInfoForParam ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param 
) [inherited]

Get the interface information or iid associated with a param of some method in this interface.

PRUint8 nsIInterfaceInfo::getInterfaceIsArgNumberForParam ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param 
) [inherited]
PRUint8 nsIInterfaceInfo::getLengthIsArgNumberForParam ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param,
in PRUint16  dimension 
) [inherited]
void nsIInterfaceInfo::getMethodInfo ( in PRUint16  index,
[shared, retval] out nsXPTMethodInfoPtr  info 
) [inherited]

These include methods and constants for parent (and all ancestors).

These do not make copies ***explicit bending of XPCOM rules***.

void nsIInterfaceInfo::getMethodInfoForName ( in string  methodName,
out PRUint16  index,
[shared, retval] out nsXPTMethodInfoPtr  info 
) [inherited]
void nsIInterfaceInfo::getNameShared ( [shared, retval] out string  name) [inherited]

Definition at line 140 of file iixprivate.h.

    {
        const XPTTypeDescriptor* td = &param->type;
        while(XPT_TDP_TAG(td->prefix) == TD_ARRAY)
            td = mSet->GetAdditionalTypeAt(td->type.additional_type);
        return td;
    }

Here is the call graph for this function:

PRUint8 nsIInterfaceInfo::getSizeIsArgNumberForParam ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param,
in PRUint16  dimension 
) [inherited]
nsXPTType nsIInterfaceInfo::getTypeForParam ( in PRUint16  methodIndex,
[const ] in nsXPTParamInfoPtr  param,
in PRUint16  dimension 
) [inherited]

These do not make copies ***explicit bending of XPCOM rules***.

Definition at line 148 of file iixprivate.h.

    {
        const XPTTypeDescriptor* td = &param->type;
        for(PRUint16 i = 0; i < dimension; i++)
        {
            NS_ASSERTION(XPT_TDP_TAG(td->prefix) == TD_ARRAY, "bad dimension");
            td = mSet->GetAdditionalTypeAt(td->type.additional_type);
        }
        return td;
    }

Here is the call graph for this function:

PRBool nsIInterfaceInfo::hasAncestor ( in nsIIDPtr  iid) [inherited]
PRBool nsIInterfaceInfo::isIID ( in nsIIDPtr  IID) [inherited]

Member Data Documentation

Definition at line 75 of file nsIInterfaceInfo.idl.

readonly attribute nsIIDPtr nsIInterfaceInfo::InterfaceIID [inherited]

Definition at line 65 of file nsIInterfaceInfo.idl.

Definition at line 168 of file iixprivate.h.

Definition at line 164 of file iixprivate.h.

These include counts for parent (and all ancestors).

Definition at line 74 of file nsIInterfaceInfo.idl.

Definition at line 169 of file iixprivate.h.

Definition at line 162 of file iixprivate.h.

Definition at line 167 of file iixprivate.h.

Definition at line 163 of file iixprivate.h.

Definition at line 161 of file iixprivate.h.

Definition at line 166 of file iixprivate.h.

Definition at line 165 of file iixprivate.h.

readonly attribute string nsIInterfaceInfo::name [inherited]

Definition at line 64 of file nsIInterfaceInfo.idl.

Definition at line 69 of file nsIInterfaceInfo.idl.


The documentation for this class was generated from the following files: