-
Notifications
You must be signed in to change notification settings - Fork 0
/
StreamHandler.h
67 lines (55 loc) · 1.32 KB
/
StreamHandler.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
67
#ifndef STREAMHANDLER_H
#define STREAMHANDLER_H
#include <string>
#include <queue>
namespace BlinkAnalysis
{
using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text;
using namespace System::Collections;
using namespace System::Threading;
/**
* Handles a single client socket for streaming
*/
public ref class StreamHandler {
// socket opened to client
TcpClient^ ClientSocket ;
bool ContinueProcess;
bool streamData;
// thread for listening to client commands
Thread^ ClientThread ;
int ClientNumber;
ASCIIEncoding^ ascii;
std::queue<std::string>* frames;
Thread^ StreamThread;
Object^ sync;
private:
// if socket exception, test if client still responsive
bool TestConnection();
// stream static data header
void streamHeader();
// main looping thread
void Process();
void Stream();
public:
StreamHandler (TcpClient^ ClientSocket, int ClientNumber);
~StreamHandler() { delete frames; }
void Start();
void Stop();
bool Alive();
bool getStreamData() { return streamData; }
void addFrame(std::string frame);
};
public ref class FrameObject
{
public:
FrameObject(StreamHandler^ h, String^ str)
{ handler = h; frame = str; }
StreamHandler^ handler;
String^ frame;
};
}
#endif