00001 00041 #ifndef LibMultiSense_CamHistoryMessage 00042 #define LibMultiSense_CamHistoryMessage 00043 00044 #include "details/utility/Portability.hh" 00045 00046 namespace crl { 00047 namespace multisense { 00048 namespace details { 00049 namespace wire { 00050 00051 class CamHistory { 00052 public: 00053 static CRL_CONSTEXPR IdType ID = ID_DATA_CAM_HISTORY; 00054 static CRL_CONSTEXPR VersionType VERSION = 1; 00055 00056 // 00057 // To help debug network issues with the customer, we keep track of 00058 // the frame numbers of the images we send. This constant determines 00059 // how much history we should remember 00060 00061 static CRL_CONSTEXPR uint32_t HISTORY_LENGTH = 50; 00062 00063 // 00064 // A list of recently-sent frame numbers. '-1' if invalid 00065 00066 int64_t historyP[HISTORY_LENGTH]; 00067 00068 // 00069 // Constructors 00070 00071 CamHistory(utility::BufferStreamReader&r, VersionType v) {serialize(r,v);}; 00072 CamHistory() {}; 00073 00074 // 00075 // Serialization routine 00076 00077 template<class Archive> 00078 void serialize(Archive& message, 00079 const VersionType version) 00080 { 00081 for(unsigned int i = 0; i < HISTORY_LENGTH; i++) 00082 message & historyP[i]; 00083 } 00084 }; 00085 00086 }}}}; // namespaces 00087 00088 #endif