Commit c5ff069f authored by Jesse Mapel's avatar Jesse Mapel Committed by Makayla Shepherd
Browse files

Changed ControlNetHeader versioning to make V0002-V0006 the same

parent a1371631
Loading
Loading
Loading
Loading
+8 −125
Original line number Original line Diff line number Diff line
@@ -174,136 +174,19 @@ namespace Isis {




  /**
  /**
   * Create the internal header from a V0001 header. This will step the header
   * Create the internal header from a V0001 header.
   * version up until it reaches the latest version and then internalize it.
   *
   *
   * The only update step is to convert MRO targetNames to simply Mars.
   * The latest version is V0001, so this will check for an old issue with
   * Mars target names and then internalize the header.
   *
   *
   * @param header The V0001 header
   * @param header The V0001 header
   */
   */
  void ControlNetVersioner::createHeaderFromV0001(const ControlNetHeaderV0001 header) {
  void ControlNetVersioner::createHeader(const ControlNetHeaderV0001 header) {
    ControlNetHeaderV0002 newHeader;
    m_header = header;
    newHeader.networkID = header.networkID;
    if (header.targetName..startsWith("MRO/")) {
      newHeader.targetName = "Mars";
    }
    else {
      newHeader.targetName = header.targetName;
    }
    newHeader.created = header.created;
    newHeader.lastModified = header.lastModified;
    newHeader.description = header.description;
    newHeader.username = header.username;

    createHeaderFromV0002(newHeader);
  }


  /**
   * Create the internal header from a V0002 header. This will step the header
   * version up until it reaches the latest version and then internalize it.
   *
   * @param header The V0002 header
   */
  void ControlNetVersioner::createHeaderFromV0002(const ControlNetHeaderV0002 header) {
    ControlNetHeaderV0003 newHeader;
    newHeader.networkID = header.networkID;
    newHeader.targetName = header.targetName;
    newHeader.created = header.created;
    newHeader.lastModified = header.lastModified;
    newHeader.description = header.description;
    newHeader.username = header.username;

    createHeaderFromV0003(newHeader);
  }


  /**
   * Create the internal header from a V0003 header. This will step the header
   * version up until it reaches the latest version and then internalize it.
   *
   * @param header The V0003 header
   */
  void ControlNetVersioner::createHeaderFromV0003(const ControlNetHeaderV0003 header) {
    ControlNetHeaderV0004 newHeader;
    newHeader.networkID = header.networkID;
    newHeader.targetName = header.targetName;
    newHeader.created = header.created;
    newHeader.lastModified = header.lastModified;
    newHeader.description = header.description;
    newHeader.username = header.username;

    createHeaderFromV0004(newHeader);
  }


  /**
   * Create the internal header from a V0004 header. This will step the header
   * version up until it reaches the latest version and then internalize it.
   *
   * @param header The V0004 header
   */
  void ControlNetVersioner::createHeaderFromV0004(const ControlNetHeaderV0004 header) {
    ControlNetHeaderV0005 newHeader;
    newHeader.networkID = header.networkID;
    newHeader.targetName = header.targetName;
    newHeader.created = header.created;
    newHeader.lastModified = header.lastModified;
    newHeader.description = header.description;
    newHeader.username = header.username;

    createHeaderFromV0005(newHeader);
  }


  /**
   * Create the internal header from a V0005 header. This will step the header
   * version up until it reaches the latest version and then internalize it.
   *
   * @param header The V0005 header
   */
  void ControlNetVersioner::createHeaderFromV0005(const ControlNetHeaderV0005 header) {
    ControlNetHeaderV0006 newHeader;
    newHeader.networkID = header.networkID;
    newHeader.targetName = header.targetName;
    newHeader.created = header.created;
    newHeader.lastModified = header.lastModified;
    newHeader.description = header.description;
    newHeader.username = header.username;

    createHeaderFromV0006(newHeader);
  }


  /**
   * Create the internal header from a V0006 header. This will step the header
   * version up until it reaches the latest version and then internalize it.
   *
   * This does not fill the size list because it will never be needed.
   *
   * @param header The V0006 header
   */
  void ControlNetVersioner::createHeaderFromV0006(const ControlNetHeaderV0006 header) {
    ControlNetHeaderV0007 newHeader;
    newHeader.networkID = header.networkID;
    newHeader.targetName = header.targetName;
    newHeader.created = header.created;
    newHeader.lastModified = header.lastModified;
    newHeader.description = header.description;
    newHeader.username = header.username;


    createHeaderFromV0007(newHeader);
    if (m_header.targetName..startsWith("MRO/")) {
      m_header.targetName = "Mars";
    }
    }


  /**
   * Create the internal header from a V0007 header. This will step the header
   * version up until it reaches the latest version and then internalize it.
   *
   * @param header The V0007 header
   */
  void ControlNetVersioner::createHeaderFromV0007(const ControlNetHeaderV0007 header) {
    m_header = header;
  }
  }




+8 −57
Original line number Original line Diff line number Diff line
@@ -157,7 +157,7 @@ namespace Isis {
      ControlNetVersioner &operator=(const ControlNetVersioner &other);
      ControlNetVersioner &operator=(const ControlNetVersioner &other);


      // Private ControlNetHeader structs for versioning
      // Private ControlNetHeader structs for versioning
      // TODO we can probably use some typedef and inheritance to clean this up. JAM
      // TODO Document these for doxygen. JAM
      struct ControlNetHeaderV0001 {
      struct ControlNetHeaderV0001 {
        QString networkID;
        QString networkID;
        QString targetName;
        QString targetName;
@@ -166,55 +166,12 @@ namespace Isis {
        QString description;
        QString description;
        QString userName;
        QString userName;
      };
      };
      struct ControlNetHeaderV0002 {
      typedef ControlNetHeaderV0002 ControlNetHeaderV0001;
        QString networkID;
      typedef ControlNetHeaderV0003 ControlNetHeaderV0001;
        QString targetName;
      typedef ControlNetHeaderV0004 ControlNetHeaderV0001;
        QString created;
      typedef ControlNetHeaderV0005 ControlNetHeaderV0001;
        QString lastModified;
      typedef ControlNetHeaderV0006 ControlNetHeaderV0001;
        QString description;
      typedef ControlNetHeaderV0007 ControlNetHeaderV0001;
        QString userName;
      };
      struct ControlNetHeaderV0003 {
        QString networkID;
        QString targetName;
        QString created;
        QString lastModified;
        QString description;
        QString userName;
      };
      struct ControlNetHeaderV0004 {
        QString networkID;
        QString targetName;
        QString created;
        QString lastModified;
        QString description;
        QString userName;
      };
      struct ControlNetHeaderV0005 {
        QString networkID;
        QString targetName;
        QString created;
        QString lastModified;
        QString description;
        QString userName;
      };
      struct ControlNetHeaderV0006 {
        QString networkID;
        QString targetName;
        QString created;
        QString lastModified;
        QString description;
        QString userName;
        QVector<int> pointMessageSizes;
      };
      struct ControlNetHeaderV0007 {
        QString networkID;
        QString targetName;
        QString created;
        QString lastModified;
        QString description;
        QString userName;
      };


      void read(const FileName netFile);
      void read(const FileName netFile);


@@ -237,13 +194,7 @@ namespace Isis {
      QSharedPointer<ControlPoint> createPointFromV0006(const ControlPointV0006 point);
      QSharedPointer<ControlPoint> createPointFromV0006(const ControlPointV0006 point);
      QSharedPointer<ControlPoint> createPointFromV0007(const ControlPointV0007 point);
      QSharedPointer<ControlPoint> createPointFromV0007(const ControlPointV0007 point);


      void createHeaderFromV0001(const ControlNetHeaderV0001 header);
      void setHeader(const ControlNetHeaderV0001 header);
      void createHeaderFromV0002(const ControlNetHeaderV0002 header);
      void createHeaderFromV0003(const ControlNetHeaderV0003 header);
      void createHeaderFromV0004(const ControlNetHeaderV0004 header);
      void createHeaderFromV0005(const ControlNetHeaderV0005 header);
      void createHeaderFromV0006(const ControlNetHeaderV0006 header);
      void createHeaderFromV0007(const ControlNetHeaderV0007 header);


      void writeHeader(ZeroCopyInputStream *fileStream);
      void writeHeader(ZeroCopyInputStream *fileStream);
      void writeFirstPoint(ZeroCopyInputStream *fileStream);
      void writeFirstPoint(ZeroCopyInputStream *fileStream);