17 #ifndef I_COMMON_RECORD_HPP_ 
   18 #define I_COMMON_RECORD_HPP_ 
   22 #ifdef KAA_USE_CONFIGURATION 
   27 #include <boost/uuid/uuid.hpp> 
   32 typedef boost::uuids::uuid uuid_t;
 
   37 template<
class Container>
 
   38 class ICommonRecordBase: 
public ISchemaDependent, 
public ICommonValue {
 
   40     typedef Container                       container_type;
 
   41     typedef typename Container::mapped_type fields_type;
 
   42     typedef typename Container::key_type    keys_type;
 
   45     virtual ~ICommonRecordBase() {}
 
   50     virtual void                    setUuid(uuid_t uuid) = 0;
 
   55     virtual uuid_t                  getUuid() = 0;
 
   63     virtual bool                    hasField    (
const keys_type &field_name) 
const = 0;
 
   71     virtual fields_type             getField    (
const keys_type &field_name) 
const = 0;
 
   78     virtual void                    setField    (
const keys_type &field_name, fields_type value) = 0;
 
   85     virtual void                    removeField (
const keys_type &field_name) = 0;
 
   90     virtual const container_type &  getFields   () 
const = 0;
 
   93 typedef ICommonRecordBase<std::map<std::string, std::shared_ptr<ICommonValue> > > ICommonRecord;