/*
 *  ITnMapTileRouteProxy.h
 *  OpenGL Map Engine
 *
 *  Created by Thant on 3/7/2012
 *  Copyright 2012 TeleNav Inc. All rights reserved.
 *
 */

#ifndef ITN_MAP_TILE_ROUTE_PROXY_H
#define ITN_MAP_TILE_ROUTE_PROXY_H

#include <foundation/SharedPtr.h>

#include "TnMapTileRouteData.h"


class ITnMapTileRouteProxy
{
protected:

    virtual ~ITnMapTileRouteProxy() = 0;

public:
    
    typedef Tn::Foundation::shared_ptr<ITnMapTileRouteProxy> ptr;

    /*! Engine calls this to request tile edge data. The client should
     *  store the weak pointer and return immediately. When the edge
     *  data is available, the client should cast the
     *  TnMapTileRouteData::wptr to TnMapTileRouteData::ptr, check for validity,
     *  and pass in the edge data.
     */

    virtual void RequestTile(TnMapTileRouteData::ptr const & data) = 0;
    virtual void CancelRequest(TnMapTileRouteData::ptr const & data) = 0;
};

#endif
