use crate::client::Client;
use crate::messages::AuthMessage;
use crate::ora_version::OracleVersion;
pub(crate) struct DbInfo {
max_open_cursors: usize,
max_identifier_length: usize,
session_id: usize,
serial_num: usize,
db_domain: String,
db_name: String,
service_name: String,
instance_name: String,
server_version: OracleVersion,
}
impl DbInfo {
pub(crate) fn get_db_domain(&self) -> &str {
&self.db_domain
}
pub(crate) fn get_db_name(&self) -> &str {
&self.db_name
}
pub(crate) fn get_instance_name(&self) -> &str {
&self.instance_name
}
pub(crate) fn get_max_identifier_length(&self) -> usize {
self.max_identifier_length
}
pub(crate) fn get_max_open_cursors(&self) -> usize {
self.max_open_cursors
}
pub(crate) fn get_serial_num(&self) -> usize {
self.serial_num
}
pub(crate) fn get_server_version(&self) -> OracleVersion {
self.server_version.clone()
}
pub(crate) fn get_service_name(&self) -> &str {
&self.service_name
}
pub(crate) fn get_session_id(&self) -> usize {
self.session_id
}
pub(crate) fn new(client: &Client, auth_message: &AuthMessage) -> DbInfo {
DbInfo {
max_open_cursors: auth_message.get_max_open_cursors(),
max_identifier_length: auth_message.get_max_identifier_length(),
session_id: auth_message.get_session_id(),
serial_num: auth_message.get_serial_num(),
db_domain: auth_message.get_db_domain(),
db_name: auth_message.get_db_name(),
service_name: auth_message.get_service_name(),
instance_name: auth_message.get_instance_name(),
server_version: auth_message.get_server_version(client),
}
}
}