forked from IntelRealSense/RealSenseID
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNonSecureHostSession.cc
80 lines (66 loc) · 1.83 KB
/
NonSecureHostSession.cc
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// License: Apache 2.0. See LICENSE file in root directory.
// Copyright(c) 2020-2021 Intel Corporation. All Rights Reserved.
#include "NonSecureHostSession.h"
#include "PacketSender.h"
#include "Logger.h"
#include <stdexcept>
#include <string>
#include <cassert>
static const char* LOG_TAG = "NonSecureHostSession";
namespace RealSenseID
{
namespace PacketManager
{
Status NonSecureHostSession::Start(SerialConnection* serial_conn)
{
std::lock_guard<std::mutex> lock {_mutex};
LOG_DEBUG(LOG_TAG, "start session");
if (serial_conn == nullptr)
{
throw std::runtime_error("NonSecureHostSession: SerialConnection is null");
}
_serial = serial_conn;
return Status::Ok;
}
bool NonSecureHostSession::IsOpen()
{
return _serial != nullptr;
}
NonSecureHostSession::~NonSecureHostSession()
{
LOG_DEBUG(LOG_TAG, "close session");
}
Status NonSecureHostSession::SendPacket(SerialPacket& packet)
{
std::lock_guard<std::mutex> lock {_mutex};
assert(_serial != nullptr);
PacketSender sender {_serial};
return sender.Send(packet);
}
Status NonSecureHostSession::RecvPacket(SerialPacket& packet)
{
std::lock_guard<std::mutex> lock {_mutex};
assert(_serial != nullptr);
PacketSender sender {_serial};
return sender.Recv(packet);
}
Status NonSecureHostSession::RecvFaPacket(FaPacket& packet)
{
auto res_status = RecvPacket(packet);
if (res_status != Status::Ok)
{
return res_status;
}
return IsFaPacket(packet) ? Status::Ok : Status::RecvUnexpectedPacket;
}
Status NonSecureHostSession::RecvDataPacket(DataPacket& packet)
{
auto res_status = RecvPacket(packet);
if (res_status != Status::Ok)
{
return res_status;
}
return IsDataPacket(packet) ? Status::Ok : Status::RecvUnexpectedPacket;
}
} // namespace PacketManager
} // namespace RealSenseID