00001 //=========================================================================== 00002 //= entidad.h Junio de 1998 = 00003 //=-------------------------------------------------------------------------= 00004 //= Todas las clases centrales de la arquitectura de software son ENTIDADes = 00005 //= lo cual permite operaciones basicas comunes. = 00006 //=-------------------------------------------------------------------------= 00007 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00008 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00009 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00010 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00011 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00012 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00013 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00014 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00015 //=-------------------------------------------------------------------------= 00016 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00017 //= 1997 - 2003, oscarchavarro@hotmail.com = 00018 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00019 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00020 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00021 //=========================================================================== 00022 00023 #ifndef __ENTIDAD__ 00024 #define __ENTIDAD__ 00025 00026 #include "jed_defs.h" 00027 #include "arreglo.h" 00028 00029 class CONTROLADOR_DE_ENTIDAD; 00030 00031 class ENTIDAD { 00032 private: 00033 char _nombre[MAX_CAD]; 00034 ARREGLO<CONTROLADOR_DE_ENTIDAD *> arr_referencias; 00035 public: 00036 ENTIDAD(); 00037 char *nombre(void); 00038 void set_nombre(const char *n); 00039 virtual BOOLEAN 00040 consultar_variable(const char *nombre_variable, int &tipo, void **ref); 00041 virtual BOOLEAN 00042 actualizar_variable(const char *nombre_variable, int tipo, void *ref); 00043 void propagar_cambios(void); 00044 void registrar_controlador(CONTROLADOR_DE_ENTIDAD *Controlador); 00045 }; 00046 00047 class CONTROLADOR_DE_ENTIDAD { 00048 public: 00049 virtual ~CONTROLADOR_DE_ENTIDAD(); 00050 virtual void actualizar(ENTIDAD *Entidad) = 0; 00051 }; 00052 00053 class REPOSITORIO_DE_ENTIDADES { 00054 private: 00055 public: 00056 REPOSITORIO_DE_ENTIDADES(); 00057 virtual ~REPOSITORIO_DE_ENTIDADES(); 00058 virtual ENTIDAD *buscar_entidad(char *grupo, char *nombre) = 0; 00059 }; 00060 00061 #endif // __ENTIDAD__ 00062 00063 //=========================================================================== 00064 //= EOF = 00065 //=========================================================================== 00066