MAK Legion 1.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
controlInstance.h
Go to the documentation of this file.
1 /*********************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "legionDataStore/export.h"
12 
14 #include "legionDataStore/vector.h"
16 
17 #include "legionDataStore/span.h"
18 
19 
20 namespace Legion
21 {
22  typedef UInt32 ControlId;
25 
26  class ControlManager;
27 
28  const UInt16 BROADCAST_ADDR = 0xffff;
29 
32  class LEGION_DLL ControlInstance
33  {
34  public:
38 
41  virtual ~ControlInstance();
42 
44  ControlInstance(const ControlInstance& orig);
45 
47  ControlInstance& operator=(const ControlInstance& orig);
48 
50  ControlHandle handle() const;
51 
53  ControlId typeId() const;
54 
56  void setSourceId(ClientId id);
57  ClientId sourceId() const;
58 
60  void setTargetId(ClientId id);
61  ClientId targetId() const;
62 
63 
65  template<typename DATA_TYPE>
66  DATA_TYPE data(ParameterId parameterId) const;
67 
69  template<typename DATA_TYPE>
70  const Span<DATA_TYPE> dataArray(ParameterId parameterId) const;
71 
73  template<typename DATA_TYPE>
74  void setData(ParameterId parameterId, const DATA_TYPE& val);
75 
77  template<typename DATA_TYPE>
78  void setDataArray(ParameterId parameterId, const Span<DATA_TYPE>& val);
79 
81  template<typename DATA_TYPE>
82  void addDataArray(ParameterId parameterId, const Span<DATA_TYPE>& val);
83 
85  template<typename DATA_TYPE>
86  void removeDataArray(ParameterId parameterId, const Span<DATA_TYPE>& val);
87 
88 
90  void setDataArrayLength(ParameterId parameterId, UInt32 length);
91  UInt32 dataArrayLength(ParameterId parameterId) const;
92 
93  protected:
95  };
96 }
UInt64 ControlHandle
Definition: controlInstance.h:24
A span represents a contiguous array of objects in memory.
Definition: span.h:22
const UInt16 BROADCAST_ADDR
Definition: controlInstance.h:28
UInt32 ControlId
Definition: controlInstance.h:22
unsigned int UInt32
Definition: dataTypes.h:44
UInt32 ClientId
Definition: dataTypes.h:52
unsigned short UInt16
Definition: dataTypes.h:42
unsigned long long UInt64
Definition: dataTypes.h:46
UInt32 ParameterId
Definition: controlInstance.h:23
The control manager is responsible for creating and adding controls to the simulation database...
Definition: controlManager.h:33
The control instance is an instance of a control.
Definition: controlInstance.h:32
ControlHandle myHandle
Definition: controlInstance.h:94

Document ID: Generated on Wed May 26 15:17:05 EDT 2021 from SVN revision 229676
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)