00001
00002
00003 #ifndef _BCP_INDEXED_PRICING_H
00004 #define _BCP_INDEXED_PRICING_H
00005
00006 #if 0
00007 #include "BCP_enum.hpp"
00008 #include "BCP_vector.hpp"
00009
00010 class BCP_buffer;
00011
00012 class BCP_indexed_pricing_list {
00013 private:
00014 inline void clean() { _del_pos.clear(); _indices.clear(); }
00015 private:
00016 BCP_pricing_status _pr_status;
00017 BCP_storage_t _storage;
00018 BCP_vec<int> _del_pos;
00019 BCP_vec<int> _indices;
00020 public:
00021 BCP_indexed_pricing_list() :
00022 _pr_status(BCP_PriceNothing), _storage(BCP_Storage_Explicit),
00023 _del_pos(), _indices() {}
00024 ~BCP_indexed_pricing_list() {}
00025
00026
00027
00028 inline BCP_pricing_status get_status() const { return _pr_status; }
00029 inline BCP_storage_t get_storage() const{ return _storage; }
00030 inline const BCP_vec<int>& get_indices() const { return _indices; }
00031
00032 inline void empty(const BCP_storage_t storage) {
00033 clean();
00034 _storage = storage;
00035 }
00036
00037 inline void set_status(BCP_pricing_status new_stat) {
00038 _pr_status = new_stat; }
00039 inline void set_indices(BCP_vec<int>& new_indices) {
00040 _indices.swap(new_indices); }
00041
00042 void swap(BCP_indexed_pricing_list& x);
00043 void update(const BCP_indexed_pricing_list& change);
00044 BCP_indexed_pricing_list*
00045 as_change(const BCP_indexed_pricing_list& old_list) const;
00046
00047 int pack_size() const;
00048 void pack(BCP_buffer& buf) const;
00049 void unpack(BCP_buffer& buf);
00050 };
00051 #endif
00052
00053 #endif