VR-Exchange 2.6 API Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
portal
pMessageFactory.h
Go to the documentation of this file.
1
/****************************************************************************
2
* Copyright (c) 2016 VT MAK
3
* All rights reserved.
4
****************************************************************************/
5
9
10
#pragma once
11
12
#include <
portal/pMessage.h
>
13
14
namespace
MAKVrExchange
15
{
16
22
class
DT_DLL_LIBPORTAL
DtPortalMessageFactory
23
{
24
public
:
25
27
DtPortalMessageFactory
();
28
30
virtual
~
DtPortalMessageFactory
();
31
35
DtPortalMessage
* create(
const
void
* message,
unsigned
int
messageSize )
const
;
36
45
template
<
typename
T_Message>
46
void
registerCreator(
const
T_Message& msg );
47
48
typedef
DtPortalMessage
*(*ShmMessageCreator)();
49
void
registerCreator(
const
DtPortalMessageKind
& kind,
const
ShmMessageCreator& creator );
50
51
private
:
52
54
DtPortalMessageFactory
(
const
DtPortalMessageFactory
& );
55
57
DtPortalMessageFactory
& operator = (
const
DtPortalMessageFactory
& );
58
59
protected
:
60
61
typedef
std::map<DtPortalMessageKind,ShmMessageCreator>
KindCreateFunctionMap
;
62
KindCreateFunctionMap
myCreatorFunctionMap
;
63
64
};
65
66
67
template
<
typename
T_Message>
68
inline
void
DtPortalMessageFactory::registerCreator
(
const
T_Message& )
69
{
70
myCreatorFunctionMap
[T_Message::theKind] =
T_Message::create
;
71
}
72
73
inline
void
DtPortalMessageFactory::registerCreator
(
74
const
DtPortalMessageKind
& kind,
const
ShmMessageCreator& creator )
75
{
76
myCreatorFunctionMap
[kind] = creator;
77
}
78
79
}
Document ID: Generated on Wed Jan 30 18:15:18 EST 2019 from SVN revision 195534
Copyright © 2005-2019 VT MÄK. All Rights Reserved (
www.mak.com
)