Preliminary documentation for Ice for MATLAB. Do not use in production applications. Refer to the space directory for other releases.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

When a plug-in is packaged in a static library, you need to link your application with the plug-in's static library and call a register function from your application to ensure the corresponding code gets correctly included.

Ice provides the following plug-in registration functions for C++ and Objective-C applications:

C++
namespace Ice
{
    void registerIceUDP(bool loadOnInitialize = true);
    void registerIceIAP(bool loadOnInitialize = true);
    void registerIceBT(bool loadOnInitialize = true);
    void registerIceDiscovery(bool loadOnInitialize = true);
    void registerIceLocatorDiscovery(bool loadOnInitialize = true);
    void registerIceSSL(bool loadOnInitialize = true);
    void registerIceWS(bool loadOnInitialize = true);
    void registerIceStringConverter(bool loadOnInitialize = true);
} 
Objective-C
void ICEregisterIceUDP(BOOL loadOnInitialize);
void ICEregisterIceIAP(BOOL loadOnInitialize);
void ICEregisterIceDiscovery(BOOL loadOnInitialize);
void ICEregisterIceLocatorDiscovery(BOOL loadOnInitialize);
void ICEregisterIceSSL(BOOL loadOnInitialize);
void ICEregisterIceWS(BOOL loadOnInitialize);

For example, if you are using a static IceSSL plug-in, link your application with libIceSSL.a and call Ice::registerIceSSL from your application. The UDP, WS, and StringConverter plug-ins are in the main Ice library (libIce.a).

When the bool parameter is true (the default in C++), the plug-in is always loaded (created) during communicator initialization, even if Ice.Plugin.name is not set. When false, the plug-in is loaded (created) during communication initialization only if Ice.Plugin.name is set to a non-empty value (e.g., Ice.Plugin.IceSSL=1).

registerIceIAP is currently available only on iOS.

The table below summarizes the available registration functions and the static libraries where they are defined:

Plug-in NameFunctionalityFunctionLibrary
IceUDPudp transportIce::registerIceUDPlibIce.a
IceWSws and wss transportsIce::registerIceWSlibIce.a
IceStringConverterconvert native string encoding to/from UTF-8Ice::registerIceStringConverterlibIce.a
IceIAPiap and iaps transportsIce::registerIceIAPlibIceIAP.a
IceBTbt and bts transportsIce::registerIceBTlibIceBT.a
IceSSLicessl transportIce::registerIceSSLlibIceSSL.a
IceDiscoveryLocation service implemented using UDP multicastIce::registerIceDiscoverylibIceDiscovery.a
IceLocatorDiscoveryLocation service implemented using UDP multicastIce::registerIceLocatorDiscoverylibIceLocatorDiscovery.a
Plug-in NameFunctionalityFunctionLibrary
IceUDPudp transportICEregisterIceUDPlibIce.a
IceWSws and wss transportsICEregisterIceWSlibIce.a
IceIAPiap and iaps transportsICEregisterIceIAPlibIceIAP.a
IceSSLicessl transportICEregisterIceSSLlibIceSSL.a
IceDiscoveryLocation service implemented using UDP multicastICEregisterIceDiscoverylibIceDiscovery.a
IceLocatorDiscoveryLocation service implemented using UDP multicastICEregisterIceLocatorDiscoverylibIceLocatorDiscovery.a
If you are developing your own plug-in, you will also need to register your plug-in factory function using Ice::registerPluginFactory. Refer to the Plug-in API for more information on this function.

  • No labels