disDescriptor.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00008 
00009 #ifndef disDescriptor_H_
00010 #define disDescriptor_H_
00011 
00012 #if DtDIS
00013 
00014 #include "lgrSim.h"
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "virtualConstructor.h"
00017 #include "multiKeyMap.h"
00018 
00019 namespace MAKLogger
00020 {
00021 
00022 
00023    struct DtGenDisDesc
00024    {
00025       int size;
00026       int numPduKinds;
00027       int bufPduKindSz;
00028    };
00029 
00030    struct DtPduKindDesc
00031    {
00032       int size;
00033       DtU32 kind;
00034       bool filtered;
00035       int enIdOff;
00036       int typeOff;
00037       char name[4];
00038    };
00039 
00040 
00041    struct DtPduSubsMap
00042    {
00043       int size;
00044       int pduSubsOnNum;
00045       int pduSubsOnPos;
00046       int pduSubsOffNum;
00047       int pduSubsOffPos;
00048    };
00049 
00050    class DtPduDescriptor;
00051 
00055    class DT_DLL_LGRSIM DtDisDescriptor
00056    {
00057    public:
00058       typedef DtU32 PduKind;
00059       typedef DtMultiKeyMap<PduKind,DtString,DtPduDescriptor*> PduDescriptorMap;
00060       typedef PduDescriptorMap::iterator iterator;
00061       typedef PduDescriptorMap::const_iterator const_iterator;
00062 
00063    public:
00064 
00066       DT_VIRTUAL_CTR(DtDisDescriptor,())
00067 
00068       
00069       DT_VIRTUAL_COPY_ASSIGN(DtDisDescriptor)
00070 
00072       virtual ~DtDisDescriptor();
00073 
00074 
00077       void addPduDesc(const DtPduDescriptor& desc);
00078 
00080       virtual DtPduDescriptor* addPduKind(const DtString& name, PduKind kind,
00081          int enIdOff, int typeOff );
00082 
00084       virtual int setFromSerialForm( const void* p );
00085 
00087       virtual char* serialize( int* pSize = 0 ) const;
00088 
00090 
00091       virtual DtPduDescriptor* pduDesc( PduKind kind );
00092       virtual const DtPduDescriptor* pduDesc( PduKind kind ) const;
00094 
00096 
00097 
00098 
00099 
00100       virtual DtPduDescriptor* pduDesc( const DtString& name );
00101       virtual const DtPduDescriptor* pduDesc( const DtString& name ) const;
00103 
00105       int count() const;
00106 
00108 
00109 
00110 
00111       iterator begin();
00112       const_iterator begin() const;
00114 
00116 
00117 
00118 
00119       iterator end();
00120       const_iterator end() const;
00122 
00124       virtual bool equivalent( const DtDisDescriptor& rhs ) const;
00125 
00127       virtual void setFilterByPduKind( const DtPduSubsMap* map );
00128       virtual void setFilterAllPduKinds();
00129       virtual void setFilterNoPduKinds();
00130 
00132       virtual void clear();
00133 
00136       void registerAlias(const DtString& alias,PduKind kind);
00137 
00139       void unregisterAlias(const DtString& alias);
00140 
00141    public:
00142       static void addKnownPdus( DtDisDescriptor* dsc );
00143 
00144    protected:
00145 
00148       virtual int  unserialize( const char* bfr );
00149 
00151       virtual void initFromSource( const DtDisDescriptor& src );
00152 
00153    protected:
00154 
00155       PduDescriptorMap myPdus;
00156 
00157       typedef std::map<DtString,PduKind> AliasMap;
00158       AliasMap myAliases;
00159    };
00160 
00161 }
00162 
00163 #endif   //! !DtHLA
00164 #endif   //! DtDisDescriptor_H_

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)