00001 #ifndef COLLECTION_H
00002 #define COLLECTION_H
00003
00004
00005
00006 class CollectionI {
00007 public:
00008
00009
00010 #ifdef ILP32
00011 typedef int ci_index_t;
00012 typedef int ci_value_t;
00013 #elif LP64
00014 typedef long ci_index_t;
00015 typedef long ci_value_t;
00016 #elif LLP64
00017 typedef long long ci_index_t;
00018 typedef long long ci_value_t;
00019 #endif
00020
00021
00022 virtual ci_index_t docall GetNullIndex( ) = 0;
00023 virtual ci_index_t docall GetNullValue( ) = 0;
00024
00025
00026 virtual ci_index_t docall Next( ci_index_t prv ) = 0;
00027 virtual ci_index_t docall Prev( ci_index_t prv ) = 0;
00028
00029
00030 virtual ci_value_t docall Get( ci_index_t ix ) = 0;
00031 virtual bool docall Set( ci_index_t ix, ci_value_t val ) = 0;
00032
00033
00034 virtual int docall GetElemType( ) = 0;
00035 };
00036
00037 #endif // COLLECTION_H
00038