Back to index

lightning-sunbird  0.9+nobinonly
Functions
TestMakeAbs.cpp File Reference
#include "nspr.h"
#include "nscore.h"
#include "nsCOMPtr.h"
#include "nsIIOService.h"
#include "nsIServiceManager.h"
#include "nsIComponentRegistrar.h"
#include "nsIURI.h"

Go to the source code of this file.

Functions

static NS_DEFINE_CID (kIOServiceCID, NS_IOSERVICE_CID)
nsresult ServiceMakeAbsolute (nsIURI *baseURI, char *relativeInfo, char **_retval)
nsresult URLMakeAbsolute (nsIURI *baseURI, char *relativeInfo, char **_retval)
int main (int argc, char *argv[])

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 61 of file TestMakeAbs.cpp.

{
    nsresult rv = NS_OK;
    if (argc < 4) {
        printf("usage: %s int (loop count) baseURL relativeSpec\n", argv[0]);
        return -1;
    }

    PRUint32 cycles = atoi(argv[1]);
    char *base = argv[2];
    char *rel  = argv[3];
    {
        nsCOMPtr<nsIServiceManager> servMan;
        NS_InitXPCOM2(getter_AddRefs(servMan), nsnull, nsnull);
        nsCOMPtr<nsIComponentRegistrar> registrar = do_QueryInterface(servMan);
        NS_ASSERTION(registrar, "Null nsIComponentRegistrar");
        if (registrar)
            registrar->AutoRegister(nsnull);

        nsCOMPtr<nsIIOService> serv(do_GetService(kIOServiceCID, &rv));
        if (NS_FAILED(rv)) return rv;

        nsCOMPtr<nsIURI> uri;
        rv = serv->NewURI(base, nsnull, getter_AddRefs(uri));
        if (NS_FAILED(rv)) return rv;

        char *absURLString;
        PRUint32 i = 0;
        while (i++ < cycles) {
            rv = ServiceMakeAbsolute(uri, rel, &absURLString);
            if (NS_FAILED(rv)) return rv;
            nsMemory::Free(absURLString);

            rv = URLMakeAbsolute(uri, rel, &absURLString);
            nsMemory::Free(absURLString);
        }
    } // this scopes the nsCOMPtrs
    // no nsCOMPtrs are allowed to be alive when you call NS_ShutdownXPCOM
    NS_ShutdownXPCOM(nsnull);
    return rv;
}

Here is the call graph for this function:

static NS_DEFINE_CID ( kIOServiceCID  ,
NS_IOSERVICE_CID   
) [static]
nsresult ServiceMakeAbsolute ( nsIURI baseURI,
char *  relativeInfo,
char **  _retval 
)

Definition at line 48 of file TestMakeAbs.cpp.

                                                                                  {
    nsresult rv;
    nsCOMPtr<nsIIOService> serv(do_GetService(kIOServiceCID, &rv));
    if (NS_FAILED(rv)) return rv;

    return serv->MakeAbsolute(relativeInfo, baseURI, _retval);
}

Here is the call graph for this function:

Here is the caller graph for this function:

nsresult URLMakeAbsolute ( nsIURI baseURI,
char *  relativeInfo,
char **  _retval 
)

Definition at line 56 of file TestMakeAbs.cpp.

                                                                              {
    return baseURI->MakeAbsolute(relativeInfo, _retval);
}

Here is the caller graph for this function: