19 TEST_CASE(
"TimelineLabelPacketTestNoBuffer")
21 const uint64_t profilingGuid = 123456u;
22 const std::string label =
"some label";
23 unsigned int numberOfBytesWritten = 789u;
28 numberOfBytesWritten);
29 CHECK(result == TimelinePacketStatus::BufferExhaustion);
30 CHECK(numberOfBytesWritten == 0);
33 TEST_CASE(
"TimelineLabelPacketTestBufferExhaustionZeroValue")
35 std::vector<unsigned char> buffer(512, 0);
37 const uint64_t profilingGuid = 123456u;
38 const std::string label =
"some label";
39 unsigned int numberOfBytesWritten = 789u;
44 numberOfBytesWritten);
45 CHECK(result == TimelinePacketStatus::BufferExhaustion);
46 CHECK(numberOfBytesWritten == 0);
49 TEST_CASE(
"TimelineLabelPacketTestBufferExhaustionFixedValue")
51 std::vector<unsigned char> buffer(10, 0);
53 const uint64_t profilingGuid = 123456u;
54 const std::string label =
"some label";
55 unsigned int numberOfBytesWritten = 789u;
60 numberOfBytesWritten);
61 CHECK(result == TimelinePacketStatus::BufferExhaustion);
62 CHECK(numberOfBytesWritten == 0);
65 TEST_CASE(
"TimelineLabelPacketTestInvalidLabel")
67 std::vector<unsigned char> buffer(512, 0);
69 const uint64_t profilingGuid = 123456u;
70 const std::string label =
"s0m€ l@b€l";
71 unsigned int numberOfBytesWritten = 789u;
76 numberOfBytesWritten);
77 CHECK(result == TimelinePacketStatus::Error);
78 CHECK(numberOfBytesWritten == 0);
81 TEST_CASE(
"TimelineLabelPacketTestSingleConstructionOfData")
83 std::vector<unsigned char> buffer(512, 0);
85 const uint64_t profilingGuid = 123456u;
86 const std::string label =
"some label";
87 unsigned int numberOfBytesWritten = 789u;
92 numberOfBytesWritten);
93 CHECK(result == TimelinePacketStatus::Ok);
94 CHECK(numberOfBytesWritten == 28);
97 unsigned int uint64_t_size =
sizeof(uint64_t);
100 unsigned int offset = 0;
101 uint32_t decl_Id =
ReadUint32(buffer.data(), offset);
102 CHECK(decl_Id == uint32_t(0));
106 uint64_t readProfilingGuid =
ReadUint64(buffer.data(), offset);
107 CHECK(readProfilingGuid == profilingGuid);
110 offset += uint64_t_size;
111 uint32_t swTraceLabelLength =
ReadUint32(buffer.data(), offset);
112 CHECK(swTraceLabelLength == 11);
115 CHECK(std::memcmp(buffer.data() + offset,
117 swTraceLabelLength - 1) == 0);
120 CHECK(buffer[offset] ==
'\0');
123 TEST_CASE(
"TimelineRelationshipPacketNullBufferTest")
126 const uint64_t relationshipGuid = 123456u;
127 const uint64_t headGuid = 234567u;
128 const uint64_t tailGuid = 345678u;
129 const uint64_t attributeGuid = 876345u;
130 unsigned int numberOfBytesWritten = 789u;
138 numberOfBytesWritten);
139 CHECK(result == TimelinePacketStatus::BufferExhaustion);
140 CHECK(numberOfBytesWritten == 0);
143 TEST_CASE(
"TimelineRelationshipPacketZeroBufferSizeTest")
145 std::vector<unsigned char> buffer(512, 0);
148 const uint64_t relationshipGuid = 123456u;
149 const uint64_t headGuid = 234567u;
150 const uint64_t tailGuid = 345678u;
151 const uint64_t attributeGuid = 876345u;
152 unsigned int numberOfBytesWritten = 789u;
160 numberOfBytesWritten);
161 CHECK(result == TimelinePacketStatus::BufferExhaustion);
162 CHECK(numberOfBytesWritten == 0);
165 TEST_CASE(
"TimelineRelationshipPacketSmallBufferSizeTest")
167 std::vector<unsigned char> buffer(10, 0);
170 const uint64_t relationshipGuid = 123456u;
171 const uint64_t headGuid = 234567u;
172 const uint64_t tailGuid = 345678u;
173 const uint64_t attributeGuid = 876345u;
174 unsigned int numberOfBytesWritten = 789u;
183 numberOfBytesWritten);
184 CHECK(result == TimelinePacketStatus::BufferExhaustion);
185 CHECK(numberOfBytesWritten == 0);
188 TEST_CASE(
"TimelineRelationshipPacketInvalidRelationTest")
190 std::vector<unsigned char> buffer(512, 0);
192 const uint64_t relationshipGuid = 123456u;
193 const uint64_t headGuid = 234567u;
194 const uint64_t tailGuid = 345678u;
195 const uint64_t attributeGuid = 876345u;
197 unsigned int numberOfBytesWritten = 789u;
206 numberOfBytesWritten),
209 CHECK(numberOfBytesWritten == 0);
212 TEST_CASE(
"TimelineRelationshipPacketTestDataConstruction")
214 std::vector<unsigned char> buffer(512, 0);
217 const uint64_t relationshipGuid = 123456u;
218 const uint64_t headGuid = 234567u;
219 const uint64_t tailGuid = 345678u;
220 const uint64_t attributeGuid = 876345u;
221 unsigned int numberOfBytesWritten = 789u;
230 numberOfBytesWritten);
231 CHECK(result == TimelinePacketStatus::Ok);
232 CHECK(numberOfBytesWritten == 40);
234 unsigned int uint32_t_size =
sizeof(uint32_t);
235 unsigned int uint64_t_size =
sizeof(uint64_t);
238 unsigned int offset = 0;
240 uint32_t readDeclId =
ReadUint32(buffer.data(), offset);
241 CHECK(readDeclId == 3);
245 uint32_t readRelationshipType =
ReadUint32(buffer.data(), offset);
246 CHECK(readRelationshipType == 0);
250 uint64_t readRelationshipGuid =
ReadUint64(buffer.data(), offset);
251 CHECK(readRelationshipGuid == relationshipGuid);
254 offset += uint64_t_size;
255 uint64_t readHeadGuid =
ReadUint64(buffer.data(), offset);
256 CHECK(readHeadGuid == headGuid);
259 offset += uint64_t_size;
260 uint64_t readTailGuid =
ReadUint64(buffer.data(), offset);
261 CHECK(readTailGuid == tailGuid);
264 offset += uint64_t_size;
265 uint64_t readAttributeGuid =
ReadUint64(buffer.data(), offset);
266 CHECK(readAttributeGuid == attributeGuid);
269 TEST_CASE(
"TimelineRelationshipPacketExecutionLinkTestDataConstruction")
271 std::vector<unsigned char> buffer(512, 0);
274 const uint64_t relationshipGuid = 123456u;
275 const uint64_t headGuid = 234567u;
276 const uint64_t tailGuid = 345678u;
277 const uint64_t attributeGuid = 876345u;
278 unsigned int numberOfBytesWritten = 789u;
287 numberOfBytesWritten);
288 CHECK(result == TimelinePacketStatus::Ok);
289 CHECK(numberOfBytesWritten == 40);
291 unsigned int uint32_t_size =
sizeof(uint32_t);
292 unsigned int uint64_t_size =
sizeof(uint64_t);
294 unsigned int offset = 0;
295 uint32_t readDeclId =
ReadUint32(buffer.data(), offset);
296 CHECK(readDeclId == 3);
300 uint32_t readRelationshipType =
ReadUint32(buffer.data(), offset);
301 CHECK(readRelationshipType == 1);
305 uint64_t readRelationshipGuid =
ReadUint64(buffer.data(), offset);
306 CHECK(readRelationshipGuid == relationshipGuid);
309 offset += uint64_t_size;
310 uint64_t readHeadGuid =
ReadUint64(buffer.data(), offset);
311 CHECK(readHeadGuid == headGuid);
314 offset += uint64_t_size;
315 uint64_t readTailGuid =
ReadUint64(buffer.data(), offset);
316 CHECK(readTailGuid == tailGuid);
319 offset += uint64_t_size;
320 uint64_t readAttributeGuid =
ReadUint64(buffer.data(), offset);
321 CHECK(readAttributeGuid == attributeGuid);
325 TEST_CASE(
"TimelineRelationshipPacketDataLinkTestDataConstruction")
327 std::vector<unsigned char> buffer(512, 0);
330 const uint64_t relationshipGuid = 123456u;
331 const uint64_t headGuid = 234567u;
332 const uint64_t tailGuid = 345678u;
333 const uint64_t attributeGuid = 876345u;
334 unsigned int numberOfBytesWritten = 789u;
343 numberOfBytesWritten);
344 CHECK(result == TimelinePacketStatus::Ok);
345 CHECK(numberOfBytesWritten == 40);
347 unsigned int uint32_t_size =
sizeof(uint32_t);
348 unsigned int uint64_t_size =
sizeof(uint64_t);
350 unsigned int offset = 0;
351 uint32_t readDeclId =
ReadUint32(buffer.data(), offset);
352 CHECK(readDeclId == 3);
356 uint32_t readRelationshipType =
ReadUint32(buffer.data(), offset);
357 CHECK(readRelationshipType == 2);
361 uint64_t readRelationshipGuid =
ReadUint64(buffer.data(), offset);
362 CHECK(readRelationshipGuid == relationshipGuid);
365 offset += uint64_t_size;
366 uint64_t readHeadGuid =
ReadUint64(buffer.data(), offset);
367 CHECK(readHeadGuid == headGuid);
370 offset += uint64_t_size;
371 uint64_t readTailGuid =
ReadUint64(buffer.data(), offset);
372 CHECK(readTailGuid == tailGuid);
375 offset += uint64_t_size;
376 uint64_t readAttributeGuid =
ReadUint64(buffer.data(), offset);
377 CHECK(readAttributeGuid == attributeGuid);
381 TEST_CASE(
"TimelineRelationshipPacketLabelLinkTestDataConstruction")
383 std::vector<unsigned char> buffer(512, 0);
386 const uint64_t relationshipGuid = 123456u;
387 const uint64_t headGuid = 234567u;
388 const uint64_t tailGuid = 345678u;
389 const uint64_t attributeGuid = 876345u;
390 unsigned int numberOfBytesWritten = 789u;
399 numberOfBytesWritten);
400 CHECK(result == TimelinePacketStatus::Ok);
401 CHECK(numberOfBytesWritten == 40);
403 unsigned int uint32_t_size =
sizeof(uint32_t);
404 unsigned int uint64_t_size =
sizeof(uint64_t);
407 unsigned int offset = 0;
408 uint32_t readDeclId =
ReadUint32(buffer.data(), offset);
409 CHECK(readDeclId == 3);
413 uint32_t readRelationshipType =
ReadUint32(buffer.data(), offset);
414 CHECK(readRelationshipType == 3);
418 uint64_t readRelationshipGuid =
ReadUint64(buffer.data(), offset);
419 CHECK(readRelationshipGuid == relationshipGuid);
422 offset += uint64_t_size;
423 uint64_t readHeadGuid =
ReadUint64(buffer.data(), offset);
424 CHECK(readHeadGuid == headGuid);
427 offset += uint64_t_size;
428 uint64_t readTailGuid =
ReadUint64(buffer.data(), offset);
429 CHECK(readTailGuid == tailGuid);
432 offset += uint64_t_size;
433 uint64_t readAttributeGuid =
ReadUint64(buffer.data(), offset);
434 CHECK(readAttributeGuid == attributeGuid);
437 TEST_CASE(
"TimelineMessageDirectoryPacketTestNoBuffer")
439 unsigned int numberOfBytesWritten = 789u;
442 numberOfBytesWritten);
443 CHECK(result == TimelinePacketStatus::BufferExhaustion);
444 CHECK(numberOfBytesWritten == 0);
447 TEST_CASE(
"TimelineMessageDirectoryPacketTestBufferExhausted")
449 std::vector<unsigned char> buffer(512, 0);
451 unsigned int numberOfBytesWritten = 789u;
454 numberOfBytesWritten);
455 CHECK(result == TimelinePacketStatus::BufferExhaustion);
456 CHECK(numberOfBytesWritten == 0);
459 TEST_CASE(
"TimelineMessageDirectoryPacketTestFullConstruction")
461 std::vector<unsigned char> buffer(512, 0);
462 unsigned int numberOfBytesWritten = 789u;
465 numberOfBytesWritten);
466 CHECK(result == TimelinePacketStatus::Ok);
468 CHECK(numberOfBytesWritten == 451);
470 unsigned int uint8_t_size =
sizeof(uint8_t);
471 unsigned int uint32_t_size =
sizeof(uint32_t);
472 unsigned int uint64_t_size =
sizeof(uint64_t);
475 unsigned int offset = 0;
476 uint32_t packetHeaderWord0 =
ReadUint32(buffer.data(), offset);
477 uint32_t packetFamily = (packetHeaderWord0 >> 26) & 0x0000003F;
478 uint32_t packetClass = (packetHeaderWord0 >> 19) & 0x0000007F;
479 uint32_t packetType = (packetHeaderWord0 >> 16) & 0x00000007;
480 uint32_t streamId = (packetHeaderWord0 >> 0) & 0x00000007;
481 CHECK(packetFamily == 1);
482 CHECK(packetClass == 0);
483 CHECK(packetType == 0);
484 CHECK(streamId == 0);
487 uint32_t packetHeaderWord1 =
ReadUint32(buffer.data(), offset);
488 uint32_t sequenceNumbered = (packetHeaderWord1 >> 24) & 0x00000001;
489 uint32_t dataLength = (packetHeaderWord1 >> 0) & 0x00FFFFFF;
490 CHECK(sequenceNumbered == 0);
491 CHECK(dataLength == 443);
495 uint8_t readStreamVersion =
ReadUint8(buffer.data(), offset);
496 CHECK(readStreamVersion == 4);
497 offset += uint8_t_size;
498 uint8_t readPointerBytes =
ReadUint8(buffer.data(), offset);
499 CHECK(readPointerBytes == uint64_t_size);
500 offset += uint8_t_size;
501 uint8_t readThreadIdBytes =
ReadUint8(buffer.data(), offset);
505 offset += uint8_t_size;
506 uint32_t declCount =
ReadUint32(buffer.data(), offset);
507 CHECK(declCount == 5);
511 uint32_t readDeclId =
ReadUint32(buffer.data(), offset);
512 CHECK(readDeclId == 0);
519 uint32_t swTraceDeclNameLength =
ReadUint32(buffer.data(), offset);
520 CHECK(swTraceDeclNameLength == 13);
522 std::string label =
"declareLabel";
524 CHECK(std::memcmp(buffer.data() + offset,
526 swTraceDeclNameLength - 1) == 0);
529 std::vector<uint32_t> swTraceString;
530 arm::pipe::StringToSwTraceString<arm::pipe::SwTraceCharPolicy>(label, swTraceString);
532 uint32_t swTraceUINameLength =
ReadUint32(buffer.data(), offset);
533 CHECK(swTraceUINameLength == 14);
535 label =
"declare label";
537 CHECK(std::memcmp(buffer.data() + offset,
539 swTraceUINameLength - 1) == 0);
542 arm::pipe::StringToSwTraceString<arm::pipe::SwTraceCharPolicy>(label, swTraceString);
544 uint32_t swTraceArgTypesLength =
ReadUint32(buffer.data(), offset);
545 CHECK(swTraceArgTypesLength == 3);
549 CHECK(std::memcmp(buffer.data() + offset,
551 swTraceArgTypesLength - 1) == 0);
554 arm::pipe::StringToSwTraceString<arm::pipe::SwTraceCharPolicy>(label, swTraceString);
556 uint32_t swTraceArgNamesLength =
ReadUint32(buffer.data(), offset);
557 CHECK(swTraceArgNamesLength == 11);
559 label =
"guid,value";
561 CHECK(std::memcmp(buffer.data() + offset,
563 swTraceArgNamesLength - 1) == 0);
566 arm::pipe::StringToSwTraceString<arm::pipe::SwTraceCharPolicy>(label, swTraceString);
568 readDeclId =
ReadUint32(buffer.data(), offset);
569 CHECK(readDeclId == 1);
573 swTraceDeclNameLength =
ReadUint32(buffer.data(), offset);
574 CHECK(swTraceDeclNameLength == 14);
576 label =
"declareEntity";
578 CHECK(std::memcmp(buffer.data() + offset,
580 swTraceDeclNameLength - 1) == 0);
583 TEST_CASE(
"TimelineEntityPacketTestNoBuffer")
585 const uint64_t profilingGuid = 123456u;
586 unsigned int numberOfBytesWritten = 789u;
590 numberOfBytesWritten);
591 CHECK(result == TimelinePacketStatus::BufferExhaustion);
592 CHECK(numberOfBytesWritten == 0);
595 TEST_CASE(
"TimelineEntityPacketTestBufferExhaustedWithZeroBufferSize")
597 std::vector<unsigned char> buffer(512, 0);
599 const uint64_t profilingGuid = 123456u;
600 unsigned int numberOfBytesWritten = 789u;
604 numberOfBytesWritten);
605 CHECK(result == TimelinePacketStatus::BufferExhaustion);
606 CHECK(numberOfBytesWritten == 0);
609 TEST_CASE(
"TimelineEntityPacketTestBufferExhaustedWithFixedBufferSize")
611 std::vector<unsigned char> buffer(10, 0);
613 const uint64_t profilingGuid = 123456u;
614 unsigned int numberOfBytesWritten = 789u;
618 numberOfBytesWritten);
619 CHECK(result == TimelinePacketStatus::BufferExhaustion);
620 CHECK(numberOfBytesWritten == 0);
623 TEST_CASE(
"TimelineEntityPacketTestFullConstructionOfData")
625 std::vector<unsigned char> buffer(512, 0);
627 const uint64_t profilingGuid = 123456u;
628 unsigned int numberOfBytesWritten = 789u;
632 numberOfBytesWritten);
633 CHECK(result == TimelinePacketStatus::Ok);
634 CHECK(numberOfBytesWritten == 12);
636 unsigned int uint32_t_size =
sizeof(uint32_t);
638 unsigned int offset = 0;
640 uint32_t decl_Id =
ReadUint32(buffer.data(), offset);
641 CHECK(decl_Id == uint32_t(1));
645 uint64_t readProfilingGuid =
ReadUint64(buffer.data(), offset);
646 CHECK(readProfilingGuid == profilingGuid);
649 TEST_CASE(
"TimelineEventClassTestNoBuffer")
651 const uint64_t profilingGuid = 123456u;
652 const uint64_t profilingNameGuid = 3345u;
653 unsigned int numberOfBytesWritten = 789u;
658 numberOfBytesWritten);
659 CHECK(result == TimelinePacketStatus::BufferExhaustion);
660 CHECK(numberOfBytesWritten == 0);
663 TEST_CASE(
"TimelineEventClassTestBufferExhaustionZeroValue")
665 std::vector<unsigned char> buffer(512, 0);
667 const uint64_t profilingGuid = 123456u;
668 const uint64_t profilingNameGuid = 3345u;
669 unsigned int numberOfBytesWritten = 789u;
674 numberOfBytesWritten);
675 CHECK(result == TimelinePacketStatus::BufferExhaustion);
676 CHECK(numberOfBytesWritten == 0);
679 TEST_CASE(
"TimelineEventClassTestBufferExhaustionFixedValue")
681 std::vector<unsigned char> buffer(10, 0);
683 const uint64_t profilingGuid = 123456u;
684 const uint64_t profilingNameGuid = 5564u;
685 unsigned int numberOfBytesWritten = 789u;
690 numberOfBytesWritten);
691 CHECK(result == TimelinePacketStatus::BufferExhaustion);
692 CHECK(numberOfBytesWritten == 0);
695 TEST_CASE(
"TimelineEventClassTestFullConstructionOfData")
697 std::vector<unsigned char> buffer(512, 0);
699 const uint64_t profilingGuid = 123456u;
700 const uint64_t profilingNameGuid = 654321u;
701 unsigned int numberOfBytesWritten = 789u;
706 numberOfBytesWritten);
707 CHECK(result == TimelinePacketStatus::Ok);
708 CHECK(numberOfBytesWritten == 20);
710 unsigned int uint32_t_size =
sizeof(uint32_t);
711 unsigned int uint64_t_size =
sizeof(uint64_t);
713 unsigned int offset = 0;
715 uint32_t declId =
ReadUint32(buffer.data(), offset);
716 CHECK(declId == uint32_t(2));
720 uint64_t readProfilingGuid =
ReadUint64(buffer.data(), offset);
721 CHECK(readProfilingGuid == profilingGuid);
723 offset += uint64_t_size;
724 uint64_t readProfilingNameGuid =
ReadUint64(buffer.data(), offset);
725 CHECK(readProfilingNameGuid == profilingNameGuid);
728 TEST_CASE(
"TimelineEventPacketTestNoBuffer")
730 const uint64_t timestamp = 456789u;
732 const uint64_t profilingGuid = 123456u;
733 unsigned int numberOfBytesWritten = 789u;
739 numberOfBytesWritten);
740 CHECK(result == TimelinePacketStatus::BufferExhaustion);
741 CHECK(numberOfBytesWritten == 0);
744 TEST_CASE(
"TimelineEventPacketTestBufferExhaustionZeroValue")
746 std::vector<unsigned char> buffer(512, 0);
748 const uint64_t timestamp = 456789u;
750 const uint64_t profilingGuid = 123456u;
751 unsigned int numberOfBytesWritten = 789u;
757 numberOfBytesWritten);
758 CHECK(result == TimelinePacketStatus::BufferExhaustion);
759 CHECK(numberOfBytesWritten == 0);
762 TEST_CASE(
"TimelineEventPacketTestBufferExhaustionFixedValue")
764 std::vector<unsigned char> buffer(10, 0);
766 const uint64_t timestamp = 456789u;
768 const uint64_t profilingGuid = 123456u;
769 unsigned int numberOfBytesWritten = 789u;
775 numberOfBytesWritten);
776 CHECK(result == TimelinePacketStatus::BufferExhaustion);
777 CHECK(numberOfBytesWritten == 0);
780 TEST_CASE(
"TimelineEventPacketTestFullConstructionOfData")
782 std::vector<unsigned char> buffer(512, 0);
784 const uint64_t timestamp = 456789u;
786 const uint64_t profilingGuid = 123456u;
787 unsigned int numberOfBytesWritten = 789u;
793 numberOfBytesWritten);
794 CHECK(result == TimelinePacketStatus::Ok);
796 unsigned int uint32_t_size =
sizeof(uint32_t);
797 unsigned int uint64_t_size =
sizeof(uint64_t);
800 unsigned int offset = 0;
802 uint32_t readDeclId =
ReadUint32(buffer.data(), offset);
803 CHECK(readDeclId == 4);
807 uint64_t readTimestamp =
ReadUint64(buffer.data(), offset);
808 CHECK(readTimestamp == timestamp);
811 offset += uint64_t_size;
814 CHECK(readThreadId == threadId);
818 uint64_t readProfilingGuid =
ReadUint64(buffer.data(), offset);
819 CHECK(readProfilingGuid == profilingGuid);
TimelinePacketStatus WriteTimelineMessageDirectoryPackage(unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
void ReadBytes(const IPacketBufferPtr &packetBuffer, unsigned int offset, unsigned int valueSize, uint8_t outValue[])
uint64_t ReadUint64(const IPacketBufferPtr &packetBuffer, unsigned int offset)
TimelinePacketStatus WriteTimelineRelationshipBinary(ProfilingRelationshipType relationshipType, uint64_t relationshipGuid, uint64_t headGuid, uint64_t tailGuid, uint64_t attributeGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
uint8_t ReadUint8(const IPacketBufferPtr &packetBuffer, unsigned int offset)
TimelinePacketStatus WriteTimelineEventBinary(uint64_t timestamp, int threadId, uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
ProfilingRelationshipType
constexpr unsigned int ThreadIdSize
TimelinePacketStatus WriteTimelineEventClassBinary(uint64_t profilingGuid, uint64_t nameGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
uint32_t ReadUint32(const IPacketBufferPtr &packetBuffer, unsigned int offset)
TimelinePacketStatus WriteTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string &label, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
TimelinePacketStatus WriteTimelineEntityBinary(uint64_t profilingGuid, unsigned char *buffer, unsigned int remainingBufferSize, unsigned int &numberOfBytesWritten)