Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

CodecFactory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  * @file CodecFactory.h
00006  *
00007  * $Id: CodecFactory.h,v 1.1.1.2 2003/02/21 18:36:44 chad Exp $
00008  *
00009  * @author Ossama Othman <ossama@uci.edu>
00010  */
00011 //=============================================================================
00012 
00013 #ifndef TAO_CODEC_FACTORY_H
00014 #define TAO_CODEC_FACTORY_H
00015 
00016 #include "ace/pre.h"
00017 
00018 #include "TAO_Export.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 #include "IOPC.h"
00025 #include "LocalObject.h"
00026 
00027 // This is to remove "inherits via dominance" warnings from MSVC.
00028 // MSVC is being a little too paranoid.
00029 #if defined(_MSC_VER)
00030 #if (_MSC_VER >= 1200)
00031 #pragma warning(push)
00032 #endif /* _MSC_VER >= 1200 */
00033 #pragma warning(disable:4250)
00034 #endif /* _MSC_VER */
00035 
00036 
00037 /**
00038  * @class TAO_CodecFactory
00039  *
00040  * @brief Implementation of the IOP::CodecFactory interface.
00041  *
00042  * This class can be used to create Codec (coder/decoder) of a given
00043  * type, such as a CDR encapsulation Codec.
00044  */
00045 class TAO_Export TAO_CodecFactory
00046   : public virtual IOP::CodecFactory,
00047     public virtual TAO_Local_RefCounted_Object
00048 {
00049 public:
00050 
00051   /// Constructor
00052   TAO_CodecFactory (TAO_ORB_Core * orb_core);
00053 
00054   /// Create a Coder/Decoder for the given type of encoding.
00055   virtual IOP::Codec_ptr create_codec (const IOP::Encoding & enc
00056                                        ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00057     ACE_THROW_SPEC ((CORBA::SystemException,
00058                      IOP::CodecFactory::UnknownEncoding));
00059 
00060 private:
00061 
00062   /// Prevent copying through the copy constructor and the assignment
00063   /// operator.
00064   ACE_UNIMPLEMENTED_FUNC (
00065     TAO_CodecFactory (const TAO_CodecFactory &))
00066   ACE_UNIMPLEMENTED_FUNC (void operator= (const TAO_CodecFactory &))
00067 
00068 private:
00069 
00070   /// Pointer to the ORB Core.
00071   /**
00072    * Some Codec implementations may need access to the ORB Core with
00073    * which they are associated.
00074    */
00075   TAO_ORB_Core * orb_core_;
00076 
00077 };
00078 
00079 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
00080 #pragma warning(pop)
00081 #endif /* _MSC_VER */
00082 
00083 #include "ace/post.h"
00084 
00085 #endif  /* TAO_CODEC_FACTORY_H */

Generated on Mon Jun 16 13:48:04 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002