Skip to content

Commit 5ff197d

Browse files
authored
Merge pull request #40 from rok4/develop
Release 1.4.0
2 parents 5c41508 + 6fc2601 commit 5ff197d

8 files changed

Lines changed: 325 additions & 208 deletions

File tree

.github/workflows/pr-auto-labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: "🏷 PR Labeler"
22
on:
3-
- pull_request
3+
- pull_request_target
44

55
permissions:
66
contents: read

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
## 1.4.0
2+
3+
### [Added]
4+
5+
* Stockage objet (S3, Swift et Ceph)
6+
* Possibilité de définir un nombre de tentatives pour les lectures (1 par défaut) : variable d'environnement `ROK4_OBJECT_READ_ATTEMPTS`
7+
* Possibilité de définir un nombre de tentatives pour les écritures (1 par défaut) : variable d'environnement `ROK4_OBJECT_WRITE_ATTEMPTS`
8+
* Possibilité de définir un temps d'attente, en secondes, entre les tentatives (5 par défaut) : variable d'environnement `ROK4_OBJECT_ATTEMPTS_WAIT`
9+
110
## 1.3.1
211

312
### [Fixed]
@@ -22,7 +31,7 @@
2231

2332
### [Fixed]
2433

25-
* `Cache` : les modifications dans le cache quand il n'est pas par thread (index des dalles, TMS et styles) se font en xxclusion mutuelle (mutex lock et unlock)
34+
* `Cache` : les modifications dans le cache quand il n'est pas par thread (index des dalles, TMS et styles) se font en exclusion mutuelle (mutex lock et unlock)
2635

2736
## 1.2.3
2837

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ Leur définition est contrôlée à l'usage.
4646
- `ROK4_TMS_NO_CACHE` : ne pas utiliser le système de cache pour le chargement des TMS (on recharge le TMS depuis le fichier / objet à chaque chargement de couche). Toute valeur désactivera le cache
4747
- `ROK4_STYLES_DIRECTORY` : dossier (fichier ou objet) contenant les styles. Le style `normal` sera chargé depuis le fichier/objet `<ROK4_STYLES_DIRECTORY>/normal.json`
4848
- `ROK4_STYLES_NO_CACHE` : ne pas utiliser le système de cache pour le chargement des styles (on recharge le style depuis le fichier / objet à chaque chargement de couche). Toute valeur désactivera le cache.
49+
* Pour le stockage objet (non obligatoire, possibilité de surcharger via des appels)
50+
- `ROK4_OBJECT_READ_ATTEMPTS` : nombre de tentatives pour les lectures
51+
- `ROK4_OBJECT_WRITE_ATTEMPTS` : nombre de tentatives pour les écritures
52+
- `ROK4_OBJECT_ATTEMPTS_WAIT` : temps d'attente en secondes entre les tentatives
4953
* Pour le stockage S3
5054
- `ROK4_S3_URL`
5155
- `ROK4_S3_KEY`

include/rok4/storage/Context.h

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
#include <string.h>
5656
#include <sstream>
5757

58+
#define ROK4_OBJECT_READ_ATTEMPTS "ROK4_OBJECT_READ_ATTEMPTS"
59+
#define ROK4_OBJECT_WRITE_ATTEMPTS "ROK4_OBJECT_WRITE_ATTEMPTS"
60+
#define ROK4_OBJECT_ATTEMPTS_WAIT "ROK4_OBJECT_ATTEMPTS_WAIT"
61+
5862
/**
5963
* \author Institut national de l'information géographique et forestière
6064
* \~french \brief Gestion des informations liées au format de canal
@@ -138,26 +142,68 @@ class Context {
138142
bool connected;
139143

140144
/**
141-
* \~french \brief Nombre de tentatives pour en lecture ou écriture
142-
* \~english \brief Attempts number to read or write
145+
* \~french \brief Nombre de tentatives pour en lecture
146+
* \~english \brief Attempts number to read
147+
*/
148+
int read_attempts;
149+
150+
/**
151+
* \~french \brief Nombre de tentatives pour en écriture
152+
* \~english \brief Attempts number to write
143153
*/
144-
int attempts;
154+
int write_attempts;
155+
156+
/**
157+
* \~french \brief Temps d'attente en secondes entre 2 tentatives
158+
* \~english \brief Waiting time, in seconds between two attempts
159+
*/
160+
int waiting_time;
145161

146162
/**
147163
* \~french \brief Crée un objet Context
148164
* \~english \brief Create a Context object
149165
*/
150-
Context () : connected(false), attempts(1) { }
166+
Context ();
151167

152168
public:
153169

154170
/**
155-
* \~french \brief Modifie le nombre de tentative
156-
* \~english \brief Change attempts number
171+
* \~french \brief Modifie le temps d'attente entre deux tentatives
172+
* \param[in] t Temps en secondes
173+
* \~english \brief Change waiting time between two attempts
174+
* \param[in] t Time, in seconds
175+
*/
176+
void setWaitingTime (int t) {
177+
if (t < 0) t = 0;
178+
waiting_time = t;
179+
}
180+
181+
/**
182+
* \~french \brief Modifie le nombre de tentative pour la lecture
183+
* \~english \brief Change attempts number for readings
184+
*/
185+
void setReadAttempts (int a) {
186+
if (a < 1) a = 1;
187+
read_attempts = a;
188+
}
189+
190+
/**
191+
* \~french \brief Modifie le nombre de tentative pour l'écriture
192+
* \~english \brief Change attempts number for writtings
193+
*/
194+
void setWriteAttempts (int a) {
195+
if (a < 1) a = 1;
196+
write_attempts = a;
197+
}
198+
199+
/**
200+
* \~french \brief Modifie le nombre de tentative pour l'écriture et la lecture
201+
* \~english \brief Change attempts number for writtings and readings
157202
*/
158203
void setAttempts (int a) {
159204
if (a < 1) a = 1;
160-
attempts = a;
205+
read_attempts = a;
206+
write_attempts = a;
161207
}
162208

163209
/**

src/storage/Context.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,21 @@ void split_path(std::string path, ContextType::eContextType& type, std::string&
110110
}
111111

112112
}
113+
114+
Context::Context () : connected(false) {
115+
116+
char* e = getenv (ROK4_OBJECT_READ_ATTEMPTS);
117+
if (e == NULL || sscanf ( e, "%d", &read_attempts ) != 1 ) {
118+
read_attempts = 1;
119+
}
120+
121+
e = getenv (ROK4_OBJECT_WRITE_ATTEMPTS);
122+
if (e == NULL || sscanf ( e, "%d", &write_attempts ) != 1 ) {
123+
write_attempts = 1;
124+
}
125+
126+
e = getenv (ROK4_OBJECT_ATTEMPTS_WAIT);
127+
if (e == NULL || sscanf ( e, "%d", &waiting_time ) != 1 ) {
128+
waiting_time = 5;
129+
}
130+
}

0 commit comments

Comments
 (0)