#pragma once #include "CoreMinimal.h" #include // Class FLpxSockets // // This class is responsible for creating outgoing and incoming // sockets for the Luprex engine. It then relays data into and out // of the Luprex engine. // // It only has one interesting method: Update(). This one method // does all the communication for the Luprex engine. Note that // there aren't any methods where Unreal can query the state // of the FLpxSockets. That's because this class is for // communication between Luprex and outside servers and clients, // NOT for communication with Unreal. // // The FLpxSockets keeps a pointer to the EngineWrapper. // The EngineWrapper must outlive the FLpxSockets. // // This class is an abstract base class. A derived class // implements all the behavior. // class FLpxSockets; struct EngineWrapper; class FLpxSockets { protected: FLpxSockets() {} public: // Create the Luprex socket system. static FLpxSockets* Create(EngineWrapper *w); // Delete the luprex socket system. Cleanly closes all sockets. virtual ~FLpxSockets() {} // Obtain any error status report. virtual std::string GetError() = 0; // The update routine relays data into and out of // luprex via TCP/IP sockets. virtual void Update() = 0; };