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

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...
 

Function Documentation

◆ acquireMapping()

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

Definition at line 41 of file bridge.cxx.

◆ acquireProxy()

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

Definition at line 52 of file unointerfaceproxy.cxx.

◆ cpp2unoMapping()

void bridges::cpp_uno::shared::cpp2unoMapping ( uno_Mapping pMapping,
void **  ppUnoI,
void *  pCppI,
typelib_InterfaceTypeDescription *  pTypeDescr 
)

Definition at line 51 of file bridge.cxx.

◆ freeCppInterfaceProxy()

void bridges::cpp_uno::shared::freeCppInterfaceProxy ( uno_ExtEnvironment *  pEnv,
void *  pInterface 
)

Definition at line 35 of file cppinterfaceproxy.cxx.

◆ freeMapping()

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

Definition at line 36 of file bridge.cxx.

Referenced by uno_ext_getMapping().

◆ freeUnoInterfaceProxy()

void bridges::cpp_uno::shared::freeUnoInterfaceProxy ( uno_ExtEnvironment *  pEnv,
void *  pProxy 
)

Definition at line 31 of file unointerfaceproxy.cxx.

◆ getLocalFunctions()

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.

References type.

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

◆ 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, type, and typelib_typedescription_complete().

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

◆ getVtableSlot() [1/2]

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().

◆ getVtableSlot() [2/2]

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.

◆ isSimpleType() [1/3]

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(), arm::is_complex_struct(), hppa::is_complex_struct(), ia64::is_complex_struct(), CPPU_CURRENT_NAMESPACE::is_complex_struct(), hppa::isRegisterReturn(), x86::isSimpleReturnType(), isSimpleType(), arm::return_in_hidden_param(), ia64::return_in_hidden_param(), CPPU_CURRENT_NAMESPACE::return_in_hidden_param(), and ppc64::return_in_hidden_param().

◆ isSimpleType() [2/3]

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(), and type.

◆ isSimpleType() [3/3]

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(), and type.

◆ relatesToInterfaceType()

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, relatesToInterfaceType(), t, and type.

Referenced by cpp2uno_call(), cpp_call(), and relatesToInterfaceType().

◆ releaseMapping()

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

Definition at line 46 of file bridge.cxx.

◆ releaseProxy()

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

Definition at line 73 of file unointerfaceproxy.cxx.

◆ uno2cppMapping()

void bridges::cpp_uno::shared::uno2cppMapping ( uno_Mapping pMapping,
void **  ppCppI,
void *  pUnoI,
typelib_InterfaceTypeDescription *  pTypeDescr 
)

Definition at line 97 of file bridge.cxx.

◆ unoInterfaceProxyDispatch() [1/2]

void bridges::cpp_uno::shared::unoInterfaceProxyDispatch ( uno_Interface *  pUnoI,
const typelib_TypeDescription pMemberDescr,
void *  pReturn,
void *  pArgs[],
uno_Any **  ppException 
)

Definition at line 376 of file gcc3_aix_powerpc/uno2cpp.cxx.

◆ unoInterfaceProxyDispatch() [2/2]

void bridges::cpp_uno::shared::unoInterfaceProxyDispatch ( uno_Interface *  pUnoI,
typelib_TypeDescription const *  pMemberDescr,
void *  pReturn,
void **  pArgs,
uno_Any **  ppException 
)