/*
 *  ITnMapLandmarkProxy.h
 *  GLMap
 *
 *  Created by jianhuang on 7/28/10.
 *  Copyright 2010 TeleNav. All rights reserved.
 *
 */


#ifndef ITN_MAP_LANDMARK_PROXY_H
#define ITN_MAP_LANDMARK_PROXY_H

#include "foundation/SharedPtr.h"

#include "TnMapLandmarkData.h"



/*! Client implements this. This is how they are informed about
 *  requests for map data from the engine. */


class ITnMapLandmarkProxy
{
protected:
    
    virtual ~ITnMapLandmarkProxy() = 0;
    
public:
    
    typedef Tn::Foundation::shared_ptr<ITnMapLandmarkProxy> ptr;
    
    /*! Engine calls this to request tile traffic data. The client should
     *  store the weak pointer and return immediately. When the traffic
     *  data is available, the client should cast the
     *  TnMapTrafficDataWeakPtr to TnMapTrafficDataPtr, check for validity,
     *  and pass in the traffic data.
     */
    
    virtual void RequestTile(TnMapLandmarkData::ptr const & data) = 0;
    virtual void CancelRequest(TnMapLandmarkData::ptr const & data) = 0;
};

#endif
