-
Notifications
You must be signed in to change notification settings - Fork 0
/
ModelCompare.h
66 lines (55 loc) · 2.08 KB
/
ModelCompare.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef ModelCompare_H
#define ModelCompare_H
/**
* Author: fco.ja.ac@gmail.com
* Date: 21/12/14
* Time: 12:20
*/
#include <stdbool.h>
#include "KMF4C.h"
/*
#include <microframework/api/trace/TraceSequence.h>
#include <microframework/api/KMFContainer.h>
#include <list>
*/
typedef struct _ModelCompare ModelCompare;
typedef struct _ContainerRoot ContainerRoot;
typedef struct _TraceSequence TraceSequence;
typedef void ** list_t;
typedef TraceSequence *(*fptrCreateSequence)(ModelCompare*);
typedef TraceSequence *(*fptrDiff)(ModelCompare*, ContainerRoot*, ContainerRoot*);
typedef TraceSequence *(*fptrMerge)(ModelCompare*, ContainerRoot*, ContainerRoot*);
typedef TraceSequence *(*fptrInter)(ModelCompare*, ContainerRoot*, ContainerRoot*);
typedef list_t (*fptrInternalDiff)(ModelCompare*, ContainerRoot*, ContainerRoot*, bool, bool);
typedef struct _ModelCompare {
fptrCreateSequence createSequence;
fptrDiff diff;
fptrMerge merge;
fptrInter inter;
TraceSequence seq;
fptrInternalDiff internal_diff;
fptrDelete delete;
} ModelCompare;
ModelCompare *new_ModelCompare(void);
void delete_ModelCompare(void *const this);
TraceSequence *TraceSequence_createSequence(ModelCompare *const this);
TraceSequence *TraceSequence_diff(ModelCompare *const this, ContainerRoot *origin, ContainerRoot *target);
TraceSequence *TraceSequence_merge(ModelCompare *const this, ContainerRoot *origin, ContainerRoot *target);
TraceSequence *TraceSequence_inter(ModelCompare *const this, ContainerRoot *origin, ContainerRoot *target);
list_t Trace_sequence_internal_diff(ModelCompare *const this, ContainerRoot *origin, ContainerRoot *target, bool inter, bool merge);
/*
class ModelCompare
{
public:
~ModelCompare(){ }
TraceSequence* createSequence ();
TraceSequence* diff (KMFContainer *origin, KMFContainer *target);
TraceSequence* merge (KMFContainer *origin, KMFContainer *target);
TraceSequence* inter (KMFContainer *origin, KMFContainer *target);
private:
TraceSequence seq;
std::list < ModelTrace * > *internal_diff (KMFContainer *origin,KMFContainer *target,bool inter, bool merge);
};
*/
// END CLASS
#endif