PEPPHER Composition Tool Prototype - Scalar

template <typename T>
class Scalar : public IContainer<T>
{

//-- Methods related to StarPU memory management and implementation of the IContainer interface --//
   
    void acquireRead() const;
    
    void acquireReadWrite();
    
    void release_acquire();
    
    T* getRawType();
    
    starpu_data_handle_t registerWithStarPU();
    
    void unregisterWithStarPU(bool update=true);

    void flush();

//-- Constructors & Destructor --//

    Scalar(T* pValue, bool deallocMemory = false, ContainerBehavior _behav= NORMAL_CONTAINER);

    Scalar(const Scalar<T>& sp);

    virtual ~Scalar();    

//-- Operators --//

    T& operator* ();

    T* operator-> ();
    
    Scalar<T>& operator = (const Scalar<T>& vp);
};