28 #ifndef EXTERNALCONFIG_H
29 #define EXTERNALCONFIG_H
40 template<
typename>
class ConfigFunctionCall;
48 typedef typename GC::CORE_CONFIG CC;
49 typedef typename CC::PARAM_CONFIG P;
50 typedef typename CC::ATOM_TYPE T;
51 enum { BPA = P::BITS_PER_ATOM };
60 ExternalConfig(Grid<GC>& grid);
62 void SetByteSource(ByteSource & byteSource,
const char * label) ;
64 void SetErrorByteSink(ByteSink & errorsTo) ;
78 void Write(ByteSink & byteSink);
80 void RegisterFunction(ConfigFunctionCall<GC> & fc) ;
82 bool RegisterElement(
const UUID & uuid, OString16 & nick) ;
84 Element<CC> * LookupElement(
const OString16 & nick)
const ;
86 bool PlaceAtom(
const Element<CC> & elt, s32 x, s32 y,
const char* dataStr) ;
88 bool PlaceAtom(
const Element<CC> & elt, s32 x, s32 y,
const BitVector<BPA> & bv) ;
90 void SetTileToExecuteOnly(
const SPoint& tileLoc,
bool value);
92 LineCountingByteSource & GetByteSource()
98 LineCountingByteSource m_in;
99 ByteSink * m_errorsTo;
109 ElementRegistry<CC>& m_elementRegistry;
111 #define MAX_REGISTERED_FUNCTIONS 64
112 ConfigFunctionCall<GC> * (m_registeredFunctions[MAX_REGISTERED_FUNCTIONS]);
113 u32 m_registeredFunctionCount;
115 #define MAX_REGISTERED_ELEMENTS 64
119 Element<CC> * m_element;
120 } m_registeredElements[MAX_REGISTERED_ELEMENTS];
121 u32 m_registeredElementCount;
127 #include "ExternalConfig.tcc"
bool Read()
Definition: ExternalConfig.tcc:35
void Write(ByteSink &byteSink)
Definition: ExternalConfig.tcc:83