VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simObjectListActivityCallbackInfo.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
9 #include <vrfutil/rwEntityType.h>
10 #include <tbb/mutex.h>
11 
12 
13 class DtLocalObject;
14 
16 typedef void(*DtSimObjectListActivityCallbackFcn)(const DtLocalObject* simObject,
17  void* usr);
18 
26 
28 {
29 public:
31  {
33  {
34  if (!a || !b)
35  {
37  return a < b;
38  }
39 
40  return (a->func() < b->func() ||
41  (a->func() == b->func() && a->usrData() < b->usrData()) ||
42  (a->func() == b->func() && a->usrData() == b->usrData() && a->filter() < b->filter()));
43  }
44  };
45 
48  DtSimObjectListActivityCallbackFcn func, void * usrData,
49  const DtEntityType & filter, bool invertFilter = false);
50 
53 
57 
61 
63  virtual DtSimObjectListActivityCallbackFcn func() const;
64 
66  virtual void * usrData() const;
67 
69  virtual const DtEntityType & filter() const;
70 
73  //filter
74  virtual bool invertFilter() const;
75 
76  virtual void setDeletedFlag(bool v);
77  virtual bool deletedFlag() const;
78 
80  {
81  return (myFunc == rhs.myFunc &&
82  myUsrData == rhs.myUsrData &&
83  myFilter == rhs.myFilter &&
84  myInvertFilter == rhs.myInvertFilter);
85  }
86 
88  {
89  return !(*this == rhs);
90  }
91 
93  {
94  if (myFunc < rhs.myFunc)
95  {
96  return true;
97  }
98  else if (myFunc == rhs.myFunc)
99  {
100  if (myUsrData < rhs.myUsrData)
101  {
102  return true;
103  }
104  else if (myUsrData == rhs.myUsrData)
105  {
106  if (myFilter < rhs.myFilter)
107  {
108  return true;
109  }
110  else if (myFilter == rhs.myFilter)
111  {
112  if (myInvertFilter < rhs.myInvertFilter)
113  {
114  return true;
115  }
116  }
117  }
118  }
119  return false;
120  }
121 
123  {
124  return !(*this < rhs);
125  }
126 
127  tbb::mutex& mutex() const
128  {
129  return *myMutex;
130  }
131 
132 protected:
133 
135  void * myUsrData;
136  DtEntityType myFilter;
138 
140  std::shared_ptr<bool> myDeletedFlag;
141  std::shared_ptr<tbb::mutex> myMutex;
142 };
143 
Definition: simObjectListActivityCallbackInfo.h:30
bool operator<(const DtSimObjectListActivityCallbackInfo &rhs) const
Definition: simObjectListActivityCallbackInfo.h:92
void(* DtSimObjectListActivityCallbackFcn)(const DtLocalObject *simObject, void *usr)
Callback function definition.
Definition: simObjectListActivityCallbackInfo.h:16
DtEntityType myFilter
Definition: simObjectListActivityCallbackInfo.h:136
void * myUsrData
Definition: simObjectListActivityCallbackInfo.h:135
std::shared_ptr< tbb::mutex > myMutex
Definition: simObjectListActivityCallbackInfo.h:141
bool operator==(const DtSimObjectListActivityCallbackInfo &rhs) const
Definition: simObjectListActivityCallbackInfo.h:79
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual DtSimObjectListActivityCallbackFcn func() const
Get the callback function.
tbb::mutex & mutex() const
Definition: simObjectListActivityCallbackInfo.h:127
bool operator!=(const DtSimObjectListActivityCallbackInfo &rhs) const
Definition: simObjectListActivityCallbackInfo.h:87
virtual void * usrData() const
Get the user data.
class DtSimObjectListActivityCallbackInfo:
Definition: simObjectListActivityCallbackInfo.h:27
DtSimObjectListActivityCallbackFcn myFunc
Definition: simObjectListActivityCallbackInfo.h:134
bool myInvertFilter
Definition: simObjectListActivityCallbackInfo.h:137
bool operator>=(const DtSimObjectListActivityCallbackInfo &rhs) const
Definition: simObjectListActivityCallbackInfo.h:122
virtual const DtEntityType & filter() const
Get the sim object type filter.
std::shared_ptr< bool > myDeletedFlag
This is shared amongst representations such that when something is deleted, all copies of this get no...
Definition: simObjectListActivityCallbackInfo.h:140
A locally simulated VRF object.
Definition: localObject.h:98

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)