VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
luaEmbarkationSlotQueryJob.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
8 #include "vrfLua/vrfLuaDefines.h"
9 #include "vrfLua/luaAsyncJob.h"
10 #include "vrfobjcore/simObject.h"
11 #include "vrfutil/scriptGeometry.h"
15 
16 #include "vlutil/vlMutex.h"
17 
18 #include <luabind/luabind.hpp>
19 
20 
21 class DtSimMessage;
22 
25 {
26 public:
27  typedef std::vector<DtLocation3D> Points;
28 
29  static std::shared_ptr<DtLuaEmbarkationSlotQueryJob> Make(
31  DtSimObjectReference queryingObject,
32  DtSimObjectReference objectToBeQueried,
33  bool bAllSlots);
34 
37 
39  virtual ~DtLuaEmbarkationSlotQueryJob() override;
40 
42  virtual luabind::object getObject(lua_State* L, int& index, std::string& message) override;
43 
45  virtual luabind::object getDebugObject(lua_State* L) override { return luabind::newtable(L);}
46 
48  virtual void cancel(lua_State* L) override {};
49 
51  static void responseCallback(DtSimMessage* msg, void* usr);
52  virtual void processResponse(DtSimMessage* msg);
53 
57 
58  static DtAsciiSerializable* creator();
59 
60  virtual DtString serialize() override;
61  virtual bool deserialize(const DtString&) override;
62  virtual DtString objectType() const override;
63 
64  std::shared_ptr<DtLuaEmbarkationSlotQueryJob> shared_from_this();
65  std::shared_ptr<const DtLuaEmbarkationSlotQueryJob> shared_from_this() const;
66 
67 protected:
68 
69  static int nextRequestId()
70  {
71  static int theRequestId = 0;
72 
73  return ++theRequestId;
74  }
75 
76  class PathTask;
77  friend class PathTask;
78 
82  DtSimObjectReference queryingObject,
83  DtSimObjectReference objectToBeQueried,
84  bool bAllSlots);
85 
86  void start();
87 
89  void taskComplete();
90 
93  bool myAllSlots;
94 
96 
99 
100  typedef DtMutex Mutex;
101 
102  mutable Mutex myMutex;
103 };
Mutex myMutex
Definition: luaEmbarkationSlotQueryJob.h:102
Definition: asciiSerializable.h:40
Interface for getting asynchronously computed data into Lua.
Definition: luaAsyncJob.h:27
virtual bool deserialize(const DtString &)=0
This function should take the string that was serialized via serialize() and fill this object with th...
DtSimObjectReference myObjectBeingQueried
Definition: luaEmbarkationSlotQueryJob.h:92
std::map< int, SlotInformation > SlotInformationMap
Definition: ifEmbarkationSlotInformationResponse.h:35
DtMutex Mutex
Definition: luaEmbarkationSlotQueryJob.h:100
virtual luabind::object getDebugObject(lua_State *L) override
Retrieve debug data, if available. Default return value is an empty table.
Definition: luaEmbarkationSlotQueryJob.h:45
virtual DtString serialize()=0
The following characters are reserved and cannot be used in serialization: &#39;|&#39;, &#39;:&#39;.
int myRequestId
Definition: luaEmbarkationSlotQueryJob.h:95
File: simMsg.h.
Definition: simMessage.h:35
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
bool myAllSlots
Definition: luaEmbarkationSlotQueryJob.h:93
virtual luabind::object getObject(lua_State *L, int &index, std::string &message)=0
Retrieve current value.
bool myGotResponse
Definition: luaEmbarkationSlotQueryJob.h:97
virtual DtString objectType() const =0
Should return the string name of this object. The object name should not be part of the serialization...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
static int nextRequestId()
Definition: luaEmbarkationSlotQueryJob.h:69
Lua object class which represents a query for embarkation slot info.
Definition: luaEmbarkationSlotQueryJob.h:24
DtIfEmbarkationSlotInformationResponse::SlotInformationMap mySlotInfo
Definition: luaEmbarkationSlotQueryJob.h:98
DtSimObjectReference myQueryingObject
Definition: luaEmbarkationSlotQueryJob.h:91
std::vector< DtLocation3D > Points
Definition: luaEmbarkationSlotQueryJob.h:27
virtual void cancel(lua_State *L) override
Currently a no-op.
Definition: luaEmbarkationSlotQueryJob.h:48

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)