00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IMPEXAMPLE_EXAMPLE_REF_COUNTED_H
00009 #define IMPEXAMPLE_EXAMPLE_REF_COUNTED_H
00010
00011 #include "example_config.h"
00012
00013 #include <IMP/RefCounted.h>
00014
00015 IMPEXAMPLE_BEGIN_NAMESPACE
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 class IMPEXAMPLEEXPORT ExampleRefCounted: public RefCounted
00026 {
00027 std::vector<double> data_;
00028 public:
00029 ExampleRefCounted(const std::vector<double> &data);
00030
00031 double get_data(unsigned int i) const {
00032 IMP_USAGE_CHECK(i < data_.size(), "Index " << i
00033 << " out of range.");
00034 return data_[i];
00035 }
00036
00037
00038
00039
00040
00041
00042 IMP_REF_COUNTED_DESTRUCTOR(ExampleRefCounted);
00043 };
00044
00045
00046 IMPEXAMPLE_END_NAMESPACE
00047
00048 #endif