wow. that was easy: git mv core nucleus
[feisty_meow.git] / core / library / structures / version_record.h
diff --git a/core/library/structures/version_record.h b/core/library/structures/version_record.h
deleted file mode 100644 (file)
index 55ffed3..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-#ifndef VERSION_STRUCTURE_GROUP
-#define VERSION_STRUCTURE_GROUP
-
-/*****************************************************************************\
-*                                                                             *
-*  Name   : version & version_record                                          *
-*  Author : Chris Koeritz                                                     *
-*                                                                             *
-*******************************************************************************
-* Copyright (c) 1996-$now By Author.  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 is online at:      *
-*     http://www.fsf.org/copyleft/gpl.html                                    *
-* Please send any updates to: fred@gruntose.com                               *
-\*****************************************************************************/
-
-/*! @file version_record.h
-  Note that this header is tuned for forward declaration of the version
-  and version_record objects; this is a better approach than including this
-  somewhat heavy header file in other header files.
-*/
-
-#include "string_array.h"
-
-#include <basis/astring.h>
-#include <basis/contracts.h>
-
-namespace structures {
-
-//! Holds a file's version identifier.
-/*!
-  The version structures can be used in any of our components because
-  they're not platform specific.  They maintain information about a file
-  that is part of the released product.
-*/
-
-class version : public virtual basis::packable, public virtual basis::orderable
-{
-public:
-  version();  //!< constructs a blank version.
-
-  version(const structures::string_array &version_info);
-    //!< constructs a version from a list of strings that form the components.
-    /*!< note that if a component is an empty string, it is changed to be a
-    zero ("0"). */
-
-  version(const basis::astring &formatted_string);
-    //!< the version components will be parsed from the "formatted_string".
-    /*!< the version component separator is the period ('.') or the comma (',')
-    character. */
-  version(int major, int minor, int rev = 0, int build = 0);
-    //!< constructs a win32 style version structure from the information.
-
-  version(const version &to_copy);
-    //!< constructs a copy of "to_copy".
-
-  virtual ~version();
-
-  version &operator =(const version &to_copy);
-    //!< assigns this to the "to_copy".
-
-  DEFINE_CLASS_NAME("version");
-
-  virtual basis::astring text_form() const;
-
-  bool equal_to(const equalizable &to_test) const;
-    //!< compares two versions for exact equality.
-    /*!< to perform a check of win32 build compatibility, use the
-    compatible() method. */
-
-  bool less_than(const orderable &to_test) const;
-    //!< reports if this version is less than "to_test".
-    /*!< supplies the other operator needed for the full set of comparisons
-    (besides equality).  the basis namespace provides templates for the rest
-    of the comparison operators in <basis/functions.h>. */
-
-  int components() const;
-    //!< reports the number of components that make up this version.
-
-  basis::astring get_component(int index) const;
-    //!< returns the component at the specified index.
-    /*!< note that if an entry is an empty string, then a string with zero
-    in it is returned ("0"). */
-
-  void set_component(int index, const basis::astring &to_set);
-    //!< sets the component at "index" to "to_set".
-    /*!< an empty string for "to_set" is turned into a zero. */
-
-  enum version_places { MAJOR, MINOR, REVISION, BUILD };
-    //!< these are names for the first four components of the version.
-    /*!< there may be more components than four on some platforms. */
-
-  enum version_style { DOTS, COMMAS, DETAILED };
-    //!< different ways that a version object can be displayed.
-    /*!< DOTS is in the form "1.2.3.4"
-    COMMAS is in the form "1, 2, 3, 4"
-    DETAILED is in the form "major 1, minor 2, ..."
-    */
-
-  basis::astring flex_text_form(version_style style = DOTS, int including = -1) const;
-    //!< returns a textual form of the version number.
-    /*!< the place passed in "including" specifies how much of the version
-    to print, where a negative number means all components.  for example, if
-    "including" is MINOR, then only the first two components (major and minor
-    components) are printed. */
-
-  static version from_text(const basis::astring &to_convert);
-    //!< returns a version structure parsed from "to_convert".
-
-  virtual int packed_size() const;
-  virtual void pack(basis::byte_array &target) const;
-  virtual bool unpack(basis::byte_array &source);
-
-  //////////////
-
-  // the following methods mainly help on win32 platforms, where the version
-  // components are always simple short integers.  there are only ever four
-  // of these.  if one adheres to that same scheme on other platforms, then
-  // these functions may be helpful.  otherwise, with the mixed alphanumeric
-  // versions one sees on unix, these are not so great.
-
-  int v_major() const;
-    //!< major version number.
-    /*!< major & minor are the most significant values for a numerical version.
-    these are the familiar numbers often quoted for software products, like
-    "jubware version 8.2". */
-  int v_minor() const;
-    //!< minor version number.
-  int v_revision() const;
-    //!< revision level.
-    /*!< in the hoople code and the clam system, this number is changed for
-    every new build.  when two versions of a file are the same in major,
-    minor and revision numbers, then they are said to be compatible.  for
-    those using this version scheme, it asserts that dll compatibility has not
-    been broken if one swaps those two files in an installation.  after the
-    swap, any components that are dependent on the dll must all link properly
-    against the replacement file.  when in doubt, increment the version number.
-    some folks automatically increment the revision level every week. */
-  int v_build() const;
-    //!< build number.
-    /*!< this number is not considered important when comparing file
-    compatibility.  the compatible() method always returns true if two files
-    differ only in the "build" number (rather than major, minor or revision).
-    this allows patches to be created with a newer (larger) build number, but
-    still link fine with existing dlls.  since the file is distinguished by
-    more than just its time stamp, it allows changes to an installation to be
-    tracked very precisely.  some folks keep a catalog of patched components
-    for each software release and index the patch details by the different
-    build numbers. */
-
-  bool compatible(const version &that) const;
-    //!< returns true if this is compatible with "that" version on win32.
-    /*!< that means that all version components are the same except for the
-    last one, the build number.  we allow the build numbers to fluctuate so
-    that patched components can be installed without causing version
-    complaints. */
-
-  bool bogus() const;
-    //!< returns true if the version held here is clearly bogus.
-    /*!< this means that all four numbers are zero. */
-
-//////////////
-
-  static void *__global_module_handle();
-    //!< a static resource required to identify the actual win32 module that this lives in.
-    /*!< this handle is stored statically when the libraries are started up.  it records
-    the handle of the module they belong to for later use in checking versions. */
-    
-//hmmm: storage here is still missing!
-
-private:
-  structures::string_array *_components;  //!< our list of version components.
-};
-
-//////////////
-
-//! Holds all information about a file's versioning.
-/*! Not all of these fields are meaningful on every platform. */
-
-class version_record : public virtual basis::root_object
-{
-public:
-  virtual ~version_record();
-
-  DEFINE_CLASS_NAME("version_record");
-
-  basis::astring text_form() const;
-    // returns a view of the fields in this record. 
-
-  // these describe a particular file:
-  basis::astring description;  // the purpose of this file.
-  version file_version;  // the version number for this file.
-  basis::astring internal_name;  // the internal name of the file.
-  basis::astring original_name;  // name of file before possible renamings.
-
-  // these describe the project that the file belongs to:
-  basis::astring product_name;  // the product this file belongs to.
-  version product_version;  // the version of the product.
-
-  // these describe the creators of the file:
-  basis::astring company_name;  // name of the company that created the file.
-
-  // legal matters:
-  basis::astring copyright;  // copyright info for this file.
-  basis::astring trademarks;  // trademarks related to the file.
-
-  // extra pieces not stored in record (yet).
-  basis::astring web_address;  // the location of the company on the web.
-};
-
-//////////////
-
-} //namespace.
-
-#endif
-