ipersistent.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // Project     : SDK Core
00003 // Version     : 1.0
00004 //
00005 // Category    : SDK Core Interfaces
00006 // Filename    : ipersistent.h
00007 // Created by  : Steinberg, 09/2004
00008 // Modified    : $Date: 2007/11/28 17:31:13 $
00009 // Description : Plug-In Storage Interfaces
00010 //
00011 //-----------------------------------------------------------------------------
00012 // LICENSE
00013 // © 2007, Steinberg Media Technologies GmbH, All Rights Reserved
00014 //-----------------------------------------------------------------------------
00015 // This Software Development Kit may not be distributed in parts or its entirety  
00016 // without prior written agreement by Steinberg Media Technologies GmbH. 
00017 // This SDK must not be used to re-engineer or manipulate any technology used  
00018 // in any Steinberg or Third-party application or software module, 
00019 // unless permitted by law. It may only be used for development of products 
00020 // defined in the license agreement between Steinberg and Licensee or for internal, 
00021 // not publicly released products of Licensee.
00022 //------------------------------------------------------------------------------
00023 
00024 #ifndef __ipersistent__
00025 #define __ipersistent__
00026 
00027 #ifndef __funknown__
00028 #include "funknown.h"
00029 #endif
00030 
00031 namespace Steinberg {
00032 
00033 class IAttributes;
00034 //------------------------------------------------------------------------
00053 //------------------------------------------------------------------------
00054 class IPersistent: public FUnknown
00055 {
00056 public:
00057 //------------------------------------------------------------------------
00060         virtual tresult PLUGIN_API getClassID (char* uid) = 0;
00062         virtual tresult PLUGIN_API saveAttributes (IAttributes* ) = 0;
00064         virtual tresult PLUGIN_API loadAttributes (IAttributes* ) = 0;
00065 //------------------------------------------------------------------------
00066         static const FUID iid;
00067 };
00068 
00069 DECLARE_CLASS_IID (IPersistent, 0xBA1A4637, 0x3C9F46D0, 0xA65DBA0E, 0xB85DA829)
00070 
00071 
00072 typedef const char* IAttrID;
00073 //------------------------------------------------------------------------
00088 //------------------------------------------------------------------------
00089 class IAttributes: public FUnknown
00090 {
00091 public:
00092 //------------------------------------------------------------------------
00102         virtual tresult PLUGIN_API set (IAttrID attrID, const FVariant& data) = 0;
00103 
00107         virtual tresult PLUGIN_API queue (IAttrID listID, const FVariant& data) = 0;  
00108 
00113         virtual tresult PLUGIN_API setBinaryData (IAttrID attrID, void* data, uint32 bytes, bool copyBytes) = 0;
00115 
00120         virtual tresult PLUGIN_API get (IAttrID attrID, FVariant& data) = 0;
00121 
00125         virtual tresult PLUGIN_API unqueue (IAttrID listID, FVariant& data) = 0; 
00126 
00128         virtual int32 PLUGIN_API getQueueItemCount (IAttrID) = 0;
00129         
00131         virtual tresult PLUGIN_API resetQueue (IAttrID attrID) = 0;
00132         
00134         virtual tresult PLUGIN_API resetAllQueues () = 0;
00135 
00138         virtual tresult PLUGIN_API getBinaryData (IAttrID attrID, void* data, uint32 bytes) = 0;
00140         virtual uint32 PLUGIN_API getBinaryDataSize (IAttrID attrID) = 0;
00142 
00143 //------------------------------------------------------------------------
00144         static const FUID iid;
00145 };
00146 
00147 DECLARE_CLASS_IID (IAttributes, 0xFA1E32F9, 0xCA6D46F5, 0xA982F956, 0xB1191B58)
00148 
00149 }
00150 
00151 #endif
Empty

Copyright ©2008 Steinberg Media Technologies. All Rights Reserved.