目录

include/AK/Wwise/SourceControl/SourceControlContainers.h

Go to the documentation of this file.
00001 
00002 //
00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved
00004 //
00006 
00009 
00010 #ifndef _AK_WWISE_SOURCECONTROLCONTAINERS_H
00011 #define _AK_WWISE_SOURCECONTROLCONTAINERS_H
00012 
00013 // Audiokinetic namespace
00014 namespace AK
00015 {
00016     // Audiokinetic Wwise namespace
00017     namespace Wwise
00018     {
00019         namespace SourceControlContainers
00020         {
00022             struct __AkPos{};
00024             typedef __AkPos* AkPos;
00025 
00026             // IAkList
00035             template <class Type, class Arg_Type = const Type&>
00036             class IAkList
00037             {
00038             public:
00039                 virtual unsigned int GetCount() const = 0;
00040                 virtual unsigned int GetSize() const = 0;
00041                 virtual bool IsEmpty() const = 0;
00042 
00043                 virtual AkPos AddHead( Arg_Type in_newElement ) = 0;
00044                 virtual AkPos AddTail( Arg_Type in_newElement ) = 0;
00045 
00046                 virtual void RemoveHead() = 0;
00047                 virtual void RemoveTail() = 0;
00048                 virtual void RemoveAt( AkPos in_position ) = 0;
00049                 virtual void RemoveAll() = 0;
00050 
00051                 virtual Type& GetHead() = 0;
00052                 virtual const Type& GetHead() const = 0;
00053                 virtual Type& GetTail() = 0;
00054                 virtual const Type& GetTail() const = 0;
00055                 virtual AkPos GetHeadPosition() const = 0;
00056                 virtual AkPos GetTailPosition() const = 0;
00057                 virtual Type& GetNext( AkPos& in_rPosition ) = 0;
00058                 virtual const Type& GetNext( AkPos& in_rPosition ) const = 0;
00059                 virtual Type& GetPrev( AkPos& in_rPosition ) = 0;
00060                 virtual const Type& GetPrev( AkPos& in_rPosition ) const = 0;
00061                 virtual Type& GetAt( AkPos in_position ) = 0;
00062                 virtual const Type& GetAt( AkPos in_position ) const = 0;
00063 
00064                 virtual void SetAt( AkPos in_pos, Arg_Type in_newElement ) = 0;
00065                 virtual AkPos InsertBefore( AkPos in_position, Arg_Type in_newElement ) = 0;
00066                 virtual AkPos InsertAfter( AkPos in_position, Arg_Type in_newElement ) = 0;
00067             };
00068 
00069             // IAkMap
00080             template <class Key, class Arg_Key, class Value, class Arg_Value>
00081             class IAkMap
00082             {
00083             public:
00084                 virtual unsigned int GetCount() const = 0;
00085                 virtual unsigned int GetSize() const = 0;
00086                 virtual bool IsEmpty() const = 0;
00087 
00088                 virtual bool Lookup( Arg_Key in_key, Value& in_rValue ) const = 0;
00089 
00090                 virtual Value& operator[]( Arg_Key in_key ) = 0;
00091                 virtual void SetAt( Arg_Key in_key, Arg_Value in_newValue ) = 0;
00092 
00093                 virtual bool RemoveKey( Arg_Key in_key ) = 0;
00094                 virtual void RemoveAll() = 0;
00095 
00096                 virtual AkPos GetStartPosition() const = 0;
00097                 virtual void GetNextAssoc( AkPos& in_rNextPosition, Key& in_rKey, Value& in_rValue ) const = 0;
00098             };      
00099         };
00100     }
00101 }
00102 
00103 #endif // _AK_WWISE_SOURCECONTROLCONTAINERS_H