//===========================================================================// // File: storage.hpp // Project: LabRat // Contents: //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 03/20/96 JSE Initial coding. //---------------------------------------------------------------------------// // Copyright (C) 1996, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined (STORAGE_HPP) # define STORAGE_HPP #include "memory.h" # if !defined (STYLE_HPP) # include "style.hpp" # endif class TraceStorage; #include "LabRat.h" #include "resource.h" #include "traceline.hpp" #include "LabRatDoc.h" //########################################################################## //####################### TraceStorage //########################################################################## class TraceStorage { private: Time traceTime; Byte selectionColor; // 0 is not selected and 1-254 is pallette color public: TraceStorage() { traceTime = 0.0f; selectionColor = 0; } TraceStorage(Time time) { traceTime = time; } virtual ~TraceStorage() {;} TraceStorage * GetAddress() { return this; } void SetTraceTime(Time time) { traceTime = time; } void SetSelection(Byte color) { selectionColor = color; } void ClearSelection(void) { selectionColor = 0; } Time GetTraceTime(void) { return traceTime; } virtual void LoadData(CArchive& ar, CObarrayHolder *data_holder, BYTE edge_flag); static TraceStorage * FindElement(CObarrayHolder *data_holder, int element); static TraceLine * CreateTraceLine(int trace_type); static void AllocateStorage(CObarrayHolder *data_holder); }; //########################################################################## //####################### ToggleTraceStorage //########################################################################## class ToggleTraceStorage : public TraceStorage { private: Logical position; public: ToggleTraceStorage(): TraceStorage() {position = 0;} ToggleTraceStorage(Scalar time, Logical value): TraceStorage(time) {position = value;} void SetPosition(Logical value) {position = value;} Logical GetPosition(void) {return position;} void LoadData( CArchive& ar, CObarrayHolder *data_holder, BYTE edge_flag); }; //########################################################################## //####################### MarkerTraceStorage //########################################################################## class MarkerTraceStorage : public TraceStorage { }; //########################################################################## //####################### IntegerTraceStorage //########################################################################## class IntegerTraceStorage : public TraceStorage { private: int position; public: IntegerTraceStorage(): TraceStorage() {position = 0;} IntegerTraceStorage(Scalar time, int value): TraceStorage(time) {position = value;} void SetPosition(int value) {position = value;} int GetPosition(void) {return position;} void LoadData( CArchive& ar, CObarrayHolder *data_holder, BYTE edge_flag); }; //########################################################################## //####################### ScalarTraceStorage //########################################################################## class ScalarTraceStorage : public TraceStorage { private: Scalar position; public: ScalarTraceStorage(): TraceStorage() {position = (float)0.0f;} ScalarTraceStorage(Scalar time, Scalar value): TraceStorage(time) {position = value;} void SetPosition(Scalar value) {position = value;} Scalar GetPosition(void) {return position;} void LoadData( CArchive& ar, CObarrayHolder *data_holder, BYTE edge_flag); }; //########################################################################## //####################### ReceiverMessageTraceStorage //########################################################################## class ReceiverMessageTraceStorage : public ScalarTraceStorage { public: enum { messageQue = 1, messageDispatch = 2 }; Logical edgeFlag; int messagePriority, classID, messageID; void LoadData( CArchive& ar, CObarrayHolder *data_holder, BYTE edge_flag); }; #endif