Files
azerothcore-wotlk/src/game/Misc/AsyncAuctionListing.h
Yehonal 469502581d Fixed compilation without PCH enabled
please avoid to miss header files in your sources
2016-08-19 23:32:46 +02:00

70 lines
2.6 KiB
C++

#ifndef __ASYNCAUCTIONLISTING_H
#define __ASYNCAUCTIONLISTING_H
#include "Common.h"
#include "EventProcessor.h"
#include "WorldPacket.h"
class AuctionListOwnerItemsDelayEvent : public BasicEvent
{
public:
AuctionListOwnerItemsDelayEvent(WorldPacket& d, uint64 guid, bool o) : data(d), playerguid(guid), owner(o) {}
virtual ~AuctionListOwnerItemsDelayEvent() {}
virtual bool Execute(uint64 e_time, uint32 p_time);
virtual void Abort(uint64 e_time) {}
private:
WorldPacket data;
uint64 playerguid;
bool owner;
};
class AuctionListItemsDelayEvent
{
public:
AuctionListItemsDelayEvent(uint32 msTimer, uint64 playerguid, uint64 creatureguid, std::string searchedname, uint32 listfrom, uint8 levelmin, uint8 levelmax, uint8 usable, uint32 auctionSlotID, uint32 auctionMainCategory, uint32 auctionSubCategory, uint32 quality, uint8 getAll) :
_msTimer(msTimer), _playerguid(playerguid), _creatureguid(creatureguid), _searchedname(searchedname), _listfrom(listfrom), _levelmin(levelmin), _levelmax(levelmax), _usable(usable), _auctionSlotID(auctionSlotID), _auctionMainCategory(auctionMainCategory), _auctionSubCategory(auctionSubCategory), _quality(quality), _getAll(getAll) { }
bool Execute();
uint32 _msTimer;
uint64 _playerguid;
uint64 _creatureguid;
std::string _searchedname;
uint32 _listfrom;
uint8 _levelmin;
uint8 _levelmax;
uint8 _usable;
uint32 _auctionSlotID;
uint32 _auctionMainCategory;
uint32 _auctionSubCategory;
uint32 _quality;
uint8 _getAll;
};
class AsyncAuctionListingMgr
{
public:
static void Update(uint32 diff) { auctionListingDiff += diff; }
static uint32 GetDiff() { return auctionListingDiff; }
static void ResetDiff() { auctionListingDiff = 0; }
static bool IsAuctionListingAllowed() { return auctionListingAllowed; }
static void SetAuctionListingAllowed(bool a) { auctionListingAllowed = a; }
static std::list<AuctionListItemsDelayEvent> & GetList() { return auctionListingList; }
static std::list<AuctionListItemsDelayEvent> & GetTempList() { return auctionListingListTemp; }
static ACE_Thread_Mutex& GetLock() { return auctionListingLock; }
static ACE_Thread_Mutex& GetTempLock() { return auctionListingTempLock; }
private:
static uint32 auctionListingDiff;
static bool auctionListingAllowed;
static std::list<AuctionListItemsDelayEvent> auctionListingList;
static std::list<AuctionListItemsDelayEvent> auctionListingListTemp;
static ACE_Thread_Mutex auctionListingLock;
static ACE_Thread_Mutex auctionListingTempLock;
};
#endif