// Archivo Coleccion.h contiene la declaracion de la clase ColeccionDeDatos // Esta es una clase parametrizada. #ifndef COLECCION_H #define COLECCION_H #include "ObjetoInt.h" #include "ObjetoModificable.h" #include "ListaLigada.h" #include "AreaGrafica.h" template class C_ColeccionDeDatos:public C_ObjetoInteractivo,public C_ObjetoModificable { protected: char NombreArchivo[TAM_NOMBREARREGLO]; C_ListaLigada Arreglo; // Lo mejor es algun dato que herede de C_DatoDeCOleccion... int TamanoArreglo; // Tamano del arreglo. FILE *ApArchivo; // Apuntador del archivo. // Memoria bool ReservaMemoriaArreglo(); // Crea la memoria para el arreglo bool ReservaMemoriaElementos(); // Reserva la memoria de elementos... bool LiberaMemoriaArreglo(); // Libera el arreglo. // Archivo bool AbreArchivo(); // Abre el archivo, llena ApArchivo bool CierraArchivo(); // Cierra el archivo // Graficas. C_AreaGrafica *PantallaGrafica; // Referencia que da la aplicacion. // Banderas bool HayArreglo; // Enciende cuando la memoria esta reservada. bool EstaCargado; // Enciende si se cargo exitosamente. bool EstaConfigurado; // Enciende si ya esta configurado. C_ColeccionDeDatos(); // Constructor solo puede invocarse por los hijos. public: // Copia bool Copia(C_ColeccionDeDatos *,bool=TRUE); // Copia otra coleccion (bool si se quieren copiar los datos o no). // Archivo bool CargaDatos(); // Esta debe ser implementada por la clase instanciada bool GuardaDatos(); // Igual que la anterior. // Cambios bool CambiaArreglo(C_ListaLigada *NuevoArreglo); // Cambia por otro arreglo... bool CambiaTamanoArreglo(int); // Cambia tamano del arreglo bool CambiaDato(int,Dato *); // Cambia un dato del arreglo bool CambiaNombreArchivo(char *); // Cambia el nombre del archivo // Consultas char *LeeNombreArchivo() {return NombreArchivo;}// Lee el nombre del archivo bool LeeEstaCargado() {return EstaCargado;} // Verifica si ya se cargo... int LeeTamano() {return Arreglo.LeeTamano();} // Lee tamano del arreglo. Dato *LeeDato(int); // Lee un dato del arreglo. // Despliegue: bool AsignaAreaGrafica(C_AreaGrafica *ApPantalla); virtual bool DespliegaDatos() {return FALSE;} // Despliega los datos. }; #endif