winIDEA SDK
Loading...
Searching...
No Matches
isys::PathTransformer Class Reference

Description

This class converts paths between native Linux paths and paths in winIDEA domain, for example WINE paths.

It provides interface of a singleton pattern, so you may initialize it only once. However, ctors are public to enable creating custom instances for complex use cases, for example controlling two winIDEAs in different environments.

Typical usage:

auto pt = isys::PathTransformer::get_instance();

This will provide you with an instance properly initialized in the following cases:

  • client app is running on Windows, winIDEA is running on Windows
  • client app is running on Linux, winIDEA is running in WINE on Linux

For other use cases, you have to initialize the instance:

pt->init(client_env, winidea_env);

#include <PathTransformer.h>

Public Member Functions

void init (isys::SOSVersion eSourceOS, isys::SOSVersion eWinIDEAOs)
 Initializes instance with the given parameters.
 
 PathTransformer ()
 Creates object with default settings.
 
 PathTransformer (isys::SOSVersion eSourceOS, isys::SOSVersion eWinIDEAOs)
 Creates object with the given parameters.
 
std::string to_host_path (const std::string &winidea_path, bool is_relative_to_winidea=true)
 Reverse as PathTransformer::to_winidea_path().
 
std::string to_winidea_path (const std::string &host_path, bool is_relative_to_winidea=true)
 Converts host path to winIDEA path.
 
std::string winepath (const std::string &input, EConvDirection direction)
 This function implements functionality of the winepath utility.
 

Static Public Member Functions

static std::shared_ptr< PathTransformerget_instance ()
 Returns singleton instance.
 

Constructor & Destructor Documentation

◆ PathTransformer() [1/2]

isys::PathTransformer::PathTransformer ( )
inline

Creates object with default settings.

See class description for more details.

◆ PathTransformer() [2/2]

isys::PathTransformer::PathTransformer ( isys::SOSVersion eSourceOS,
isys::SOSVersion eWinIDEAOs )
inline

Creates object with the given parameters.

Parameters
eSourceOSenvironment where client app (the app using winIDEA SDK) is running
eWinIDEAOsenvironment where winIDEA is running

Member Function Documentation

◆ get_instance()

static std::shared_ptr< PathTransformer > isys::PathTransformer::get_instance ( )
static

Returns singleton instance.

When this method is called for the first time, the instance is created with default parameters. See class description for more details on default parameters.

Returns
shared pointer to the singleton instance

◆ init()

void isys::PathTransformer::init ( isys::SOSVersion eSourceOS,
isys::SOSVersion eWinIDEAOs )
inline

Initializes instance with the given parameters.

This overrides settings given in ctor.

Parameters
eSourceOSenvironment where client app (the app using winIDEA SDK) is running
eWinIDEAOsenvironment where winIDEA is running

◆ to_host_path()

std::string isys::PathTransformer::to_host_path ( const std::string & winidea_path,
bool is_relative_to_winidea = true )

Reverse as PathTransformer::to_winidea_path().

Parameters
winidea_pathpath in winIDEA environment (for example WINE path)
is_relative_to_winideaif true, relative path to winIDEA workspace is assumed, the path is left intact, only path separators are replaced if necessary
Returns
path in client environment (app using winIDEA SDK).

◆ to_winidea_path()

std::string isys::PathTransformer::to_winidea_path ( const std::string & host_path,
bool is_relative_to_winidea = true )

Converts host path to winIDEA path.

It checks values of host and winIDEA environment set in ctor and then calls appropriate path conversion functions when environments are different.

If you call this method with path in winIDEA environment, the result will be invalid path.

Parameters
host_pathpath in client environment (app using winIDEA SDK)
is_relative_to_winideaif false, relative to cwd is assumed, otherwise, relative paths are not processed.
Returns
path in winIDEA environment, for example WINE.

◆ winepath()

std::string isys::PathTransformer::winepath ( const std::string & input,
EConvDirection direction )

This function implements functionality of the winepath utility.

Parameters
inputstring path representation to be converted
directionconversion direction wine->unix or unix->wine
Returns
converted path string