winIDEA SDK
isys::CConnectionConfig Class Reference

Description

This class contains information for connection to winIDEA.

Its methods return reference to self, so we can use it like this:

CConnectionConfig config = new CConnectionConfig();
config.udpDiscoveryPort(5534).instanceId("main");

All parameters are optional. Set only what is required, default values are used for unspecified parameters.

Python example: advanced_winidea_launching.py

#include <ConnectionMgr.h>

Inherits std::enable_shared_from_this< CConnectionConfig >.

Public Member Functions

SPConnectionConfig cmd_line (const std::string &rstr_cmd_line)
 Command line parameters for winIDEA This value is used to. More...
 
SPConnectionConfig discoveryTime (uint32_t timeout_ms)
 This method sets the timeout for winIDEA pre-launch discovery. More...
 
SPConnectionConfig exe_dir (const std::string &rstr_exe_dir)
 Sets winIDEA exe dir to use. More...
 
IConnect::EExeType get_exe_type () const
 Returns executable type (gui or command)
 
IConnect::ELaunchFlags get_start () const
 Returns winIDEA start policy. More...
 
const std::string & getCmdLineParams () const
 Returns command line parameters. More...
 
uint32_t getDiscoveryTime () const
 Returns specified discovery wait time in ms.
 
const std::string & getInstanceId () const
 Returns instanceId. More...
 
uint32_t getProcessId () const
 Returns process id. More...
 
uint16_t getTCPPort () const
 Returns TCP port. More...
 
int getUdpDiscoveryPort () const
 Returns UDP discovery port. More...
 
IConnect::ELaunchFlags getVisibility () const
 Returns winIDEA window visibility after startup. More...
 
IConnect::ELaunchFlags getWaitTime () const
 Returns startup wait time. More...
 
const std::string & getWorkspace () const
 Returns workspace path. More...
 
SPConnectionConfig headless (bool b_headless)
 Determines whether winIDEA is started in headless mode. More...
 
SPConnectionConfig host (const std::string &rstr_host, uint16_t w_TCP_port=0)
 Sets PC host to use. More...
 
SPConnectionConfig instanceId (const std::string &rstr_instance_ID)
 Sets winIDEA instance ID This value is used to. More...
 
bool isUseIPCDiscovery () const
 Returns true, if IPC discovery should be used. More...
 
SPConnectionConfig start (IConnect::ELaunchFlags eStart)
 Determines how to potentially start a new winIDEA instance. More...
 
SPConnectionConfig start_always ()
 Always start a new winIDEA instance. More...
 
SPConnectionConfig start_existing ()
 Connect to an existing winIDEA instance. More...
 
SPConnectionConfig start_if_required ()
 Start a new winIDEA instance if no existing is matching the connection criteria. More...
 
SPConnectionConfig udpDiscoveryPort (uint16_t w_UDP_discovery_port)
 Sets UDP discovery port. More...
 
SPConnectionConfig useIPCDiscovery (bool b_use_IPC_discovery)
 Locally running winIDEA instances will be discovered using local IPC discovery. More...
 
SPConnectionConfig visibility (IConnect::ELaunchFlags e_visibility)
 Determines how the newly launched instance will start. More...
 
SPConnectionConfig waitTime (IConnect::ELaunchFlags e_wait_time)
 Determines how long the isystem.connect should wait for newly launched instance to respond. More...
 
SPConnectionConfig workspace (const std::string &rstrWorkspace)
 Sets winIDEA workspace. More...
 

Member Function Documentation

◆ cmd_line()

SPConnectionConfig isys::CConnectionConfig::cmd_line ( const std::string &  rstr_cmd_line)

Command line parameters for winIDEA This value is used to.

  • start a new winIDEA instance.

(it is not used to search for an existing instance)

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cc = cc.cmd_line('-DEMO')
>>> cmgr.connect(cc)

◆ discoveryTime()

SPConnectionConfig isys::CConnectionConfig::discoveryTime ( uint32_t  timeout_ms)

This method sets the timeout for winIDEA pre-launch discovery.

It is used when launch flag startIfRequired is specified. The timout is used for the first enumeration, which tries to find out if requested winIDEA is already running. If it is not running, winIDEA is started, and then the second timeout set with waitTime() is used to wait for the started winIDEA to be actually up and running, which takes more time than discovery of already running winIDEAs. Default value of 1s should be good for most cases, so this setting rarely needs adjustment.

Parameters
timeout_mstimeout in ms

◆ exe_dir()

SPConnectionConfig isys::CConnectionConfig::exe_dir ( const std::string &  rstr_exe_dir)

Sets winIDEA exe dir to use.

This value is used to

  • start a new winIDEA instance.

(it is not used to search for an existing instance)

◆ get_start()

IConnect::ELaunchFlags isys::CConnectionConfig::get_start ( ) const

Returns winIDEA start policy.

>>> cc = ic.CConnectionConfig()
>>> cc = cc.start(ic.IConnect.lfStartExisting)
>>> cc.get_start() & ic.IConnect.lfStartMask
3

◆ getCmdLineParams()

const std::string & isys::CConnectionConfig::getCmdLineParams ( ) const

Returns command line parameters.

>>> cc = ic.CConnectionConfig()
>>> cc = cc.cmd_line('-DEMO').getCmdLineParams()
'-DEMO'

◆ getInstanceId()

const std::string & isys::CConnectionConfig::getInstanceId ( ) const

Returns instanceId.

>>> cc = ic.CConnectionConfig()
>>> cc.instanceId('sdk_demo_winideaID').getInstanceId()
'sdk_demo_winideaID'

◆ getProcessId()

uint32_t isys::CConnectionConfig::getProcessId ( ) const

Returns process id.

The id is set after call to findExistingInstance(), startNewInstance(), or findOrStartInstance(). It is valid only when different from 0.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc)
>>> cc.getProcessId() != 0
True

◆ getTCPPort()

uint16_t isys::CConnectionConfig::getTCPPort ( ) const

Returns TCP port.

The port is set after call to findExistingInstance(), startNewInstance(), or findOrStartInstance(). It is valid only when different from 0.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc)
>>> cc.getTCPPort() != 0
True

◆ getUdpDiscoveryPort()

int isys::CConnectionConfig::getUdpDiscoveryPort ( ) const

Returns UDP discovery port.

>>> cc = ic.CConnectionConfig()
>>> cc.udpDiscoveryPort(5315).getUdpDiscoveryPort()
5315

◆ getVisibility()

IConnect::ELaunchFlags isys::CConnectionConfig::getVisibility ( ) const

Returns winIDEA window visibility after startup.

>>> cc = ic.CConnectionConfig()
>>> cc = cc.visibility(ic.IConnect.lfShowHidden)
>>> cc.getVisibility() & ic.IConnect.lfShowMask
768

◆ getWaitTime()

IConnect::ELaunchFlags isys::CConnectionConfig::getWaitTime ( ) const

Returns startup wait time.

>>> cc = ic.CConnectionConfig()
>>> cc = cc.waitTime(ic.IConnect.lfWait1s)
>>> cc.getWaitTime() & ic.IConnect.lfWaitMask
64

◆ getWorkspace()

const std::string & isys::CConnectionConfig::getWorkspace ( ) const

Returns workspace path.

>>> cc = ic.CConnectionConfig()
>>> cc.workspace('path/to/the/workspace').getWorkspace()
'path/to/the/workspace'

◆ headless()

SPConnectionConfig isys::CConnectionConfig::headless ( bool  b_headless)

Determines whether winIDEA is started in headless mode.

This value is used to

  • start a new winIDEA instance.

(it is not used to search for an existing instance)

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc.headless(True))

◆ host()

SPConnectionConfig isys::CConnectionConfig::host ( const std::string &  rstr_host,
uint16_t  w_TCP_port = 0 
)

Sets PC host to use.

If empty, local host is used to look for winIDEA. The optional w_TCP_port parameter can be used to specify the port to connect to. In this case no attempt at discovery is made, if winIDEA is not responding on this port, a new instance is not launched.

>>> cmgr = ic.ConnectionMgr() 
>>> cc = ic.CConnectionConfig()
>>> cc = cc.host('', 5315)

◆ instanceId()

SPConnectionConfig isys::CConnectionConfig::instanceId ( const std::string &  rstr_instance_ID)

Sets winIDEA instance ID This value is used to.

  • search for an existing instance
  • start a new winIDEA instance

Instance ID should not be provided in combination with launch flag flStartAlways to prevent launch of multiple instances with the same Id, will throw when launch is called.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cc = cc.instanceId('sdk_example_winIDEA_instanceID')
>>> cmgr.connect(cc)

◆ isUseIPCDiscovery()

bool isys::CConnectionConfig::isUseIPCDiscovery ( ) const

Returns true, if IPC discovery should be used.

>>> cc = ic.CConnectionCongif()
>>> cc.useIPCDiscovery(False).isUseIPCDiscovery()
False

◆ start()

SPConnectionConfig isys::CConnectionConfig::start ( IConnect::ELaunchFlags  eStart)

Determines how to potentially start a new winIDEA instance.

Only one of lfStart flags from IConnect::ELaunchFlags may be specified. If lfStartAlways is provided, instance ID must not be specified (exception is thrown) to prevent launch of multiple instances with the same ID.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc.start(ic.IConnect.lfStartExisting))
>>> cc.get_start() & ic.IConnect.lfStartMask
3

◆ start_always()

SPConnectionConfig isys::CConnectionConfig::start_always ( )

Always start a new winIDEA instance.

If this method is called, instance ID must not be specified (exception is thrown) to prevent launch of multiple instances with the same ID.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc.start_always())
>>> cmgr.isConnected()
True

◆ start_existing()

SPConnectionConfig isys::CConnectionConfig::start_existing ( )

Connect to an existing winIDEA instance.

Never start new.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc.start_if_required())
>>> cmgr.isConnected()
True
>>> cmgr.disconnect_keep()
>>> cmgr.connect(cc.start_existing())
>>> cmgr.isConnected()
True

◆ start_if_required()

SPConnectionConfig isys::CConnectionConfig::start_if_required ( )

Start a new winIDEA instance if no existing is matching the connection criteria.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc.start_if_required())
>>> cmgr.isConnected()
True

◆ udpDiscoveryPort()

SPConnectionConfig isys::CConnectionConfig::udpDiscoveryPort ( uint16_t  w_UDP_discovery_port)

Sets UDP discovery port.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cc.udpDiscoveryPort(5315).getUdpDiscoveryPort()
5315

◆ useIPCDiscovery()

SPConnectionConfig isys::CConnectionConfig::useIPCDiscovery ( bool  b_use_IPC_discovery)

Locally running winIDEA instances will be discovered using local IPC discovery.

Change this setting only when instructed by TASKING support team.

>>> cc = ic.CConnectionCongif()
>>> cc.useIPCDiscovery(False).isUseIPCDiscovery()
False

◆ visibility()

SPConnectionConfig isys::CConnectionConfig::visibility ( IConnect::ELaunchFlags  e_visibility)

Determines how the newly launched instance will start.

Only one of lfShowXXX flags from IConnect::ELaunchFlags may be specified.

This value is used to

  • start a new winIDEA instance.

(it is not used to search for an existing instance)

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cmgr.connect(cc.visibility(ic.IConnect.lfShowHidden))
>>> cc.getVisibility() & ic.IConnect.lfShowMask
768

◆ waitTime()

SPConnectionConfig isys::CConnectionConfig::waitTime ( IConnect::ELaunchFlags  e_wait_time)

Determines how long the isystem.connect should wait for newly launched instance to respond.

Only one of lfWaitXXX flags from IConnect::ELaunchFlags may be specified.

>>> cmgr = ic.ConnectionMgr()
>>> cc = ic.CConnectionConfig()
>>> cc = cc.waitTime(ic.IConnect.lfWait1s)
>>> cc.getWaitTime() & ic.IConnect.lfWaitMask
64
>>> cmgr.connect(cc)

◆ workspace()

SPConnectionConfig isys::CConnectionConfig::workspace ( const std::string &  rstrWorkspace)

Sets winIDEA workspace.

This value is used to

  • search for an existing instance
  • start a new winIDEA instance.