Skip to content

Commit b6b84f4

Browse files
Expand c++ API parity, dedup
1 parent 8d502b5 commit b6b84f4

File tree

8 files changed

+110
-84
lines changed

8 files changed

+110
-84
lines changed

include/fenix.hpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,24 @@ void init(const Args::FenixInitArgs args);
110110
//!@brief Throw an exception for the most recent fault. Helpful for spares.
111111
void throw_exception();
112112

113+
//!@brief Overload of #Fenix_get_role
114+
Fenix_Rank_role role();
115+
116+
//!@brief Overload of #Fenix_get_error
117+
int error();
118+
119+
//!@brief Overload of #Fenix_Callback_register
120+
int callback_register(std::function<void(MPI_Comm, int)> callback);
121+
122+
//@!brief Overload of #Fenix_Callback_pop
123+
int callback_pop();
124+
125+
//!@brief Overload of #Fenix_Process_detect_failures
126+
int detect_failures(bool recover = true);
127+
128+
//!@brief Overload of #Fenix_Initialized that directly returns true if initialized
129+
bool initialized();
130+
113131
} // namespace Fenix
114132

115133
namespace Fenix::Data {
@@ -118,6 +136,17 @@ extern const DataSubset SUBSET_FULL;
118136
extern const DataSubset SUBSET_EMPTY;
119137
extern DataSubset SUBSET_IGNORE;
120138

139+
//@!brief Overload of Fenix_Data_group_create
140+
int group_create(
141+
int group_id, MPI_Comm comm, int start_time_stamp, int depth,
142+
int policy_name, void* policy_value, int* flag
143+
);
144+
145+
//@!brief Overload of Fenix_Data_member_create
146+
int member_create(
147+
int group_id, int member_id, void* buffer, int count, MPI_Datatype datatype
148+
);
149+
121150
//!@brief Overload of #Fenix_Data_member_store
122151
int member_store(int group_id, int member_id, const DataSubset& subset);
123152

@@ -148,6 +177,21 @@ int member_lrestore(
148177
int time_stamp, DataSubset& data_found
149178
);
150179

180+
//@!brief overload of #Fenix_Data_commit
181+
int commit(int group_id, int* time_stamp = nullptr);
182+
183+
//@!brief overload of #Fenix_Data_commit
184+
int commit_barrier(int group_id, int* time_stamp = nullptr);
185+
186+
//@!brief Overload of #Fenix_Data_snapshot_delete
187+
int snapshot_delete(int group_id, int timestamp);
188+
189+
//@!brief overload of Fenix_Data_group_delete
190+
int group_delete(int group_id);
191+
192+
//@!brief overload of Fenix_Data_member_delete
193+
int member_delete(int group_id, int member_id);
194+
151195
} // namespace Fenix::Data
152196

153197
#endif

include/fenix_data_group.hpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,6 @@ typedef struct __group_entry_packet {
125125

126126
fenix_data_recovery_t * __fenix_data_recovery_init();
127127

128-
int __fenix_group_delete(int groupid);
129-
130-
int __fenix_member_delete(int groupid, int memberid);
131-
132128
void __fenix_data_recovery_destroy( fenix_data_recovery_t *fx_data_recovery );
133129

134130
void __fenix_data_recovery_reinit( fenix_data_recovery_t *dr, fenix_two_container_packet_t packet);

include/fenix_data_recovery.hpp

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -98,34 +98,17 @@ typedef struct __data_entry_packet {
9898
} fenix_data_entry_packet_t;
9999

100100

101-
int __fenix_group_create(int, MPI_Comm, int, int, int, void*, int*);
102101
int __fenix_group_get_redundancy_policy(int, int*, int*, int*);
103-
int __fenix_member_create(int, int, void *, int, int);
104102
int __fenix_data_wait(Fenix_Request);
105103
int __fenix_data_test(Fenix_Request, int *);
106-
int __fenix_member_store(int, int, const DataSubset&);
107-
int __fenix_member_storev(int, int, const DataSubset&);
108-
int __fenix_member_istore(int, int, const DataSubset&, Fenix_Request *);
109-
int __fenix_member_istorev(int, int, const DataSubset&, Fenix_Request *);
110-
int __fenix_data_commit(int, int *);
111-
int __fenix_data_commit_barrier(int, int *);
112104
int __fenix_data_barrier(int);
113-
int __fenix_member_restore(int, int, void *, int, int, DataSubset&);
114-
int __fenix_member_lrestore(int, int, void *, int, int, DataSubset&);
115105
int __fenix_member_restore_from_rank(int, int, void *, int, int, int);
116106
int __fenix_get_number_of_members(int, int *);
117107
int __fenix_get_member_at_position(int, int *, int);
118108
int __fenix_get_number_of_snapshots(int, int *);
119109
int __fenix_get_snapshot_at_position(int, int, int *);
120110
int __fenix_member_get_attribute(int, int, int, void *, int *, int);
121111
int __fenix_member_set_attribute(int, int, int, void *, int *);
122-
int __fenix_snapshot_delete(int groupid, int timestamp);
123-
124-
int __fenix_group_delete(int);
125-
int __fenix_member_delete(int, int);
126-
127-
void __fenix_init_data_recovery();
128-
void __fenix_init_partner_copy_recovery();
129112

130113
}
131114

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ set (Fenix_SOURCES
2626
fenix_data_member.cpp
2727
fenix_data_subset.cpp
2828
fenix_callbacks.cpp
29-
globals.cpp
29+
fenix_ext.cpp
3030
)
3131

3232
add_library(fenix STATIC ${Fenix_SOURCES})

src/fenix.cpp

Lines changed: 28 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,17 @@ int Fenix_Finalize() {
9898
return FENIX_SUCCESS;
9999
}
100100

101-
int Fenix_Data_group_create( int group_id, MPI_Comm comm, int start_time_stamp, int depth, int policy_name,
102-
void* policy_value, int* flag) {
103-
return __fenix_group_create(group_id, comm, start_time_stamp, depth, policy_name, policy_value, flag);
101+
int Fenix_Data_group_create(
102+
int group_id, MPI_Comm comm, int start_time_stamp, int depth, int policy,
103+
void* policy_args, int* flag
104+
) {
105+
return group_create(
106+
group_id, comm, start_time_stamp, depth, policy, policy_args, flag
107+
);
104108
}
105109

106110
int Fenix_Data_member_create( int group_id, int member_id, void *buffer, int count, MPI_Datatype datatype ) {
107-
return __fenix_member_create(group_id, member_id, buffer, count, __fenix_get_size(datatype));
111+
return member_create(group_id, member_id, buffer, count, datatype);
108112
}
109113

110114
int Fenix_Data_group_get_redundancy_policy( int group_id, int* policy_name, void *policy_value, int *flag ) {
@@ -136,11 +140,11 @@ int Fenix_Data_member_istorev(int group_id, int member_id, const Fenix_Data_subs
136140
}
137141

138142
int Fenix_Data_commit(int group_id, int *time_stamp) {
139-
return __fenix_data_commit(group_id, time_stamp);
143+
return commit(group_id, time_stamp);
140144
}
141145

142146
int Fenix_Data_commit_barrier(int group_id, int *time_stamp) {
143-
return __fenix_data_commit_barrier(group_id, time_stamp);
147+
return commit_barrier(group_id, time_stamp);
144148
}
145149

146150
int Fenix_Data_barrier(int group_id) {
@@ -214,15 +218,15 @@ int Fenix_Data_member_attr_set(int group_id, int member_id, int attribute_name,
214218
}
215219

216220
int Fenix_Data_snapshot_delete(int group_id, int time_stamp) {
217-
return __fenix_snapshot_delete(group_id, time_stamp);
221+
return snapshot_delete(group_id, time_stamp);
218222
}
219223

220224
int Fenix_Data_group_delete(int group_id) {
221-
return __fenix_group_delete(group_id);
225+
return group_delete(group_id);
222226
}
223227

224228
int Fenix_Data_member_delete(int group_id, int member_id) {
225-
return __fenix_member_delete(group_id, member_id);
229+
return member_delete(group_id, member_id);
226230
}
227231

228232
int Fenix_Process_fail_list(int** fail_list){
@@ -250,11 +254,11 @@ int Fenix_Process_detect_failures(int do_recovery){
250254
}
251255

252256
Fenix_Rank_role Fenix_get_role(){
253-
return (Fenix_Rank_role) fenix.role;
257+
return role();
254258
}
255259

256260
int Fenix_get_error(){
257-
return fenix.repair_result;
261+
return error();
258262
}
259263

260264
namespace Fenix {
@@ -270,49 +274,28 @@ void throw_exception(){
270274
throw CommException(*fenix.user_world, *fenix.ret_error);
271275
}
272276

273-
} // namespace Fenix
274-
275-
namespace Fenix::Data {
276-
277-
int member_store(int group_id, int member_id, const DataSubset& subset){
278-
return __fenix_member_store(group_id, member_id, subset);
277+
Fenix_Rank_role role(){
278+
return (Fenix_Rank_role) fenix.role;
279279
}
280280

281-
int member_storev(int group_id, int member_id, const DataSubset& subset){
282-
return __fenix_member_storev(group_id, member_id, subset);
281+
int error(){
282+
return fenix.repair_result;
283283
}
284284

285-
int member_istore(
286-
int group_id, int member_id, const DataSubset& subset,
287-
Fenix_Request *request
288-
){
289-
fatal_print("unimplemented");
290-
return 0;
285+
int callback_register(std::function<void(MPI_Comm, int)> callback){
286+
return __fenix_callback_register(callback);
291287
}
292288

293-
int member_istorev(
294-
int group_id, int member_id, const DataSubset& subset,
295-
Fenix_Request *request
296-
){
297-
fatal_print("unimplemented");
298-
return 0;
289+
int callback_pop() {
290+
return __fenix_callback_pop();
299291
}
300292

301-
int member_restore(
302-
int group_id, int member_id, void *target_buffer, int max_count,
303-
int time_stamp, DataSubset& data_found
304-
) {
305-
data_found = {};
306-
return __fenix_member_restore(group_id, member_id, target_buffer, max_count, time_stamp, data_found);
293+
int detect_failures(bool recover){
294+
return __fenix_detect_failures(recover);
307295
}
308296

309-
int member_lrestore(
310-
int group_id, int member_id, void *target_buffer, int max_count,
311-
int time_stamp, DataSubset& data_found
312-
) {
313-
data_found = {};
314-
return __fenix_member_lrestore(group_id, member_id, target_buffer, max_count, time_stamp, data_found);
297+
bool initialized(){
298+
return fenix.fenix_init_flag;
315299
}
316300

317-
} // namespace Fenix::Data
318-
301+
} // namespace Fenix

src/fenix_data_group.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ fenix_data_recovery_t * __fenix_data_recovery_init() {
110110
return data_recovery;
111111
}
112112

113-
int __fenix_member_delete(int groupid, int memberid) {
113+
int member_delete(int groupid, int memberid) {
114114
auto [group_index, group] = find_group(groupid);
115115
if(!group) return FENIX_ERROR_INVALID_GROUPID;
116116

@@ -173,7 +173,7 @@ int __fenix_data_recovery_remove_group(int group_index){
173173
* @brief
174174
* @param group_id
175175
*/
176-
int __fenix_group_delete(int groupid) {
176+
int group_delete(int groupid) {
177177
auto [group_index, group] = find_group(groupid);
178178
if(!group) return FENIX_ERROR_INVALID_GROUPID;
179179

src/fenix_data_policy_in_memory_raid.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -849,10 +849,10 @@ int Group::member_restore(
849849
);
850850

851851
if(!found_members[set_rank]){
852-
__fenix_member_create(
853-
groupid, packet.memberid, target_buffer, packet.current_count,
852+
this->member_create(__fenix_data_member_add_entry(
853+
this, packet.memberid, target_buffer, packet.current_count,
854854
packet.datatype_size
855-
);
855+
));
856856
member = find_member(member_id);
857857
assert(member);
858858
}

0 commit comments

Comments
 (0)