blob: 4e2b216ec41e69145a3f1774e35658d3da138e94 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Created on: 8 mars 2017
*
* Contributors:
* Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr
* - Initial API and implementation
******************************************************************************/
#ifndef FML_INFRASTRUCTURE_MACHINEQUERY_H_
#define FML_INFRASTRUCTURE_MACHINEQUERY_H_
#include <cstddef>
#include <string>
#include <vector>
namespace sep
{
class BF;
class BehavioralPart;
class CompositePart;
class PropertyPart;
class Machine;
class Routine;
class MachineQuery
{
public:
/**
* CONSTRUCTOR
* Executable
*/
MachineQuery()
{
//!! NOTHING
}
/**
* DESTRUCTOR
*/
virtual ~MachineQuery()
{
//!! NOTHING
}
/**
* API
*/
virtual const Machine * thisMachine() const = 0;
virtual const PropertyPart & getPropertyPart() const = 0;
virtual const CompositePart * getCompositePart() const = 0;
virtual BehavioralPart * getBehaviorPart() const = 0;
virtual bool hasBehaviorPart() const = 0;
/**
* GETTER for PARSER / COMPILER
* any Object Element
*/
const BF & getPropertyByNameID(const std::string & aNameID) const;
const BF & getrecFormByNameID(const std::string & aNameID) const;
const BF & getsemFormByNameID(const std::string & aNameID) const;
const BF & getPropertyByQualifiedNameID(const std::string & aQualifiedNameID) const;
const BF & getrecFormByQualifiedNameID(const std::string & aQualifiedNameID) const;
const BF & getsemFormByQualifiedNameID(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Variable
*/
const BF & getVariable(const std::string & aQualifiedNameID) const;
const BF & getrecVariable(const std::string & aQualifiedNameID) const;
const BF & getsemVariable(const std::string & aQualifiedNameID) const;
const BF & getDataType(const std::string & aQualifiedNameID) const;
const BF & getrecDataType(const std::string & aQualifiedNameID) const;
const BF & getsemDataType(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Buffer
*/
const BF & getBuffer(const std::string & aQualifiedNameID) const;
const BF & getrecBuffer(const std::string & aQualifiedNameID) const;
const BF & getsemBuffer(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Channel
*/
const BF & getChannel(const std::string & aQualifiedNameID) const;
const BF & getrecChannel(const std::string & aQualifiedNameID) const;
const BF & getsemChannel(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Port
*/
const BF & getPort(const std::string & aQualifiedNameID) const;
const BF & getrecPort(const std::string & aQualifiedNameID) const;
const BF & getsemPort(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Signal
*/
const BF & getSignal(const std::string & aQualifiedNameID) const;
const BF & getrecSignal(const std::string & aQualifiedNameID) const;
const BF & getsemSignal(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Port / Signal
*/
const BF & getPortSignal(const std::string & aQualifiedNameID) const;
const BF & getrecPortSignal(const std::string & aQualifiedNameID) const;
const BF & getsemPortSignal(const std::string & aQualifiedNameID) const;
/**
* GETTER for PARSER / COMPILER
* Routine
*/
Routine * rawRoutineByNameID(const std::string & aNameID) const;
Routine * rawsemRoutineByNameID(const std::string & aNameID) const;
/**
* GETTER for PARSER / COMPILER
* Procedure
*/
Machine * rawProcedureByNameID(const std::string & aNameID) const;
Machine * rawsemProcedureByNameID(const std::string & aNameID) const;
/**
* GETTER for PARSER / COMPILER
* Machine
*/
Machine * getMachineByNameID(const std::string & aNameID) const;
Machine * getsemMachineByNameID(const std::string & aNameID) const;
Machine * getMachine(const std::string & aQualifiedNameID) const;
Machine * getrecMachine(const std::string & aQualifiedNameID,
Machine * ignoreChildMachine = NULL) const;
Machine * getsemMachine(const std::string & aQualifiedNameID) const;
Machine * getsemMachine(const std::vector< std::string > & aQualifiedNameID) const;
Machine * getExecutableMachine(const std::string & aQualifiedNameID) const;
Machine * getrecExecutableMachine(const std::string & aQualifiedNameID) const;
Machine * getsemExecutableMachine(const std::string & aQualifiedNameID) const;
};
} /* namespace sep */
#endif /* FML_INFRASTRUCTURE_MACHINEQUERY_H_ */