-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDsaOpContext.h
51 lines (40 loc) · 1.12 KB
/
DsaOpContext.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
#ifndef __DSA_OP_CONTEXT__
#define __DSA_OP_CONTEXT__
#include <sys/socket.h>
#include <polysat/polysat.h>
#include "OpContext.h"
#include "CCardI2CX.h"
namespace IrvCS
{
class DsaOpContext:public OpContext
{
public:
DsaOpContext(Process *proc, struct sockaddr_in *src, CCardI2CX *expander,
volatile bool &inProgress):proc_(proc), expander_(expander),
inProgress_(inProgress)
{
inProgress_=true;
memcpy(&src_, src, sizeof(struct sockaddr_in));
}
~DsaOpContext()
{
inProgress_=false;
}
OpStatus setStatus(OpStatus status)
{
CCardStatus cCardStatus;
cCardStatus.status=status;
expander_->getStates(cCardStatus.portStatus, cCardStatus.dsaDeployState);
// send the response
PROC_cmd_sockaddr(proc_->getProcessData(), CCARD_RESPONSE,
&cCardStatus, sizeof(cCardStatus), &src_);
return StatOk;
}
private:
Process *proc_;
struct sockaddr_in src_;
CCardI2CX *expander_;
volatile bool &inProgress_;
};
}
#endif