00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Side Effects Software Inc 00008 * 123 Front Street West, Suite 1401 00009 * Toronto, Ontario 00010 * Canada M5J 2M2 00011 * 416-504-9876 00012 * 00013 * NAME: IFD_StreamEvent.h ( IFD Library, C++) 00014 * 00015 * COMMENTS: Event notifiers for changes to IPR trees. 00016 * 00017 * The stream events are sent out by different classes at different (and 00018 * sometimes unexpected) times. 00019 * 00020 * CREATED 00021 * Called by IFD_Output when an IFD_RenderStream is created 00022 * DELETED 00023 * Called in the destructor of the stream. The destructor is 00024 * called in several different places: 00025 * - File streams will be destroyed at the end of the frame 00026 * - Process streams (in foreground) will be destroyed at the 00027 * end of frame. 00028 * - Process streams (in background) may be destroyed at the 00029 * end of frame if the render was extremely fast. Otherwise, 00030 * the stream can only be deleted when 00031 * IFD_RenderStream::pruneList() is called (which occurs in 00032 * various places throughout the code. 00033 * KILLED 00034 * PAUSED 00035 * RESTART 00036 * Called when the method on the IFD_RenderStream is called. 00037 */ 00038 00039 #ifndef __IFD_StreamEvent__ 00040 #define __IFD_StreamEvent__ 00041 00042 #include "IFD_API.h" 00043 00044 #include <UT/UT_Notifier.h> 00045 00046 class IFD_RenderStream; 00047 00048 class IFD_API IFD_StreamEvent 00049 { 00050 public: 00051 enum IFD_StreamEventType 00052 { 00053 IFD_STREAM_CREATED, // IFD_Output has created a stream 00054 IFD_STREAM_DELETED, // Stream is about to be deleted 00055 IFD_STREAM_KILLED, // When stream's process is killed 00056 IFD_STREAM_PAUSED, // When stream's process is paused 00057 IFD_STREAM_RESTARTED // When stream's process is restarted 00058 }; 00059 00060 IFD_StreamEvent(IFD_StreamEventType type, IFD_RenderStream *stream) 00061 : myEventType(type), myStream(stream) {} 00062 00063 IFD_StreamEventType myEventType; 00064 IFD_RenderStream *myStream; 00065 }; 00066 00067 #endif
1.5.9