NAME
application_initialize - initializes the application and determines its readiness.
SYNOPSIS
#include <game-carrier/server.h>
GC_ADAPTER_EVENT
GCT_INT application_initialize(
GCT_INT app_id,
GCT_CSTR name,
GCT_CSTR type_name,
GCT_CSTR file_name);
Parameters:
app_idGCT_INTUnique identifier of the application.nameGCT_CSTRUnique name of the application.type_nameGCT_CSTRClass type name.file_nameGCT_CSTRName of the application source file.
RETURN VALUE
Returns 0 upon successful execution.
A non-zero value indicates an error, prompting the loading gcs to halt
in such cases.
DESCRIPTION
The application_initialize function is invoked by the gcs for every
application specified in the server’s configuration file. Its purpose is to
initialize the application and determine its readiness. Upon successful
initialization, the function returns 0, while a non-zero value indicates
an error. In case of an error, the gcs will halt the loading process
for the respective application.
The app_id parameter represents the unique identifier of the application. This
value is used to make the discovery of the adapter possible in future calls.
The name parameter is the unqiue name of the application.
Games can utilize this name as an identifier to establish connections
with specific applications on a server using the WebSocket Secure protocol.
The type_name parameter represents the class type name.
It is an arbitrary value that each adapter can utilize according
to its specific requirements.
The file_name parameter identifies the name of the
application source file. It is an arbitrary value that each adapter
can utilize according to its specific requirements.
The type_name and file_name parameters serve the purpose of enabling
an adapter to create an application instance dedicated to that specific
adapter. Each adapter has the freedom to utilize these parameters as
needed to establish an application instance responsible for handling
connections.
Typically, the names assigned to type_name and file_name hold
informative value, but they may be disregarded depending on the context.
EXAMPLE
#include <game-carrier/server.h>
GC_ADAPTER_EVENT
GCT_INT application_initialize(
GCT_INT id,
GCT_CSTR name,
GCT_CSTR type_name,
GCT_CSTR file_name)
{
/**
* Here is a good place for:
* - initialization/allocation global application resources
* - creating application related counters
**/
return 0;
}
GC_ADAPTER_EVENT
void application_start(
GCT_INT id)
{
/**
* Here is a good place for:
* - starting networking activity
* - obtaining counter names list
**/
}
GC_ADAPTER_EVENT
void application_stop(
GCT_INT id)
{
/* Here is good place for last networking commucations */
}
GC_ADAPTER_EVENT
void application_shutdown(
GCT_INT id)
{
/* Here is good place for deinitialization/deallocation global application resources */
}
SEE ALSO
adapter_initialize, application_stop, application_finalize