Просмотр полной версии : Класс Thread в Мангосе.
Решил тут поизучать как организованны потоки в мангосе и как там используется ACE.... Но это так лирическое отступление.
Нашел файл Threading.h и Threading.cpp соответственно. Все понятно.
НО тут открываю к примеру WorldRunnable.h
вижу код
#ifndef __WORLDRUNNABLE_H
#define __WORLDRUNNABLE_H
/// Heartbeat thread for the World
class WorldRunnable : public ACE_Based::Runnable
{
public:
void run();
};
#endif
И не понимаю как компилятор понимает где определен ACE_Based::Runnable
Тоесть понятно что он определен в Threading.h. Но почему там нету инклуда и как компилятор узнает куда копать в данном случае.
Мне кажеться,что компилятор присваивает путь,а они взаимосвязаны,поэтому при раскопке виден данный код
Мне кажеться,что компилятор присваивает путь,а они взаимосвязаны,поэтому при раскопке виден данный код
Я что-то ничего не понял из данного поста )
Решил тут поизучать как организованны потоки в мангосе и как там используется ACE.... Но это так лирическое отступление.
Нашел файл Threading.h и Threading.cpp соответственно. Все понятно.
НО тут открываю к примеру WorldRunnable.h
вижу код
#ifndef __WORLDRUNNABLE_H
#define __WORLDRUNNABLE_H
/// Heartbeat thread for the World
class WorldRunnable : public ACE_Based::Runnable
{
public:
void run();
};
#endif
И не понимаю как компилятор понимает где определен ACE_Based::Runnable
Тоесть понятно что он определен в Threading.h. Но почему там нету инклуда и как компилятор узнает куда копать в данном случае.
Видно тут
class WorldRunnable : public ACE_Based::Runnable
{
public:
void run();
};
компилятор,скорее всего, оталкиваеться на путь паблик,т.к он связан с Threading.h. Это предположение,нет возможности проверить
Vladimir
22.11.2010, 00:34
.h включен только в 2 файла: mangosd\WorldRunnable.cpp и mangosd\Master.cpp
И там он включен после Common.h и Common.h включает его.
Конечно это не нормально и я поправил в [10771]. Спасибо за внимательность ;)
Еще точно также в CliRunnable.h
Vladimir
22.11.2010, 12:17
Поправил в [10777]. Спасибо.
Продолжаем копание. )
\src\shared\Database\QueryResult.h
По идее перед самим QueryResult надо-бы
#include "Database/Field.h"
Или я неправ?
Также заодно там же к одному стилю наверно надо бы привести вот это
#if !defined(QUERYRESULT_H)
#define QUERYRESULT_H
Vladimir
27.11.2010, 22:01
В [10787] поправил. Спасибо :)
vBulletin® v3.8.4, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot