Class COperationEntity#

Inheritance Relationships#

Base Types#

Class Documentation#

class COperationEntity : public CDeclarationEntity, public sdv::idl::IOperationEntity#

The operation definition of an IDL file.

The operation section of the IDL file defines operations.

Public Functions

COperationEntity(const CContextPtr &rptrContext, CEntityPtr ptrParent)#

Default constructor.

Parameters:
  • rptrContext[in] Reference to the smart pointer holding the parse context. Must not be NULL.

  • ptrParent[in] Pointer to the parent class holding this entity. This must not be NULL.

virtual ~COperationEntity() override = default#

Destructor.

virtual sdv::interface_t GetInterface(sdv::interface_id idInterface) override#

Get access to another interface. Overload of sdv::IInterfaceAccess::GetInterface.

Parameters:

idInterface[in] The interface id to get access to.

Returns:

Returns a pointer to the interface or NULL when the interface is not supported.

virtual sdv::idl::IEntityIterator *GetParameters() override#

Get parameter entity iterator if the definition has any parameters. Overload of sdv::idl::IOperationEntity::GetParameters.

Returns:

Returns a pointer to the parameter entity iterator or NULL when not available.

virtual sdv::idl::IEntityIterator *GetExceptions() override#

Get the list of possible exceptions that might be fired for this operation. Overload of sdv::idl::IOperationEntity::GetExceptions.

Returns:

Interface pointer to the exception iterator.

inline virtual bool IsReadOnly() const override#

Is the entity readonly (variable declarations and writable attributes aren’t)? Overload of IDeclarationEntity::IsReadOnly.

Returns whether the entity is readonly by design or whether it is defined readonly by the code. Default value is ‘true’.

Returns:

Returns ‘true’ when the entity defined as readonly; ‘false’ otherwise.

inline virtual sdv::idl::EEntityType GetType() const override#

Get the type of the entity. Overload of CEntity::GetType.

Returns:

Returns the operation type.

inline virtual void Process() override#

Process the code. Overload of CEntity::Process.

Protected Functions

inline virtual bool SupportRaiseExceptions() const override#

Does the entity support raising exceptions? Overload of CDeclarationEntity::SupportRaiseExceptions.

Returns:

Returns ‘true’ when the entity defined as attribute; ‘false’ otherwise.

inline virtual bool SupportArrays() const override#

Does the entity support arrays? Overload of CDeclarationEntity::SupportArrays.

Returns:

Returns ‘true’ when the entity supports assignments; ‘false’ otherwise.

inline virtual bool SupportInterface() const override#

Does the entity support an interface as base type? Overload of CDeclarationEntity::SupportVoid.

Returns:

Returns ‘true’ when the entity supports interfaces as base type; ‘false’ otherwise.

inline virtual bool SupportVoid() const override#

Does the entity support ‘void’ as base type? Overload of CDeclarationEntity::SupportVoid.

Returns whether the entity supports the ‘void’ base type. Default value is ‘false’.

Returns:

Returns ‘true’ when the entity supports void as base type; ‘false’ otherwise.

inline virtual bool RequiresParameters() const override#

Does the entity support parameters? Overload of CDeclarationEntity::RequiresParameters.

Returns whether the entity supports parameters. Default value is ‘false’.

Returns:

Returns ‘true’ when the entity requires parameters; ‘false’ otherwise.

inline virtual void SetOperationAsConst() override#

Set operation as const. Overload of CDeclarationEntity::SetOperationAsConst.

virtual std::pair<CEntityPtr, bool> FindLocal(const std::string &rssName, bool bDeclaration) const override#

Find the entity locally by looking in the parameter list. Overload of CEntity::FindLocal.

Parameters:
  • rssName[in] Reference to the string object containing the name of the entity to search for.

  • bDeclaration[in] When set, the name belongs to a declaration; otherwise it belongs to a definition. Needed to allow the reuse of names between declarations and definitions.

Returns:

Returns a pair object containing an entity pointer if the entity exists or a NULL pointer if not as well as a boolean that indicates that the entity was from an inherited entity.

virtual bool RequiresAssignment() const override#

Does the entity require an assignment (const declarations do)? Overload of CDeclarationEntity::RequiresAssignment.

Default processing is done by the declaration function (checking for unbound arrays). Exception: when the parent interface is defined as local, assignment is not required.

Returns:

Returns ‘true’ when the entity requires an assignment; ‘false’ otherwise.