This is an old revision of the document!
The C++ API contains the TrackAPI, which is useful for tracking applications. There isn't a lot of functionality, and the API is minimal in order to accomplish base tasks. It is possible that this API is extended in the future (e.g. later than mid-2015).
The API allows an application to list tracks, trackers (more is needed), and track positions. Using the StorageServer object, the application requests an instance of the TrackAPI.
class ITrackApi { public:
virtual ~ITrackApi(void) {}
// Downloads GPS positions from the server according to the // following arguments: // // serial - The serial number of the GPS device // start - The time of the first GPS position // end - The time of the last GPS position // allFields - Flag controlling which fields are retrieved. // true: Retrieves all fields listed in the GpsPos class // false: Retrieves only time, latitude and longitude // cb - The function called for each downloaded position // clientp - A pointer to client data passed to the callback function. virtual AccessError download(const std::string& serial, int start, int end, bool allFields, PositionCallback cb, void *clientp) = 0;
// Uploads GPS positions to the server according to the // following arguments: // // serial - The serial number of the GPS device // count - The number of GPS positions // points - An array of GPS positions // uploaded - The number of points that were successfully uploaded. // This value will only be less than than the number of points // passed in if an error occurs. virtual AccessError upload(const std::string& serial, int count, GpsPos* points, int* uploaded) = 0;
// Retrieves the list of tracks from the server according to // the following arguments: // // serial - The serial number of the device that created the track. // Use the #define ALL_DEVICES to download tracks from all devices. // project - The handle of the project containing the tracks. // Use the #define ALL_PROJECTS to download tracks from all projects. // tracks - The list the retrieved tracks will be added to. virtual AccessError getTracks(const std::string& serial, int project, TrackList& tracks) = 0;
// Moves a track to a project. // // track - The handle of the track to move. // project - The handle of the destination project. // result - A pointer to a track instance to store the result. // If the argument is null, no track is returned. virtual AccessError moveTrack(int track, int project, Track* result) = 0;
// Deletes a track from the server. // // handle - The handle of the track to be deleted. virtual AccessError deleteTrack(int handle) = 0;
// Returns the list of device serial numbers the server knows about // for the customer. These include devices that are explicitly assigned // to the customer and devices that have uploaded data. // // serials - The list the retrieved serial numbers will be added to. virtual AccessError getSerialNumbers(SerialList& serials) = 0;
protected:
ITrackApi(void) {}
private:
ITrackApi(const ITrackApi& api); ITrackApi& operator=(const ITrackApi& api);
};