00001 /* 00002 * The information in this file is 00003 * Copyright(c) 2007 Ball Aerospace & Technologies Corporation 00004 * and is subject to the terms and conditions of the 00005 * GNU Lesser General Public License Version 2.1 00006 * The license text is available from 00007 * http://www.gnu.org/licenses/lgpl.html 00008 */ 00009 00010 #ifndef RASTERPAGERSHELL_H 00011 #define RASTERPAGERSHELL_H 00012 00013 #include "ExecutableShell.h" 00014 #include "RasterPager.h" 00015 00016 /** 00017 * \ingroup ShellModule 00018 */ 00019 class RasterPagerShell : public ExecutableShell, public RasterPager 00020 { 00021 public: 00022 /** 00023 * Creates a raster pager plug-in. 00024 * 00025 * The constructor sets the plug-in type to PlugInManagerServices::RasterPagerType(), sets the plug-in 00026 * to allow multiple instances, and to not be destroyed after execution. 00027 * 00028 * @see getType(), areMultipleInstancesAllowed(), 00029 * isDestroyedAfterExecute() 00030 */ 00031 RasterPagerShell(); 00032 00033 /** 00034 * Destroys the raster pager plug-in. 00035 */ 00036 ~RasterPagerShell(); 00037 00038 /** 00039 * @copydoc Executable::getOutputSpecification() 00040 * 00041 * @default The default implementation does not set any args in the arg 00042 * list and returns \b true. 00043 */ 00044 bool getOutputSpecification(PlugInArgList*& pArgList); 00045 00046 /** 00047 * The default pager session serialization method. 00048 * 00049 * Since pagers don't know enough to recreate and restore themselves on 00050 * session load, they must be created by the RasterElement or another plug- 00051 * in. The default method simply returns true, causing the session load to 00052 * not recreate the pager. 00053 * 00054 * @param serializer 00055 * The object to use to save the item as part of the current 00056 * session. 00057 * 00058 * @return \c true if the item was successfully saved and \c false otherwise. 00059 */ 00060 bool serialize(SessionItemSerializer& serializer) const; 00061 }; 00062 00063 #endif