// **************************************************************************** // // Aevol - An in silico experimental evolution platform // // **************************************************************************** // // Copyright: See the AUTHORS file provided with the package or <www.aevol.fr> // Web: http://www.aevol.fr/ // E-mail: See <http://www.aevol.fr/contact/> // Original Authors : Guillaume Beslon, Carole Knibbe, David Parsons // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. // // **************************************************************************** // ============================================================================ // Includes // ============================================================================ #include "Recombination.h" #include <sstream> namespace aevol { // ============================================================================ // Definition of static attributes // ============================================================================ // ============================================================================ // Constructors // ============================================================================ // ============================================================================ // Destructor // ============================================================================ // ============================================================================ // Methods // ============================================================================ void Recombination::save(gzFile backup_file) const { int8_t tmp_mut_type = RECOMB; gzwrite(backup_file, &tmp_mut_type, sizeof(tmp_mut_type)); gzwrite(backup_file, &posA_, sizeof(posA_)); gzwrite(backup_file, &posB_, sizeof(posB_)); gzwrite(backup_file, &align_score_, sizeof(align_score_)); } void Recombination::load(gzFile backup_file) { gzread(backup_file, &posA_, sizeof(posA_)); gzread(backup_file, &posB_, sizeof(posB_)); gzread(backup_file, &align_score_, sizeof(align_score_)); } std::string Recombination::generic_description_string() const { std::ostringstream stream; stream << mut_type() << ' ' << posA() << ' ' << posB() << ' ' << -1 << ' ' << -1 << ' ' << -1 << ' ' << align_score() << ' ' << -1 << ' ' << -1 << ' ' << -1; return stream.str(); } // ============================================================================ // Non inline accessors // ============================================================================ } // namespace aevol