/*
 *  TnMapTrafficData.h
 *  OpenGL Map Engine
 *
 *  Created by Thant on 4/7/2010
 *  Copyright 2010 TeleNav Inc. All rights reserved.
 *
 */

#ifndef TN_MAP_TRAFFIC_DATA_H
#define TN_MAP_TRAFFIC_DATA_H

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

#include <RenderEngine/TnMapAnnotationData.h>

/*! Engine implements this and passes an instance to the client as an
 *  argument to the asynchronous request. The client populates the
 *  data and calls the appropriate method to complete the response. */


class TnMapTrafficData : public TnMapAnnotationData
{
public:

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


  virtual void NewTrafficFlow(const std::string & trafficId, const std::string & condition) = 0;
    
  virtual void ClearAnnotationLayer(eTnMapLayer layer) = 0;

protected:
    TnMapTrafficData(bool lowDetail);
};

#endif
