arm4::ArmCorrelator Class Reference

Represents a correlation token passed from a calling transaction to a called transaction. More...

Inheritance diagram for arm4::ArmCorrelator:
arm4::ArmInterface arm4::util::ArmCorrelatorEnvironment arm4::util::ArmCorrelatorUser

List of all members.

Public Member Functions

 ArmCorrelator ()
 constructs an empty correlator
 ArmCorrelator (const ArmCorrelator &corr)
 constructs a copy of the passed correlator.
ArmCorrelatoroperator= (const ArmCorrelator &corr)
 copies the contents of the passed correlator
bool isAgentTrace () const
 indicates whether the "agent trace" flag is on in the correlator.
bool isApplicationTrace () const
 indicates whether the "application trace" flag is on in the correlator.
bool isAsynchronous () const
bool isIndependentTran () const
int32_t setAsynchronous (bool b)
int32_t setIndependentTran (bool b)
arm_correlator_t * get ()
 obtain the pointer to the C arm_correlator_t structure.
 operator const arm_correlator_t * () const
 Cast operator to the C ARM 4.0 data type.
std::string toString () const
 Returns the correlator as a string in hex encoding.
bool fromString (const std::string &corr)
 copies the correlator from the passed string representation
bool isNull () const
 returns true if the correlator is not used

Static Public Attributes

static const ArmCorrelator Null
 A null correlator.

Detailed Description

Represents a correlation token passed from a calling transaction to a called transaction.

The correlation token may be used to establish a calling hierarchy across processes and systems. A correlator contains a two-byte length field, a one-byte format ID, a one-byte flag field, plus it may contain other data that is used to uniquely identify an instance of a transaction. Applications do not need to understand correlator internals. See Appendix B of the ARM 4.0 Java Binding Specification for more information about correlator formats.

A correlation token is a maximum of ArmConstants::CORR_MAX_LENGTH bytes, including the header.

ArmCorrelator is created in one of three ways:

An application may extract the byte array in network byte order, which is the format needed to send to a called transaction, using the get() method to obtain a pointer to the arm_correlator_t strcuture.

Author:
ARM Working Group of The Open Group, MyARM GmbH

Constructor & Destructor Documentation

arm4::ArmCorrelator::ArmCorrelator ( const ArmCorrelator corr  ) 

constructs a copy of the passed correlator.

Parameters:
corr Correlator to copy.

Member Function Documentation

bool arm4::ArmCorrelator::isAgentTrace (  )  const

indicates whether the "agent trace" flag is on in the correlator.

Returns:
the status of the agent trace flag.
bool arm4::ArmCorrelator::isApplicationTrace (  )  const

indicates whether the "application trace" flag is on in the correlator.

Returns:
the status of the application trace flag.
bool arm4::ArmCorrelator::isAsynchronous (  )  const

indicates whether the "asynchronous" flag is on in the correlator.

Returns:
the status of the asynchronous flag.
Since:
ARM 4.1
bool arm4::ArmCorrelator::isIndependentTran (  )  const

indicates whether the "independent transaction" flag is on in the correlator.

Returns:
the status of the independent flag.
Since:
ARM 4.1
ArmCorrelator& arm4::ArmCorrelator::operator= ( const ArmCorrelator corr  ) 

copies the contents of the passed correlator

Parameters:
corr Correlator to copy contents from.
Returns:
reference to this correlator;
int32_t arm4::ArmCorrelator::setAsynchronous ( bool  b  ) 

causes the "asynchronous" flag to be set to the specified boolean value.

Parameters:
b the new status of the asynchronous flag.
Returns:
0 on success; otherwise, a non-zero error code is returned (as specified in ArmInterface).
Since:
ARM 4.1
int32_t arm4::ArmCorrelator::setIndependentTran ( bool  b  ) 

causes the "independent transaction" flag to be set to the specified boolean value.

Parameters:
b the new status of the independent flag.
Returns:
0 on success; otherwise, a non-zero error code is returned (as specified in ArmInterface).
Since:
ARM 4.1

The documentation for this class was generated from the following file: