Logikai szimulátor
 Összes Osztályok Fájl Függvények Változók
logic_vm::block::port osztályreferencia

#include <logic_vm.hpp>

+ A logic_vm::block::port osztály együttműködési diagramja:

Publikus tagfüggvények

 port (std::string const &name="port default", bool state=false, block *owner=nullptr, bool uninit=true)
void set_state (bool new_state)
void set_name (std::string const &new_name)
blockget_owner ()
bool get_state ()
std::string get_name ()
void add_driven (port &p)
void print ()
 ~port ()

Privát attribútumok

std::string name
bool state
std::vector< port * > driven
blockowner
bool uninit

Részletes leírás

Az áramköri elemek portjai. A portok meghajthatnak tetszőleges számú másik portot. Ekkor ha a portunk állapota megváltozik, az megváltoztatja a meghajtott portok állapotát is.

Definíció a(z) logic_vm.hpp fájl 29. sorában.

Konstruktorok és destruktorok dokumentációja

logic_vm::block::port::port ( std::string const &  name = "port default",
bool  state = false,
block owner = nullptr,
bool  uninit = true 
)
inline

Definíció a(z) logic_vm.hpp fájl 43. sorában.

logic_vm::block::port::~port ( )
inline

Definíció a(z) logic_vm.hpp fájl 110. sorában.

{}

Tagfüggvények dokumentációja

void logic_vm::block::port::add_driven ( port p)
inline

Meghajtott port hozzárendelése.

Paraméterek
pmeghajtott port referenciája.

Definíció a(z) logic_vm.hpp fájl 99. sorában.

Hivatkozások logic_vm::dot_file, driven, logic_vm::block::id, name, owner és logic_vm::block::parent.

Hivatkozások: logic_vm::block::connect().

{
driven.push_back(&p);
owner->parent->dot_file << owner->id << name << "->" << p.owner->id << p.name << "\n";
}
std::string logic_vm::block::port::get_name ( )
inline

Port nevének lekérdezése.

Visszatérési érték
port neve

Definíció a(z) logic_vm.hpp fájl 93. sorában.

Hivatkozások name.

Hivatkozások: logic_vm::block::connect().

{ return name; }
block* logic_vm::block::port::get_owner ( )
inline

Visszaadja a port gazdáját.

Definíció a(z) logic_vm.hpp fájl 81. sorában.

Hivatkozások owner.

{ return owner; }
bool logic_vm::block::port::get_state ( )
inline

Állapot lekérdezése.

Visszatérési érték
bool állapot

Definíció a(z) logic_vm.hpp fájl 87. sorában.

Hivatkozások state.

{ return state; }
void logic_vm::block::port::print ( )
inline

Port nevének és állapotának a kiírása.

Definíció a(z) logic_vm.hpp fájl 104. sorában.

Hivatkozások name és state.

{
std::cout << "\t" << name << " -> " << state;
// if(owner!=nullptr)
// std::cout << "\t Owner: " << owner->id ;
// std::cout << std::endl;
}
void logic_vm::block::port::set_name ( std::string const &  new_name)
inline

Port nevének megváltoztatására.

Definíció a(z) logic_vm.hpp fájl 77. sorában.

Hivatkozások name.

{
name = new_name;
}
void logic_vm::block::port::set_state ( bool  new_state)
inline

Port állapotának megváltoztatása. Ez a függvény végzi az áramkörhöz tartozó művelet végrehajtási listába illesztését.

Definíció a(z) logic_vm.hpp fájl 50. sorában.

Hivatkozások driven, logic_vm::block::eval(), logic_vm::block::get_delay(), logic_vm::block::get_id(), logic_vm::get_name(), logic_vm::get_time(), name, owner, logic_vm::block::parent, logic_vm::queue, state és uninit.

{
if ((state != new_state) || uninit) {
uninit=false;
if(owner!=nullptr) {
if(owner->parent!=nullptr) {
std::cout << owner->parent->get_name() << ".";
}
std::cout << owner->get_id() << ".";
}
std::cout << name << ": " << state << " -> " << new_state << std::endl;
state = new_state;
if(owner!=nullptr && driven.size()==0) {
if (owner->parent != nullptr) {
owner->parent->queue.push_back(std::make_pair(owner->parent->get_time() + owner->get_delay(), [&] () {owner->eval(); } ));
}
else {
throw "";
}
}
if(driven.size()>0) {
for(auto &drive: driven) {
drive->set_state(state);
}
}
}
}

Adattagok dokumentációja

std::vector<port*> logic_vm::block::port::driven
private

Meghajtott portok pointereinek vektora.

Definíció a(z) logic_vm.hpp fájl 36. sorában.

Hivatkozások: add_driven() és set_state().

std::string logic_vm::block::port::name
private

Port neve.

Definíció a(z) logic_vm.hpp fájl 32. sorában.

Hivatkozások: add_driven(), get_name(), print(), set_name() és set_state().

block* logic_vm::block::port::owner
private

A szülő áramköri elem pointere.

Definíció a(z) logic_vm.hpp fájl 38. sorában.

Hivatkozások: add_driven(), get_owner() és set_state().

bool logic_vm::block::port::state
private

Port aktuális állapota.

Definíció a(z) logic_vm.hpp fájl 34. sorában.

Hivatkozások: get_state(), print() és set_state().

bool logic_vm::block::port::uninit
private

Inicializáltság flag. A port első használatáig true.

Definíció a(z) logic_vm.hpp fájl 41. sorában.

Hivatkozások: set_state().


Ez a dokumentáció az osztályról a következő fájl alapján készült: