Keywords: doc

Next: Obtaining Initial References Up: ORB Previous: ORB

## ORB Initialization

Every MICO application has to call the ORB initialization function `ORB_init()` before using MICO functionality.

      int main (int argc, char *argv[])
      {
         CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "mico-local-orb");
         ...
      }

That way the ORB has access to the applications command line arguments. After evaluating them the ORB removes the command line options it understands so the application doesn't have to care about them. You can also put ORB command line arguments into a file called `.micorc` in your home directory. Arguments given on the command line override settings from `.micorc`. Here is a description of all ORB specific command line arguments:

`-ORBNoIIOPServer`
  Do not activate the IIOP server. The IIOP server enables other processes to invoke methods on objects in this process using the Internet Inter ORB Protocol (IIOP). If for some reason you do not want other processes to be able to invoke objects in this process you can use this option. Default is to activate the IIOP server.
`-ORBNoIIOPProxy`
  Do not activate the IIOP proxy. The IIOP proxy enables this process to invoke methods on objects in other processes using IIOP. If you do not want or need this you can use this option. Default is to activate the IIOP proxy.
`-ORBIIOPAddr <address>`
  Set the address the IIOP server should run on. See section 3.3.3 for details on addresses. If you do not specify this option the IIOP server will choose an unused address. This option can be used more than once to make the server listen on several addresses (e.g., a `unix:` and an `inet:` address).
`-ORBId <ORB identifier>`
  Specify the ORB identifier, `mico-local-orb` is currently the only supported ORB identifier. This option is intended for programs that needed access to different CORBA implementations in the same process. In this case the option `-ORBId` is used to select one of the CORBA implementations.
`-ORBImplRepoIOR <impl repository IOR>`
  Specify a stringified object reference for the implementation repository the ORB should use.
`-ORBImplRepoAddr <impl repository address>`
  Specify the address of a process that runs an implementation repository. The ORB will then try to bind to an implementation repository object using the given address. See 3.3.3 for details on addresses and the binder. If the bind fails or if you did neither specify `-ORBImplRepoAddr` nor `-ORBImpRepoIOR` the ORB will run a local implementation repository.
`-ORBIfaceRepoIOR <interface repository IOR>`
  The same as `-ORBImplRepoIOR` but for the interface repository.
`-ORBIfaceRepoAddr <interface repository address>`
  The same as `-ORBImplRepoAddr` but for the interface repository.
`-ORBNamingIOR <naming service IOR>`
  The same as `-ORBImplRepoIOR` but for the naming service.
`-ORBNamingAddr <naming address>`
  The same as `-ORBImplRepoAddr` but for the naming service.
`-ORBDebugLevel <level>`
  Specify the debug level. `<level>` is a non-negative integer with greater values giving more debug output on `cerr`.
`-ORBBindAddr <address>`
  Specify an address which `bind(const char *repoid)` should try to bind to. This option can be used more than once to specify multiple addresses.
`-ORBConfFile <rcfile>`
  Specifies the file from which to read additional command line options (defaults to `~/.micorc`).
`-ORBNoCodeSets`
  Do not add code set information to object references. Since code set conversion is a CORBA 2.1 feature this option may be needed to talk to ORBs which are not CORBA 2.1 compliant. Furthermore it may gain some extra speed.
`-ORBNativeCS <pattern>`
  Specifies the code set the application uses for characters and strings. `<pattern>` is a shell-like pattern that must match the `description` field of a code set in the OSF code set registry. For example the pattern `*8859-1*` will make the ORB use the code set ISO-8859-1 (Latin 1) as the native char code set, which is the default if you do not specify this option. The ORB uses this information to automatically convert characters and strings when talking to an application that uses a different code set.
`-ORBNativeWCS <pattern>`
  Similar to `-ORBNativeWCS`, but specifies the code set the application uses to wide characters and wide strings. Defaults to UTF-16, a 16 bit encoding of Unicode.

Next: Obtaining Initial References Up: ORB Previous: ORB