NDS3
1.0.0
API reference manual
|
This is the base class for all the NDS3 public classes that declare a device part (node, port, PV, etc).
#include <base.h>
Public Member Functions | |
Base (const Base &right) | |
Copy constructor. The copy will refer to the same implementation object referenced in the copied object. More... | |
Base & | operator= (const Base &right) |
Copy operator. The copy will refer to the same implementation object referenced in the copied object. More... | |
void | setExternalName (const std::string &externalName) |
Set the string to pass to the naming rules in order to build the full node name as seen by the control system. More... | |
virtual Port | getPort () |
Get the Node that communicate with the device (ASYN port on EPICS, Device on Tango). Query the parent nodes if necessary. More... | |
const std::string & | getComponentName () const |
Return the node's name. More... | |
const std::string & | getFullName () const |
Return the full node's name, prepending the parents' names if necessary (e.g. "ROOT-CHANNEL1-THISNODE") More... | |
const std::string & | getFullExternalName () const |
Return the full node's name as seen by the control system clients. More... | |
const std::string & | getFullNameFromPort () const |
Return the node's name as seen by the parent Port node (the node that communicates with the device). More... | |
timespec | getTimestamp () const |
Get the current time. More... | |
void | setTimestampDelegate (getTimestampPlugin_t timestampDelegate) |
Specify the delegate function to call to get the timestamp. More... | |
std::ostream & | getLogger (const logLevel_t logLevel) |
Retrieve a logging stream for the specified log level. More... | |
bool | isLogLevelEnabled (const logLevel_t logLevel) const |
Returns true if the logging for a particular severity level has been enabled. More... | |
void | setLogLevel (const logLevel_t logLevel) |
Enable the logging for a particular severity level. More... | |
void | defineCommand (const std::string &command, const std::string &usage, const size_t numParameters, const command_t function) |
Define a command specific for the node. More... | |
Thread | runInThread (const std::string &name, threadFunction_t function) |
Create and run a thread using the control system facilities. More... | |
Thread | runInThread (threadFunction_t function) |
Create and run a thread using the control system facilities. The created thread will have the node's name. More... | |
Protected Member Functions | |
Base () | |
Initializes an empty base class. | |
nds::Base::Base | ( | const Base & | right | ) |
Copy constructor. The copy will refer to the same implementation object referenced in the copied object.
right | the object to copy |
void nds::Base::defineCommand | ( | const std::string & | command, |
const std::string & | usage, | ||
const size_t | numParameters, | ||
const command_t | function | ||
) |
Define a command specific for the node.
In EPICS the command will be available by typing:
For instance, for a command "switchOn" on a node named "Oscilloscope-ch0" you will have to type:
command | the command name |
usage | the command description |
numParameters | the number of parameters (only strings) |
function | the delegate function to call to execute the command |
|
virtual |
Get the Node that communicate with the device (ASYN port on EPICS, Device on Tango). Query the parent nodes if necessary.
timespec nds::Base::getTimestamp | ( | ) | const |
Get the current time.
Copy operator. The copy will refer to the same implementation object referenced in the copied object.
right | the object to copy |
Thread nds::Base::runInThread | ( | const std::string & | name, |
threadFunction_t | function | ||
) |
Create and run a thread using the control system facilities.
If the control system does not provide any thread facility then a std::thread is created and executed.
name | the name given to the thread |
function | the function to execute in the thread |
Thread nds::Base::runInThread | ( | threadFunction_t | function | ) |
Create and run a thread using the control system facilities. The created thread will have the node's name.
If the control system does not provide any thread facility then a std::thread is created and executed.
function | the function to execute in the thread |
void nds::Base::setTimestampDelegate | ( | getTimestampPlugin_t | timestampDelegate | ) |
Specify the delegate function to call to get the timestamp.
If this method is not called then an internal function is called, which traverses all the parent nodes until the node with no parent returns the local time or call its own delegate function if specified.
timestampDelegate | the delegate function to call to get the timestamp |