LibreOffice Module bridges (master)  1
Namespaces | Classes | Functions
bridges::cpp_uno::shared Namespace Reference

Namespaces

 bridges
 

Classes

class  Bridge
 Holding environments and mappings. More...
 
class  CppInterfaceProxy
 A cpp proxy wrapping a uno interface. More...
 
class  UnoInterfaceProxy
 A uno proxy wrapping a cpp interface. More...
 
class  VtableFactory
 Hand out vtable structures for interface type descriptions. More...
 
struct  VtableSlot
 Represents a vtable slot of a C++ class. More...
 

Functions

void unoInterfaceProxyDispatch (uno_Interface *pUnoI, const typelib_TypeDescription *pMemberDescr, void *pReturn, void *pArgs[], uno_Any **ppException)
 
void unoInterfaceProxyDispatch (uno_Interface *pUnoI, typelib_TypeDescription const *pMemberDescr, void *pReturn, void **pArgs, uno_Any **ppException)
 
void freeMapping (uno_Mapping *pMapping)
 
void acquireMapping (uno_Mapping *pMapping)
 
void releaseMapping (uno_Mapping *pMapping)
 
void cpp2unoMapping (uno_Mapping *pMapping, void **ppUnoI, void *pCppI, typelib_InterfaceTypeDescription *pTypeDescr)
 
void uno2cppMapping (uno_Mapping *pMapping, void **ppCppI, void *pUnoI, typelib_InterfaceTypeDescription *pTypeDescr)
 
void freeCppInterfaceProxy (uno_ExtEnvironment *pEnv, void *pInterface)
 
bool isSimpleType (typelib_TypeClass typeClass)
 Determines whether a type is a "simple" type (VOID, BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED LONG, HYPER, UNSIGNED HYPER, FLOAT, DOUBLE, CHAR, or an enum type). More...
 
bool isSimpleType (typelib_TypeDescriptionReference const *type)
 Determines whether a type is a "simple" type (VOID, BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED LONG, HYPER, UNSIGNED HYPER, FLOAT, DOUBLE, CHAR, or an enum type). More...
 
bool isSimpleType (typelib_TypeDescription const *type)
 Determines whether a type is a "simple" type (VOID, BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED LONG, HYPER, UNSIGNED HYPER, FLOAT, DOUBLE, CHAR, or an enum type). More...
 
bool relatesToInterfaceType (typelib_TypeDescription const *type)
 Determines whether a type relates to an interface type (is itself an interface type, or might contain entities of interface type). More...
 
void freeUnoInterfaceProxy (uno_ExtEnvironment *pEnv, void *pProxy)
 
void acquireProxy (uno_Interface *pUnoI)
 
void releaseProxy (uno_Interface *pUnoI)
 
sal_Int32 getLocalFunctions (typelib_InterfaceTypeDescription const *type)
 Calculate the number of local functions of an interface type. More...
 
sal_Int32 getPrimaryFunctions (typelib_InterfaceTypeDescription *type)
 Calculate the number of primary functions of an interface type. More...
 
VtableSlot getVtableSlot (typelib_InterfaceAttributeTypeDescription const *ifcMember)
 Calculates the vtable slot associated with an interface attribute member. More...
 
VtableSlot getVtableSlot (typelib_InterfaceMethodTypeDescription const *ifcMember)
 Calculates the vtable slot associated with an interface method member. More...
 
void unoInterfaceProxyDispatch (uno_Interface *pUnoI, typelib_TypeDescription const *pMemberDescr, void *pReturn, void *pArgs[], uno_Any **ppException)
 

Function Documentation

void bridges::cpp_uno::shared::acquireMapping ( uno_Mapping pMapping)

Definition at line 41 of file bridge.cxx.

void bridges::cpp_uno::shared::acquireProxy ( uno_Interface *  pUnoI)

Definition at line 51 of file unointerfaceproxy.cxx.

References assert(), freeUnoInterfaceProxy(), and nRef.

void bridges::cpp_uno::shared::cpp2unoMapping ( uno_Mapping pMapping,
void **  ppUnoI,
void pCppI,
typelib_InterfaceTypeDescription *  pTypeDescr 
)
void bridges::cpp_uno::shared::freeCppInterfaceProxy ( uno_ExtEnvironment *  pEnv,
void pInterface 
)
void bridges::cpp_uno::shared::freeMapping ( uno_Mapping pMapping)

Definition at line 36 of file bridge.cxx.

Referenced by uno_ext_getMapping().

void bridges::cpp_uno::shared::freeUnoInterfaceProxy ( uno_ExtEnvironment *  pEnv,
void pProxy 
)
sal_Int32 bridges::cpp_uno::shared::getLocalFunctions ( typelib_InterfaceTypeDescription const *  type)

Calculate the number of local functions of an interface type.

Local functions are those not inherited from any base types. The number of functions is potentially larger than the number of members, as each read–write attribute member counts as two functions.

Parameters
typea non-null pointer to an interface type description, for which typelib_typedescription_complete must already have been executed
Returns
the number of local functions of the given interface type

Definition at line 114 of file vtables.cxx.

Referenced by bridges::cpp_uno::shared::VtableFactory::BaseOffset::calculate(), bridges::cpp_uno::shared::VtableFactory::createVtables(), and getPrimaryFunctions().

sal_Int32 bridges::cpp_uno::shared::getPrimaryFunctions ( typelib_InterfaceTypeDescription *  type)

Calculate the number of primary functions of an interface type.

The number of primary functions of an interface is the number of local functions of that interface (see getLocalFunctions), plus the number of primary functions of that interface's first base type (if it has at least one base type).

Parameters
typea pointer to an interface type description; may be null
Returns
the number of primary functions of the given interface type, or zero if the given interface type is null

Definition at line 122 of file vtables.cxx.

References getLocalFunctions(), n, and typelib_typedescription_complete().

Referenced by bridges::cpp_uno::shared::VtableFactory::createVtables().

VtableSlot bridges::cpp_uno::shared::getVtableSlot ( typelib_InterfaceAttributeTypeDescription const *  ifcMember)

Calculates the vtable slot associated with an interface attribute member.

Parameters
ifcMembera non-null pointer to an interface attribute member description
Returns
the vtable slot associated with the given interface member

Definition at line 132 of file vtables.cxx.

Referenced by unoInterfaceProxyDispatch().

VtableSlot bridges::cpp_uno::shared::getVtableSlot ( typelib_InterfaceMethodTypeDescription const *  ifcMember)

Calculates the vtable slot associated with an interface method member.

Parameters
ifcMembera non-null pointer to an interface method member description
Returns
the vtable slot associated with the given interface member

Definition at line 138 of file vtables.cxx.

bool bridges::cpp_uno::shared::isSimpleType ( typelib_TypeClass  typeClass)

Determines whether a type is a "simple" type (VOID, BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED LONG, HYPER, UNSIGNED HYPER, FLOAT, DOUBLE, CHAR, or an enum type).

Parameters
typeClassa type class
Returns
true if the given type is "simple"

Definition at line 28 of file types.cxx.

Referenced by bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(), cpp2uno_call(), cpp_call(), CPPU_CURRENT_NAMESPACE::is_complex_struct(), ia64::is_complex_struct(), arm::is_complex_struct(), hppa::is_complex_struct(), hppa::isRegisterReturn(), x86::isSimpleReturnType(), isSimpleType(), CPPU_CURRENT_NAMESPACE::return_in_hidden_param(), ppc64::return_in_hidden_param(), ia64::return_in_hidden_param(), and arm::return_in_hidden_param().

bool bridges::cpp_uno::shared::isSimpleType ( typelib_TypeDescriptionReference const *  type)

Determines whether a type is a "simple" type (VOID, BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED LONG, HYPER, UNSIGNED HYPER, FLOAT, DOUBLE, CHAR, or an enum type).

Parameters
typea non-null pointer to a type description reference
Returns
true if the given type is "simple"

Definition at line 33 of file types.cxx.

References isSimpleType().

bool bridges::cpp_uno::shared::isSimpleType ( typelib_TypeDescription const *  type)

Determines whether a type is a "simple" type (VOID, BOOLEAN, BYTE, SHORT, UNSIGNED SHORT, LONG, UNSIGNED LONG, HYPER, UNSIGNED HYPER, FLOAT, DOUBLE, CHAR, or an enum type).

Parameters
typea non-null pointer to a type description
Returns
true if the given type is "simple"

Definition at line 37 of file types.cxx.

References isSimpleType().

bool bridges::cpp_uno::shared::relatesToInterfaceType ( typelib_TypeDescription const *  type)

Determines whether a type relates to an interface type (is itself an interface type, or might contain entities of interface type).

Parameters
typea non-null pointer to a type description
Returns
true if the given type relates to an interface type

Definition at line 41 of file types.cxx.

References i, p, and t.

Referenced by cpp2uno_call(), and cpp_call().

void bridges::cpp_uno::shared::releaseMapping ( uno_Mapping pMapping)

Definition at line 46 of file bridge.cxx.

void bridges::cpp_uno::shared::releaseProxy ( uno_Interface *  pUnoI)

Definition at line 72 of file unointerfaceproxy.cxx.

References nRef.

void bridges::cpp_uno::shared::uno2cppMapping ( uno_Mapping pMapping,
void **  ppCppI,
void pUnoI,
typelib_InterfaceTypeDescription *  pTypeDescr 
)
void bridges::cpp_uno::shared::unoInterfaceProxyDispatch ( uno_Interface *  pUnoI,
typelib_TypeDescription const *  pMemberDescr,
void pReturn,
void pArgs[],
uno_Any **  ppException 
)
void bridges::cpp_uno::shared::unoInterfaceProxyDispatch ( uno_Interface *  pUnoI,
typelib_TypeDescription const *  pMemberDescr,
void pReturn,
void **  pArgs,
uno_Any **  ppException 
)
void bridges::cpp_uno::shared::unoInterfaceProxyDispatch ( uno_Interface *  pUnoI,
const typelib_TypeDescription pMemberDescr,
void pReturn,
void pArgs[],
uno_Any **  ppException 
)