Skip to content

File PlatformSpecific.hpp

File List > api > cppSDK > SDKBase > PlatformSpecific.hpp

Go to the documentation of this file

#ifndef __PLATFORM_SPECIFIC_HPP__
#define __PLATFORM_SPECIFIC_HPP__

#include "ManusSDKTypes.h"
#if _WIN32
#include "../windows/src/PlatformSpecificTypes.hpp"
#else
#include "../linux/PlatformSpecificTypes.hpp"
#endif

#ifdef _MANUS_CORE_REMOTE
#include "zmq.hpp"
#endif

#include <string>
#include <vector>

#define DEFINE_TO_PLATFORM_SPECIFIC_CHAR_POINTER( p_Define ) PLATFORM_SPECIFIC_CHAR_POINTER( p_Define )

namespace ManusSDK::PlatformSpecific
{
    int StartSocketApi(void);
    int StopSocketApi(void);
    void RemoveSocket(const Socket_t p_Socket);

    int GetLastError(void);
    StringType_t GetSettingsDir(const StringType_t& p_ManusCoreAppdataDir);

    std::string GetManusCoreDir();

    bool StartApplication(const std::string& p_Dir, const std::string& p_Args);
    bool IsApplicationRunning(const std::string& p_WindowName);
    bool PushApplicationToFront(const std::string& p_WindowName);

    void GetAddressesForAllNetworkInterfaces(
        AddrInfo_t* p_LocalSocketDetails,
        AddrInfo_t& p_Hints,
        std::vector<sockaddr*>& p_Addresses);
    bool HandleRecvFromError(const int p_Result);
    std::string HostNameVectorToString(std::vector<NameInfoBufferType_t>& p_NodeBuffer);

    SDKReturnCode CopyString(
        char* const p_Target,
        const size_t p_MaxLengthThatWillFitInTarget,
        const std::string& p_Source);

    uint64_t GetSystemUptime();

} // Manus::CrossPlatform

#endif // #ifndef HPP_PLATFORM_SPECIFIC

#define SDKPS ManusSDK::PlatformSpecific