The next step the server must take before it is ready to accept and process requests from clients is to create a SOMOA object and initialize the global variable SOMD_SOMOAObject to point to it. This is accomplished by the assignment:
SOMD_SOMOAObject = SOMOANew();
Note: The SOMOA object is not created automatically by SOMD_Init because it is only required by server processes.
After the global variables have been initialized, the server can do any application-specific initialization required before processing requests from clients. Finally, when the server is ready to process requests, it must call the impl_is_ready method on the SOMOA:
_impl_is_ready(SOMD_SOMOAObject, &ev, SOMD_ImplDefObject);
The SOMOA will then set up a communications port for incoming messages, which it registers with the DSOM daemon. Once the DSOM daemon has been notified of the server's port, it assists client applications in "binding" (i.e., establishing a connection) to that server.
The impl_is_ready method also causes the server object, whose class is defined in the server's ImplementationDef, to be created. The server object can be referenced through the global variable, SOMD_ServerObject.