Initialization and Termination of Diarkis Module
This page introduces part of the code from the directmessage_simple
sample to explain the overall flow when using the Diarkis Module.
The actual source code of the sample is located in samples\directmessage_simple\directmessage_simple.cpp
.
Initialization of Diarkis Runtime Library and Diarkis Module
First, call DiarkisInterfaceBase::DiarkisInit()
to initialize the Diarkis Runtime Library and Diarkis Module.
This process must be executed only once at the very start across the entire application.
Creating an Instance of DiarkisInterfaceBase
Next, to connect to the Diarkis server and use various features of Diarkis, create an instance of a class that inherits from DiarkisInterfaceBase
.
At this time, pass the UID (User ID)
used to connect to the Diarkis server.
Initialization of Low-Level Communication Layer
After creating an instance of DiarkisInterfaceBase
, set up TCP/UDP communication used for communicating with the Diarkis server.
Obtaining Connection Information to Diarkis Server
Next, obtain the information required to connect to the Diarkis server. (TODO) Explain briefly about client key, server type, etc. The included sample implements two patterns: obtaining connection information from an HTTP server within the Diarkis cluster and via an API server (external server).
Pattern of Obtaining Connection Information from HTTP Server within Diarkis Cluster
Use DiarkisInterfaceBase::GetEndpoint()
to obtain connection information.
The obtained connection information is automatically stored within DiarkisInterfaceBase
and used when connecting.
Additionally, although not used in the sample,
DiarkisInterfaceBase::RequestEndpointAsync()
DiarkisInterfaceBase::GetEndpointAsyncStatus()
DiarkisInterfaceBase::GetAsyncEndpointResult()
can be used to obtain endpoint information asynchronously.
Pattern of Obtaining Connection Information via API Server (External Server)
Save the connection information obtained by some method such as an API server (external server) into AuthInfo
, and pass this information during the actual connection process.
Connecting to Diarkis Server
If connection information is obtained externally, pass the obtained information at this timing. Additionally, since it may take time for the connection to actually complete after executing the connection process, periodically check the connection status to confirm if the connection has been completed.
Initialization of Each Module
After the connection to the Diarkis server is completed, set up each module you want to use and perform the communication process required by the application.
Disconnecting from Diarkis Server
Start the disconnection process from the Diarkis server by calling DiarkisInterfaceBase::Disconnect()
.
Similar to the connection, it may take time for the disconnection to actually complete, so check the connection status after executing the disconnection process to confirm if the disconnection has been completed.
Releasing Used Instances
Once the disconnection from the Diarkis server is completed and DiarkisInterfaceBase
is no longer needed, release the instance.
Termination Process
At the termination of the application, call DiarkisInterfaceBase::DiarkisDestroy()
to perform the overall termination process of Diarkis. This process pairs with DiarkisInterfaceBase::DiarkisInit()
, and similar to DiarkisInit
, it should be called only once across the entire lifecycle of the application.
Last updated