PDA

Просмотр полной версии : Класс Thread в Мангосе.


alien
20.11.2010, 18:12
Решил тут поизучать как организованны потоки в мангосе и как там используется 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. Но почему там нету инклуда и как компилятор узнает куда копать в данном случае.

Inn04ka
21.11.2010, 22:18
Мне кажеться,что компилятор присваивает путь,а они взаимосвязаны,поэтому при раскопке виден данный код

alien
21.11.2010, 22:20
Мне кажеться,что компилятор присваивает путь,а они взаимосвязаны,поэтому при раскопке виден данный код
Я что-то ничего не понял из данного поста )

Inn04ka
22.11.2010, 00:22
Решил тут поизучать как организованны потоки в мангосе и как там используется 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]. Спасибо за внимательность ;)

alien
22.11.2010, 06:43
Еще точно также в CliRunnable.h

Vladimir
22.11.2010, 12:17
Поправил в [10777]. Спасибо.

alien
26.11.2010, 23:22
Продолжаем копание. )
\src\shared\Database\QueryResult.h
По идее перед самим QueryResult надо-бы
#include "Database/Field.h"
Или я неправ?
Также заодно там же к одному стилю наверно надо бы привести вот это
#if !defined(QUERYRESULT_H)
#define QUERYRESULT_H

Vladimir
27.11.2010, 22:01
В [10787] поправил. Спасибо :)