Skip to main content
Skip table of contents

IceBox.*

IceBox.InheritProperties

Synopsis

IceBox.InheritProperties=num

Description

If num is set to a value larger than zero, each service inherits the configuration properties of the IceBox server's communicator. If not defined, the default value is zero.

IceBox.LoadOrder

Synopsis

IceBox.LoadOrder=names

Description

Determines the order in which services are loaded. The service manager loads the services in the order they appear in names, where each service name is separated by a comma or white space. Any services not mentioned in names are loaded afterward, in an undefined order.

IceBox.PrintServicesReady

Synopsis

IceBox.PrintServicesReady=token

Description

If this property is set to a value greater than zero, the service manager prints "token ready" on standard output once initialization of all the services is complete. This is useful for scripts that need to wait until all services are ready to be used.

IceBox.Service.name

Synopsis

IceBox.Service.name=entry_point [args]

Description

Defines a service to be loaded during IceBox initialization. Any arguments that follow the entry point are examined; those matching the --name=value pattern are interpreted as property definitions and appear in the property set of the communicator that is passed to the service start method, and all remaining arguments are passed to the start method in the args parameter. Whitespace separates the arguments, and any arguments that contain whitespace must be enclosed in quotes.

In C++, entry_point has the form path[,version]:function.

The path and optional version components are used to construct the name of a DLL or shared library. If no version is supplied, the version is the empty string. The function component is the name of a function with extern C linkage. For example, the entry point IceStormService,38:createIceStorm implies a shared library name of libIceStormService.so.38 on Linux and IceStormService38.dll on Windows. Furthermore, if IceBox is built on Windows with debugging, a d is automatically appended to the version (e.g., IceStormService37d.dll).

The function must be declared with extern C linkage and have the following signature:

CPP
IceBox::Service* function(const Ice::CommunicatorPtr&);

Note that the function must return a raw pointer and not a shared_ptr. IceBox deallocates the object when it unloads the library. The communicator instance passed to this function is the server's communicator, which is not the same as the communicator passed to the service's start method.

The path component may optionally contain a relative or absolute path name, indicated by the presence of a path separator (/ or \). In this case, the last component of the path is used to construct the name of the shared library or DLL. Consider this example:

CODE
IceBox.Service.IceStorm=./IceStormService,38:createIceStorm

The use of a relative path means the Ice runtime will look in the current working directory for libIceStormService.so.38 on Linux or IceStormService38.dll on Windows.

If the path component contains spaces, the entire entry point must be enclosed in quotes:

CODE
IceBox.Service.IceStorm="C:\Program Files\ZeroC\Ice-3.8\bin\IceStormService,38:createIceStorm"

If the path component does not include a leading path name, Ice delegates to the operating system to locate the shared library or DLL, which typically means that the plug-in can reside in any of the directories in your shared library or DLL search path.

IceBox.UseSharedCommunicator.name

Synopsis

IceBox.UseSharedCommunicator.name=num

Description

If num is set to a value larger than zero, the service manager supplies the service name with a communicator that might be shared by other services. If the IceBox.InheritProperties property is also defined, the shared communicator inherits the properties of the IceBox server. If not defined, the default value is zero.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.