Back to index

lightning-sunbird  0.9+nobinonly
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
XPCNativeScriptableSharedMap Class Reference

#include <xpcmaps.h>

Collaboration diagram for XPCNativeScriptableSharedMap:
Collaboration graph
[legend]

List of all members.

Classes

struct  Entry

Public Member Functions

JSBool GetNewOrUsed (JSUint32 flags, char *name, PRBool isGlobal, XPCNativeScriptableInfo *si)
uint32 Count ()
uint32 Enumerate (JSDHashEnumerator f, void *arg)
 ~XPCNativeScriptableSharedMap ()

Static Public Member Functions

static
XPCNativeScriptableSharedMap
newMap (int size)

Private Member Functions

 XPCNativeScriptableSharedMap ()
 XPCNativeScriptableSharedMap (int size)

Private Attributes

JSDHashTablemTable

Detailed Description

Definition at line 581 of file xpcmaps.h.


Constructor & Destructor Documentation

Definition at line 575 of file xpcmaps.cpp.

Here is the call graph for this function:

Definition at line 570 of file xpcmaps.cpp.

{
    mTable = JS_NewDHashTable(&Entry::sOps, nsnull, sizeof(Entry), size);
}

Here is the call graph for this function:


Member Function Documentation

Definition at line 604 of file xpcmaps.h.

{return mTable->entryCount;}

Here is the caller graph for this function:

uint32 XPCNativeScriptableSharedMap::Enumerate ( JSDHashEnumerator  f,
void arg 
) [inline]

Definition at line 605 of file xpcmaps.h.

Here is the call graph for this function:

JSBool XPCNativeScriptableSharedMap::GetNewOrUsed ( JSUint32  flags,
char *  name,
PRBool  isGlobal,
XPCNativeScriptableInfo si 
)

Definition at line 582 of file xpcmaps.cpp.

{
    NS_PRECONDITION(name,"bad param");
    NS_PRECONDITION(si,"bad param");

    XPCNativeScriptableShared key(flags, name);

    Entry* entry = (Entry*)
        JS_DHashTableOperate(mTable, &key, JS_DHASH_ADD);
    if(!entry)
        return JS_FALSE;

    XPCNativeScriptableShared* shared = entry->key;

    if(!shared)
    {
        entry->key = shared =
            new XPCNativeScriptableShared(flags, key.TransferNameOwnership());
        if(!shared)
            return JS_FALSE;
        shared->PopulateJSClass(isGlobal);
    }
    si->SetScriptableShared(shared);
    return JS_TRUE;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 560 of file xpcmaps.cpp.

{
    XPCNativeScriptableSharedMap* map =
        new XPCNativeScriptableSharedMap(size);
    if(map && map->mTable)
        return map;
    delete map;
    return nsnull;
}

Member Data Documentation

Definition at line 613 of file xpcmaps.h.


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