Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VersionInfo.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* VersionInfo.cc (C) 2000-2018 */
9/* */
10/* Informations sur une version d'un objet. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/ArcanePrecomp.h"
15
16#include "arcane/utils/Iostream.h"
17#include "arcane/utils/String.h"
18
19#include "arcane/utils/VersionInfo.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24ARCANE_BEGIN_NAMESPACE
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29VersionInfo::
30VersionInfo()
31: m_major(0)
32, m_minor(0)
33, m_patch(0)
34{
35}
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
41VersionInfo(int vmajor,int vminor,int vpatch)
42: m_major(vmajor)
43, m_minor(vminor)
44, m_patch(vpatch)
45{
46}
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50
51static void
52_parseStr(std::istream& istr,int& version)
53{
54 if (!istr.good())
55 return;
56 int z = 0;
57 char buf[2];
58 istr >> z;
59 istr.read(buf,1);
60 if (z<0)
61 z = 0;
62 version = z;
63}
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
69VersionInfo(const String& version_str)
70: m_major(0)
71, m_minor(0)
72, m_patch(0)
73{
74 std::istringstream istr(version_str.localstr());
75 _parseStr(istr,m_major);
76 _parseStr(istr,m_minor);
77 _parseStr(istr,m_patch);
78}
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83void VersionInfo::
84write(std::ostream& o) const
85{
86 o << versionMajor() << '.' << versionMinor() << '.' << versionPatch();
87}
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
93versionAsString() const
94{
95 return String::format("{0}.{1}.{2}",versionMajor(),versionMinor(),versionPatch());
96}
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101std::ostream&
102operator<<(std::ostream& o,const VersionInfo& vi)
103{
104 vi.write(o);
105 return o;
106}
107
108/*---------------------------------------------------------------------------*/
109/*---------------------------------------------------------------------------*/
110
111ARCANE_END_NAMESPACE
112
113/*---------------------------------------------------------------------------*/
114/*---------------------------------------------------------------------------*/
115
Informations sur une version.
Definition VersionInfo.h:46
String versionAsString() const
Numéro de version sous la forme d'une chaîne de caractères.
int versionMajor() const
Retourne le numéro de version majeur.
Definition VersionInfo.h:64
VersionInfo()
Construit une version nulle.
int versionMinor() const
Retourne le numéro de version mineur.
Definition VersionInfo.h:66
int versionPatch() const
Retourne le numéro de version patch.
Definition VersionInfo.h:68
Chaîne de caractères unicode.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
Definition String.cc:227
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.