def __init__(self, conn):
self.conn = conn<EOL>general_config_table = self.conn.get_table_data(GEN_CONFIG_TBL)<EOL>actual_log_table = self.conn.get_table_data(ACT_LOG_TBL)<EOL>history_log_data_table = self.conn.get_table_data(HISTORY_LOG_DATA_TBL)<EOL>if len(general_config_table) < <NUM_LIT>:<EOL><INDENT>raise C1219ParseError('<STR_LIT>', GEN_CONFIG_TBL)<EOL><DEDENT>if len(actual_log_table) < <NUM_LIT:9>:<EOL><INDENT>raise C1219ParseError('<STR_LIT>', ACT_LOG_TBL)<EOL><DEDENT>if len(history_log_data_table) < <NUM_LIT:11>:<EOL><INDENT>raise C1219ParseError('<STR_LIT>', HISTORY_LOG_DATA_TBL)<EOL><DEDENT>tm_format = general_config_table[<NUM_LIT:1>] & <NUM_LIT:7><EOL>std_version_no = general_config_table[<NUM_LIT:11>]<EOL>std_revision_no = general_config_table[<NUM_LIT:12>]<EOL>log_flags = actual_log_table[<NUM_LIT:0>]<EOL>event_number_flag = bool(log_flags & <NUM_LIT:1>)<EOL>hist_date_time_flag = bool(log_flags & <NUM_LIT:2>)<EOL>hist_seq_nbr_flag = bool(log_flags & <NUM_LIT:4>)<EOL>hist_inhibit_ovf_flag = bool(log_flags & <NUM_LIT:8>)<EOL>event_inhibit_ovf_flag = bool(log_flags & <NUM_LIT:16>)<EOL>nbr_std_events = actual_log_table[<NUM_LIT:1>]<EOL>nbr_mfg_events = actual_log_table[<NUM_LIT:2>]<EOL>hist_data_length = actual_log_table[<NUM_LIT:3>]<EOL>event_data_length = actual_log_table[<NUM_LIT:4>]<EOL>self.__nbr_history_entries__, self._nbr_event_entries = struct.unpack(self.conn.c1219_endian + '<STR_LIT>', actual_log_table[<NUM_LIT:5>:<NUM_LIT:9>])<EOL>if std_version_no > <NUM_LIT:1>:<EOL><INDENT>ext_log_flags = actual_log_table[<NUM_LIT:9>]<EOL>nbr_program_tables = struct.unpack(self.conn.c1219_endian + '<STR_LIT:H>', actual_log_table[<NUM_LIT:10>:<NUM_LIT:12>])<EOL><DEDENT>else:<EOL><INDENT>ext_log_flags = None<EOL>nbr_program_tables = None<EOL><DEDENT>order_flag = history_log_data_table[<NUM_LIT:0>] & <NUM_LIT:1><EOL>overflow_flag = history_log_data_table[<NUM_LIT:0>] & <NUM_LIT:2><EOL>list_type_flag = history_log_data_table[<NUM_LIT:0>] & <NUM_LIT:4><EOL>inhibit_overflow_flag = history_log_data_table[<NUM_LIT:0>] & <NUM_LIT:8><EOL>nbr_valid_entries, last_entry_element, last_entry_seq_num, nbr_unread_entries = struct.unpack(self.conn.c1219_endian + '<STR_LIT>', history_log_data_table[<NUM_LIT:1>:<NUM_LIT:11>])<EOL>log_data = history_log_data_table[<NUM_LIT:11>:]<EOL>size_of_log_rcd = hist_data_length + <NUM_LIT:4>  <EOL>if hist_date_time_flag:<EOL><INDENT>size_of_log_rcd += LTIME_LENGTH[tm_format]<EOL><DEDENT>if event_number_flag:<EOL><INDENT>size_of_log_rcd += <NUM_LIT:2><EOL><DEDENT>if hist_seq_nbr_flag:<EOL><INDENT>size_of_log_rcd += <NUM_LIT:2><EOL><DEDENT>if len(log_data) != (size_of_log_rcd * self.nbr_history_entries):<EOL><INDENT>raise C1219ParseError('<STR_LIT>', HISTORY_LOG_DATA_TBL)<EOL><DEDENT>entry_idx = <NUM_LIT:0><EOL>self._logs = []<EOL>while entry_idx < self.nbr_history_entries:<EOL><INDENT>self._logs.append(get_history_entry_record(self.conn.c1219_endian, hist_date_time_flag, tm_format, event_number_flag, hist_seq_nbr_flag, log_data[:size_of_log_rcd]))<EOL>log_data = log_data[size_of_log_rcd:]<EOL>entry_idx += <NUM_LIT:1><EOL><DEDENT>
Initializes a new instance of the class and reads tables from the
corresponding decades to populate information.

@type conn: c1218.connection.Connection
@param conn: The driver to be used for interacting with the
necessary tables.