index 40ef09ab838b9c21b5860549acfddedd9e680b3a..9f061dc412224be3e1236b94191afb3b54ee5faa 100644 (file)
--- a/alien.h
+++ b/alien.h
#include <oberon.h>
#include <store.h>
+#include <visitor.h>
#include <iostream>
#include <vector>
+#include <string>
namespace odc {
*/
struct AlienComponent {
virtual std::string toString() = 0;
+ virtual void accept(Visitor &visitor) const = 0;
};
/**
AlienPiece(const char * const data, const size_t len);
virtual std::string toString();
+ virtual void accept(Visitor &visitor) const;
};
/**
* Store component of an alien store
*/
struct AlienPart : public AlienComponent {
- Store * const store;
+ Store * const d_store;
- AlienPart(Store * const _store);
+ AlienPart(Store * const store);
virtual std::string toString();
+ virtual void accept(Visitor &visitor) const;
};
class Alien : public Store {
- SHORTCHAR **d_path;
+ const TypePath d_path;
std::vector<AlienComponent*> d_comps;
public:
- Alien(INTEGER id, SHORTCHAR **path);
+ Alien(INTEGER id, const TypePath &path);
std::vector<AlienComponent*> & getComponents();
// comps-: AlienComp (** the constituent components of this alien store **)
virtual std::string toString();
+ virtual void accept(Visitor &visitor) const;
};
}