Difference between revisions of "Uno/Cpp/Spec/FreeReference"
From Apache OpenOffice Wiki
m (→API: Added header names.) |
m (→API: Fixed <code> tag ...) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | Type: Specification State: Evolving Availability: URE 1.3 (SRC680_m212) | |
− | Type: | + | |
− | == | + | ==Feature== |
+ | A free reference, ensuring that the managing environment has always been entered when calling an object. | ||
− | == | + | ==API== |
− | + | <source lang="cpp"> | |
+ | cppu/FreeReference.hxx | ||
− | + | template<class T> FreeReference | |
− | + | FreeReference() {} | |
− | + | FreeReference(cssuno::Reference<T> const & xRef) | |
− | + | FreeReference(EnvAwareReference<T> const & rOther) | |
− | template<class T> | + | |
− | + | ||
− | + | ||
− | + | ||
cssuno::Reference<T> get() const throw (cssuno::RuntimeException) | cssuno::Reference<T> get() const throw (cssuno::RuntimeException) | ||
Line 26: | Line 23: | ||
void clear() | void clear() | ||
− | + | FreeReference<T> & operator = (FreeReference<T> const & rOther) | |
void set(cssuno::Reference<T> const & xRef) | void set(cssuno::Reference<T> const & xRef) | ||
− | bool operator == ( | + | bool operator == (FreeReference const & rOther) const |
+ | |||
+ | bool operator != (FreeReference const & rOther) const | ||
+ | </source> | ||
+ | |||
+ | ==Usage Example== | ||
+ | {{:Uno/Cpp/Snippet/FreeReference}} | ||
− | + | More Examples: | |
− | + | * [[Uno/Cpp/Snippet/Function always returning an appropriate object]] | |
− | + | ==Dependencies== | |
− | * | + | * [[Uno/Cpp/Spec/Environment]] |
− | * | + | * [[Uno/Cpp/Spec/Environment Stack]] |
− | [[Category: | + | [[Category:Evolving]] |
− | [[Category:Uno: | + | [[Category:Spec]] |
+ | [[Category:Uno]] | ||
+ | [[Category:Uno:Cpp]] |
Latest revision as of 12:32, 12 March 2009
Type: Specification State: Evolving Availability: URE 1.3 (SRC680_m212)
Contents
Feature
A free reference, ensuring that the managing environment has always been entered when calling an object.
API
cppu/FreeReference.hxx template<class T> FreeReference FreeReference() {} FreeReference(cssuno::Reference<T> const & xRef) FreeReference(EnvAwareReference<T> const & rOther) cssuno::Reference<T> get() const throw (cssuno::RuntimeException) operator cssuno::Reference<T> () const throw (cssuno::RuntimeException) T * operator -> () const throw (cssuno::RuntimeException) bool is() const throw (cssuno::RuntimeException) void clear() FreeReference<T> & operator = (FreeReference<T> const & rOther) void set(cssuno::Reference<T> const & xRef) bool operator == (FreeReference const & rOther) const bool operator != (FreeReference const & rOther) const
Usage Example
#include <cppu/EnvGuards.hxx> ... { com::sun::star::uno::Reference<XFoo> ref(...) ... cppu::FreeReference<XFoo> free_xFoo(xFoo); cppu::EnvGuard otherEnv(cppu::Environment("just another env")); free_xFoo->doSomething(); // the free reference ensures that the correct environment etc. gets activated before invokation ... }
More Examples: