Разработка программного модуля для компьютерной игры

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



uct fs_incorrect_path,failure> incorrect_path;mll::debug::exception_template zip_restrictions;

}

}

Файл directory.hmll

{fs

{

//=====================================================================================//

// class directory //

//=====================================================================================//directory

{:std::list list_t;_t m_list;::string m_name;:list_t::iterator iterator;list_t::const_iterator const_iterator;:(const std::string &name): m_name(name) {}

~directory();mount(sub_fs *what);::auto_ptr unmount(iterator what);std::string &name() { return m_name; }_iterator begin() { return m_list.begin(); }_iterator end() { return m_list.end(); }size() const { return m_list.size(); }

};

}

}

Файл sub_fs.hmll

{fs

{sub_fs_iter;

//=====================================================================================//

// class sub_fs //

//=====================================================================================//sub_fs

{:priority_handler;: ~sub_fs() = 0 {}

///подцепить объект-приоритет системы

virtual void set_priority_handler(std::auto_ptr handler) = 0;

///Дисковый путь до объекта подсистемы (каталога, zip-файла etc), со слешем на конце

virtual const std::string& disk_path() const = 0;

/// Возможность изменять файлы внутри подсистемыbool system_readonly() const = 0;

/// Существует ли файл с указанным именем

virtual bool file_exists(const fs_path &name) const = 0;

/// Создать итератор внутри подсистемы по введенному пути

virtual std::auto_ptr new_iterator(const fs_path &) const = 0;

/// Размер файла с указанным именем в байтах

virtual unsigned file_size(const fs_path &name) const = 0;

/// Возможность писать в файл с указанным именем

virtual bool is_readonly(const fs_path &name) const = 0;

/// Дата последнего изменения файла с указанным именем

virtual time_t date(const fs_path &name) const = 0;

/// Является ли файл с указанным именем директорией

virtual bool is_dir(const fs_path &name) const = 0;

/// Вернуть указатель на поток istream для файла с указанным именем

virtual std::auto_ptr r_open_file(const fs_path &path, seekable = true) const = 0;

/// Вернуть указатель на поток ostream для файла с указанным именем

/** Если указан параметр append, поток должен указывать

на конец файла.*/std::auto_ptr w_open_file(const fs_path &path,append, bool seekable = true) const = 0;

/// Удалить файл с указанным именемvoid delete_file(const fs_path &name) const = 0;

///Создать директориюvoid make_dir(const fs_path &path) const = 0;://up_to_subsystem_priorityint priority() const = 0;

};

//=====================================================================================//

// class FILE_SYSTEM_EXPORT sub_fs::priority_handler //

//=====================================================================================//sub_fs::priority_handler

{:~priority_handler() {}int priority() const = 0;

};

}

}

Файл sub_fs_iter.hmll

{fs

{

//=====================================================================================//

// class sub_fs_iter //

//=====================================================================================//sub_fs_iter

{: ~sub_fs_iter() = 0 {}

/// Закончились ли файлы по указанному пути

virtual bool is_done() = 0;

/// Смещение на следующий файл

virtual sub_fs_iter &operator++() = 0;

/// Формирует объект file_obj из имеющейся информации о файле

virtual file_id get_id() = 0;

};

}

}

Файл fs_files.hmll

{fs

{

//=====================================================================================//

// template class reference_container //

//=====================================================================================//reference_container

{:T container_type;container_type &m_list;:_container(const container_type &list): m_list(list) {}

~reference_container() {}:typename container_type::const_iterator iterator;:

///получить итератор на начало

iterator begin() { return m_list.begin(); }

///получить итератор на конец

iterator end() { return m_list.end(); }

///получить размер контейнераsize() const { return m_list.size(); }

};

//=====================================================================================//

// template class value_container //

//=====================================================================================//value_container

{:T container_type;_type m_list;:_container(const container_type &list): m_list(list) {}_container(const value_container &another): m_list(another.m_list) {}

~value_container() {}:typename container_type::const_iterator iterator;:

///получить итератор на начало

iterator begin() { return m_list.begin(); }

///получить итератор на конец

iterator end() { return m_list.end(); }

///получить размер контейнераsize() const { return m_list.size(); }

};std::list id_container;

//=====================================================================================//

// class fs_files //

//=====================================================================================//fs_files

{:file_t::const_iterator iterator;:::shared_ptr &another);

~fs_files() {}_files &);:_container get_file_container() const;_container get_id_container(const file_id &id) const;:

///получить итератор на начало контейнера предпочтительных вариантов фалов

iterator begin() const { return m_list->begin(); }

///получить итератор на конецend() const { return m_list->end(); }

///получить размер контейнераint size() const { return m_list->size(); }

};

}

}

Файл file_id.hmll

{fs

{sub_fs;

//=====================================================================================//

// class file_id //

//=====================================================================================//FILE_SYSTEM_EXPORT file_id

{sub_fs *m_sub_fs;_path m_name;:_id(): m_sub_fs(0) {}_id(const sub_fs *sfs, const std::string &name);_id(const file_id &another);

//~file_id() {}_id& operator=(const file_id& another)

{(this != &another)

{_sub_fs = another.m_sub_fs;_name = another.m_name;

}*this;

}:const void * const () const { return m_sub_fs; }operator !() const { return m_sub_fs == 0; }:

/// Возвратит указатель на sub_fs, к которому принадлежит идентификатор

const sub_fs *sub_fs() const { return m_sub_fs; }

/// Полный виртуальный путь с именем

std::string path() const;

/// Виртуальный путь::string dir() const;

/// Имя файла::string fname() const;

/// Расширение::string ext() const;

///Полное имя с расширением

std::string name() const;

///Полный дисковый путь с именем

std::string disk_path() const;

/// Параметр "только чтение"is_readonly() const;

/// Размер файла в байтахfile_size() const;

/// Время последнего изменения файла

time_t date() const;

/// Директория ли это

bool is_dir() const;

};

}

}

Файл file.hmll

{fs

{

//=====================================================================================//

// class o_file //

//=====================================================================================//

/** \class o_file

\brief Класс - "файл для записи".

*/

/**Класс, содерж