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

#include <logic_vm.hpp>

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

Osztályok

class  port

Publikus tagfüggvények

 block (std::string const &id="block default", unsigned delay=1, logic_vm *parent=nullptr)
void set_id (std::string const &tag)
std::string get_id ()
void add_port (std::string const &name, std::string type)
unsigned get_delay ()
void set_port (std::string const &name, bool value)
port neve

Port kikeresése a neve alapján.

Visszatérési érték
az adott portra mutató referencia
portget_port (std::string const &name)
void connect (std::string const &out, block &b, std::string const &in)
void eval ()
void print ()
void set_parent (logic_vm *p)
virtual ~block ()

Védett attribútumok

std::string id
std::vector< portinput
std::vector< portoutput
std::vector< std::function
< void()> > 
events
unsigned delay
logic_vmparent

Részletes leírás

Minden áramköri elem őse.

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

Konstruktorok és destruktorok dokumentációja

logic_vm::block::block ( std::string const &  id = "block default",
unsigned  delay = 1,
logic_vm parent = nullptr 
)
inline

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

: id(id), delay(delay), parent(parent) {};
virtual logic_vm::block::~block ( )
inlinevirtual

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

{ }

Tagfüggvények dokumentációja

void logic_vm::block::add_port ( std::string const &  name,
std::string  type 
)
inline

Port hozzáadása az áramkörhöz.

Paraméterek
nameport neve
typeport típusa

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

Hivatkozások logic_vm::dot_file, input, output és parent.

Hivatkozások: main().

{
parent->dot_file << id << name << " [label=\"" << name << "\" shape=\"circle\"]\n";
if(type=="input") {
input.push_back(port(name,false,this));
parent->dot_file << id << name << "->" << id << "\n";
}
else {
output.push_back(port(name,false,this));
parent->dot_file << id << "->" << id << name << "\n";
}
}
void logic_vm::block::connect ( std::string const &  out,
block b,
std::string const &  in 
)
inline

Portok összekapcsolása.

Paraméterek
outmeghajtó port
bmeghajtani kívánt áramkör
inmeghajtani kívánt port

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

Hivatkozások logic_vm::block::port::add_driven(), logic_vm::block::port::get_name(), logic_vm::get_name(), get_port(), id és parent.

Hivatkozások: main().

{
this->get_port(out).add_driven(b.get_port(in));
std::cout << "Connect ";
if(this->parent != nullptr)
std::cout << this->parent->get_name() << ".";
std::cout << this->id << "." << get_port(out).get_name() << " -> ";
if(b.parent != nullptr)
std::cout << b.parent->get_name() << ".";
std::cout << b.id << "." << b.get_port(in).get_name() << std::endl;
}
void logic_vm::block::eval ( )
inline

Az áramkör működésének aktiválása. Ez a függvény valamennyi az áramkörhöz tartozó eseményt végrehajtja.

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

Hivatkozások events.

Hivatkozások: logic_vm::block::port::set_state().

{
for(auto gyi: events) {
gyi();
}
}
unsigned logic_vm::block::get_delay ( )
inline

Késleltetés lekérdezése.

Visszatérési érték
delay

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

Hivatkozások delay.

Hivatkozások: logic_vm::block::port::set_state().

{ return delay; }
std::string logic_vm::block::get_id ( )
inline

Azonosító lekérdezése.

Visszatérési érték
azonosító

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

Hivatkozások id.

Hivatkozások: logic_vm::add(), logic_vm::element() és logic_vm::block::port::set_state().

{ return id; }
port& logic_vm::block::get_port ( std::string const &  name)
inline

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

Hivatkozások input és output.

Hivatkozások: connect().

{
for(auto &in: input)
if(in.get_name() == name)
return in;
for(auto &out: output)
if(out.get_name() == name)
return out;
throw "";
}
void logic_vm::block::print ( )
inline

Infók kiírása.

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

Hivatkozások delay, logic_vm::get_name(), input, output és parent.

{
std::cout << "ID: " << id << std::endl;
std::cout << "Delay: " << delay << std::endl;
std::cout << "Input(s): ";
for(auto &in: input) in.print();
std::cout << std::endl;
std::cout << "Output(s): ";
for(auto &out: output) out.print();
std::cout << std::endl;
if (parent != nullptr)
std::cout << "Parent: " << parent->get_name() << std::endl;
}
void logic_vm::block::set_id ( std::string const &  tag)
inline

Azonosító beállítása.

Paraméterek
tagazonosító

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

{
id = tag;
}
void logic_vm::block::set_parent ( logic_vm p)
inline

Szülő logikai szimulátor beállítása.

Paraméterek
pszülőre mutató pointer

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

Hivatkozások parent.

Hivatkozások: logic_vm::add().

{ parent = p; }
void logic_vm::block::set_port ( std::string const &  name,
bool  value 
)
inline

Port állapotának beállítása.

Paraméterek
namea port neve
valuea beállítani kívánt érték

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

Hivatkozások input.

Hivatkozások: main().

{
for(auto &p: input) {
if(p.get_name() == name) {
p.set_state(value);
}
}
}

Adattagok dokumentációja

unsigned logic_vm::block::delay
protected

Az áramköri elem késleltetése.

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

Hivatkozások: get_delay() és print().

std::vector<std::function<void()> > logic_vm::block::events
protected

Az áramkör viselkedését megadó események tárolója.

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

Hivatkozások: and_block::and_block(), eval(), inverter_block::inverter_block(), nand_block::nand_block() és or_block::or_block().

std::string logic_vm::block::id
protected

Az áramköri elem azonosítója.

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

Hivatkozások: logic_vm::block::port::add_driven(), connect() és get_id().

std::vector<port> logic_vm::block::input
protected

Az áramkör bemeneti portjainak vektora.

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

Hivatkozások: add_port(), and_block::and_block(), get_port(), inverter_block::inverter_block(), nand_block::nand_block(), or_block::or_block(), print() és set_port().

std::vector<port> logic_vm::block::output
protected

Az áramkör kimeneti portjainak vektora.

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

Hivatkozások: add_port(), and_block::and_block(), get_port(), inverter_block::inverter_block(), nand_block::nand_block(), or_block::or_block() és print().

logic_vm* logic_vm::block::parent
protected

A szülő logikai szimulátorra mutató pointer.

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

Hivatkozások: logic_vm::block::port::add_driven(), add_port(), connect(), print(), set_parent() és logic_vm::block::port::set_state().


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