WvStreams
|
#include <xplc/IMoniker.h>
Public Member Functions | |
virtual IObject * | resolve (const char *moniker)=0 |
Given a moniker string, return the IObject it refers to, or NULL if no objects match. More... | |
virtual unsigned int | addRef ()=0 |
Indicate you are using this object. More... | |
virtual unsigned int | release ()=0 |
Indicate that you are finished using this object. More... | |
virtual IObject * | getInterface (const UUID &)=0 |
Returns the requested XPLC interface. More... | |
virtual IWeakRef * | getWeakRef ()=0 |
Return a weak reference to this object. More... | |
An interface for obtaining an IObject given a moniker string.
A moniker can be used to obtain a particular object using a human-readable string to describe it, rather than having to know the object's UUID. Human-readable strings are, unfortunately, not guaranteed to be universally unique, so you might (theoretically) not get the object you want.
You can retrieve the standard XPLC moniker service from the service manager using the XPLC_monikers UUID, which can then be used to resolve monikers and register your own using the IMonikerService interface it provides.
Note that XPLC::get() and XPLC::create() are a convenient interface to the XPLC moniker system.
Definition at line 50 of file IMoniker.h.
|
pure virtual |
Given a moniker string, return the IObject it refers to, or NULL if no objects match.
The returned object is already addRef()'d.
Implemented in MonikerService, and NewMoniker.
Referenced by NewMoniker::resolve(), and MonikerService::resolve().
|
pure virtualinherited |
Indicate you are using this object.
This increases the reference count of the object by one. Usually, when the reference count reaches zero, the object is freed automatically.
This called a "strong reference", because they will prevent the object from being destroyed. They should thus be used carefully, as they control the lifetime of the object. For example, you do not need to call addRef() on object passed as parameters, unless you intend on keeping them.
addRef() is often called automatically for you in XPLC, but you'll have to call release() by hand sometimes unless you use xplc_ptr.
Referenced by WvIStreamList::execute(), IObjectImplInternal::getInterface(), StaticServiceHandler::getObject(), WeakRef::getObject(), WvIStreamList::post_select(), WvQtStreamClone::WvQtStreamClone(), and WvSSLStream::WvSSLStream().
|
pure virtualinherited |
Indicate that you are finished using this object.
This decreases the reference count of the object by one. Usually, when the reference count reaches zero, the object is freed automatically.
You will usually need to manually release() any object given to you by any other XPLC function, unless you give the object to someone else who will call release.
If you use xplc_ptr, it will do this for you.
Referenced by WvIStreamList::execute(), mutate(), NewMoniker::resolve(), and MonikerService::resolve().
Returns the requested XPLC interface.
Will return NULL if the interface is not supported. The returned interface has been addRef()ed, so you will need to release() it when done. Note that the interface returned may be a pointer to the same object or a different one - that's none of your business. Asking for the IObject interface should always return the same pointer for a given logical object, so this can be used for comparison by identity.
You should probably use the convenient mutate() and get() functions instead of this, or use an xplc_ptr, which mutates the object for you.
|
pure virtualinherited |