VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
splitMessageCollector.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 #include <vlutil/vlTime.h>
10 #include <map>
11 
12 namespace makVrf
13 {
14  class DtSplitMessageCollector;
15  typedef DtSplitMessageCollector* (*DtSplitMessageCollectorCreatorFcn)();
16 
18  {
19  public:
20  struct SplitInfo
21  {
23  int messageId;
24  int chunkSize;
28  int sizeSoFar;
29  };
30 
32  virtual ~DtSplitMessageCollector();
33 
36  virtual bool assembleMessage(const char* inputBuffer, char*& buffer, int& dataLen, int& dataType);
37 
39  virtual unsigned int dataType(const char* inputBuffer) const;
40 
41  static void setSplitMessageCollectorCreatorFunction(DtSplitMessageCollectorCreatorFcn);
42  static DtSplitMessageCollector* createSplitMessageCollector();
43 
45  virtual void processTimeouts();
46 
47  void setTimeoutTime(double);
48  double timeoutTime() const
49  {
50  return myTimeoutTime;
51  }
52 
53  protected:
55 
56  struct Collection
57  {
60  double timeReceived;
61  char* pData;
62  char* dataLen;
63  };
64 
65  typedef std::map<int, Collection> CollectedMessages;
68  double myTimeoutTime;
69  };
70 }
static DtSplitMessageCollectorCreatorFcn theCreatorFunction
Definition: splitMessageCollector.h:54
int sizeSoFar
Definition: splitMessageCollector.h:28
int sequenceNumber
Definition: splitMessageCollector.h:26
Definition: splitMessageCollector.h:56
Definition: splitMessageCollector.h:17
DtSplitMessageCollector *(* DtSplitMessageCollectorCreatorFcn)()
Definition: splitMessageCollector.h:15
int chunkSize
Definition: splitMessageCollector.h:24
char * inputBuffer
Definition: lz4.h:460
int totalExpected
Definition: splitMessageCollector.h:59
int originalMessageSize
Definition: splitMessageCollector.h:25
int messageId
Definition: splitMessageCollector.h:23
double timeReceived
Definition: splitMessageCollector.h:60
CollectedMessages myCollectedMessages
Definition: splitMessageCollector.h:66
char * dataLen
Definition: splitMessageCollector.h:62
char * pData
Definition: splitMessageCollector.h:61
double myTimeoutTime
Definition: splitMessageCollector.h:68
int totalInSequence
Definition: splitMessageCollector.h:27
int originalContentType
Definition: splitMessageCollector.h:22
std::map< int, Collection > CollectedMessages
Definition: splitMessageCollector.h:65
DtClock myClock
Definition: splitMessageCollector.h:67
Definition: splitMessageCollector.h:20
double timeoutTime() const
Definition: splitMessageCollector.h:48
int totalReceived
Definition: splitMessageCollector.h:58

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)