/*
 *  ITnProtoBufTrafficDataProxy.h
 *
 *  Created by Thant on July 15, 2013.
 *  Copyright 2013 TeleNav. All rights reserved.
 *
 */

#ifndef ITN_TRAFFIC_PROTOBUF_PROXY_H
#define ITN_TRAFFIC_PROTOBUF_PROXY_H

#include <foundation/SharedPtr.h>
#include <foundation/WeakPtr.h>

#include <NavProtocol/map.traffic.pb.h>

#include <RenderEngine/TnMapTrafficData.h>
#include <GenericProxy/ITnTrafficProtoBufData.h>

class ITnTrafficProtoBufProxy
{
public:

    typedef Tn::Foundation::shared_ptr<ITnTrafficProtoBufProxy> ptr;
    typedef Tn::Foundation::weak_ptr<ITnTrafficProtoBufProxy> wptr;

    virtual ~ITnTrafficProtoBufProxy() = 0;

    virtual bool PrefetchSupported() const = 0;
    virtual void RequestTilePrefetch(TnMapTileId const & id) = 0;

    virtual void RequestTile(ITnTrafficProtoBufData::ptr const & data) = 0;

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

#endif // ITN_TRAFFIC_PROTOBUF_PROXY_H

