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

#ifndef TN_MAP_DATA_REQUEST_H
#define TN_MAP_DATA_REQUEST_H

#include <iosfwd>

#include <foundation/TnTypes.h>
#include <RenderEngine/ITnMapEngine.h>
#include <foundation/Math/Matrix.hpp>

enum eTnMapRequestResult
{
    eTnMapRequestResult_Pending,
    eTnMapRequestResult_Complete,
    eTnMapRequestResult_Fail,
    eTnMapRequestResult_Timeout = eTnMapRequestResult_Fail,
    eTnMapRequestResult_NotFound
};

/*! This is the base class for all Proxy data types. */

class TnMapDataRequest
{
public:


    virtual ~TnMapDataRequest();

    // This may eventually have a default implementation.
    virtual void SetRequestResult(eTnMapRequestResult result) = 0;
    
protected:
    TnMapDataRequest();
    
private:
    TnMapDataRequest(TnMapDataRequest const &);                 // not defined
    TnMapDataRequest& operator=(TnMapDataRequest const &);      // not defined
};

std::ostream & operator<<(std::ostream &, eTnMapRequestResult);

#endif

