Urbi SDK Remote for C++  2.7.5
customuvar.hxx
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2010-2012, Gostai S.A.S.
00003  *
00004  * This software is provided "as is" without warranty of any kind,
00005  * either expressed or implied, including but not limited to the
00006  * implied warranties of fitness for a particular purpose.
00007  *
00008  * See the LICENSE file for more information.
00009  */
00010 
00011 #ifndef URBI_CUSTOMUVAR_HXX
00012 # define URBI_CUSTOMUVAR_HXX
00013 
00014 namespace urbi
00015 {
00016   template<typename T>
00017   CustomUVar<T>::CustomUVar()
00018   {
00019   }
00020 
00021   template<typename T>
00022   CustomUVar<T>::CustomUVar(const std::string& name, impl::UContextImpl* impl)
00023   : UVar(name, impl)
00024   {}
00025 
00026   template<typename T>
00027   CustomUVar<T>::CustomUVar(const std::string& a, const std::string& b,
00028                             impl::UContextImpl* c)
00029   : UVar(a, b, c)
00030   {}
00031 
00032   template<typename T>
00033   CustomUVar<T>::CustomUVar(UObject& a, const std::string& b,
00034                             impl::UContextImpl* c)
00035   : UVar(a, b, c)
00036   {}
00037 
00038   template<typename T>
00039   T& CustomUVar<T>::data()
00040   {
00041     return data_;
00042   }
00043 
00044   template<typename T>
00045   T& CustomUVar<T>::data(UVar& v)
00046   {
00047     return static_cast<CustomUVar<T>&>(v).data();
00048   }
00049 
00050   template<typename T> void
00051   CustomUVar<T>::updateCache(UVar& v)
00052   {
00053     v.fill(static_cast<CustomUVar<T>&>(v).data());
00054   }
00055 
00056   template<typename T>
00057   template<typename U>
00058   void CustomUVar<T>::operator = (U v)
00059   {
00060     this->UVar::operator = (v);
00061   }
00062 }
00063 
00064 #endif