item.h (navit-0.5.5) | : | item.h (navit-0.5.6) | ||
---|---|---|---|---|
skipping to change at line 97 | skipping to change at line 97 | |||
struct item_id { | struct item_id { | |||
int id_hi; | int id_hi; | |||
int id_lo; | int id_lo; | |||
}; | }; | |||
#define ITEM_ID_FMT "(0x%x,0x%x)" | #define ITEM_ID_FMT "(0x%x,0x%x)" | |||
#define ITEM_ID_ARGS(x) (x).id_hi,(x).id_lo | #define ITEM_ID_ARGS(x) (x).id_hi,(x).id_lo | |||
/** | /** | |||
* Represents an object on a map, such as a POI, a building, a way or a boundary | * @brief Represents an object on a map. | |||
. | * | |||
* An item holds the data for an individual item on a map, including its coordin | ||||
ates and various attributes. The item | ||||
* type specifies what the map item refers to, such as a POI, a building, a way | ||||
or a boundary. There are also special | ||||
* item types used internally, such as the various kinds of turn instructions. I | ||||
tem types are internally represented as | ||||
* numbers. | ||||
* | ||||
* Outside map implementations, items are generally retrieved from map rectangle | ||||
s, and their methods are implemented by | ||||
* the respective map driver. Items retrieved from a map rectangle are generally | ||||
short-lived: a previously retrieved | ||||
* item should be considered invalid when a new item is retrieved from the same | ||||
map rectangle, or after its map | ||||
* rectangle has been destroyed. After that, functions may segfault or return in | ||||
valid data, and even the item itself | ||||
* may have been deallocated. | ||||
* | ||||
* Actual behavior may differ between map implementations, but do not rely on an | ||||
y behavior not covered by the above | ||||
* interface contract. Exceptions apply, of course, for code that is limited to | ||||
working with items from one particular | ||||
* map (typically inside a map implementation). | ||||
*/ | */ | |||
struct item { | struct item { | |||
enum item_type type; /**< Type of the item.*/ | enum item_type type; /**< Type of the item.*/ | |||
int id_hi; /**< First part of the ID of the item (item IDs have two parts). */ | int id_hi; /**< First part of the ID of the item (item IDs have two parts). */ | |||
int id_lo; /**< Second part of the ID of the item.*/ | int id_lo; /**< Second part of the ID of the item.*/ | |||
struct map *map; /**< The map this items belongs to.*/ | struct map *map; /**< The map this items belongs to.*/ | |||
struct item_methods *meth; /**< Methods to manipulate this item.*/ | struct item_methods *meth; /**< Methods to manipulate this item.*/ | |||
void *priv_data; /**< Private item data, only used by the map plugin which s upplied this item.*/ | void *priv_data; /**< Private item data, only used by the map plugin which s upplied this item.*/ | |||
}; | }; | |||
extern struct item_range { | extern struct item_range { | |||
enum item_type min,max; | enum item_type min,max; | |||
} item_range_all; | } item_range_all; | |||
/** | ||||
* @brief An item indicating that the map driver is busy fetching more items. | ||||
* | ||||
* This is a “magic” item which may be returned by one of the query methods of a | ||||
map driver. Receiving this item means | ||||
* that the map driver is currently busy fetching more items, and they can be re | ||||
trieved at a later point in time. | ||||
*/ | ||||
extern struct item busy_item; | extern struct item busy_item; | |||
/* prototypes */ | /* prototypes */ | |||
enum attr_type; | enum attr_type; | |||
enum change_mode; | enum change_mode; | |||
enum item_type; | enum item_type; | |||
enum projection; | enum projection; | |||
struct attr; | struct attr; | |||
struct coord; | struct coord; | |||
struct item; | struct item; | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 33 lines changed or added |