// Copyright (c) 2005 DMTF.  All rights reserved.
// <change cr="ArchCR00066.004" type="add">Add UmlPackagePath
// qualifier values to CIM Schema.</change>
// ==================================================================
//  CIM_BufferPool 
// ==================================================================
   [Version ( "2.6.0" ), 
    UMLPackagePath ( "CIM::Network::Buffers" ), 
    Description ( 
       "This class represents the use of buffers by a Queuing Service. "
       "The existence and management of individual buffers will be "
       "modeled in a future release. At the current level of "
       "abstraction, modeling the existence of the BufferPool is "
       "necessary. Long term, it is not sufficient. \n"
       "\n"
       "In implementations where there are multiple buffer sizes, an "
       "instance of BufferPool should be defined for each set of "
       "buffers with identical or similar sizes. These instances of "
       "buffer pools can then be grouped together using the "
       "CollectedBuffersPool association. \n"
       "\n"
       "Note that this class is derived from CollectionOfMSEs, and not "
       "from Forwarding or ConditioningService. BufferPool is only a "
       "collection of storage, and is NOT a Service." )]
class CIM_BufferPool : CIM_CollectionOfMSEs {

      [Key, Override ( "CollectionID" ), 
       Description ( 
          "This property is defined in the CollectionOfMSEs class, "
          "but is overridden here to serve as part of the "
          "(composite) key that identifies the BufferPool instance." ), 
       MaxLen ( 256 )]
   string CollectionID;

      [Key, Description ( 
          "CreationClassName indicates the name of the class or the "
          "subclass used in the creation of an instance. When used "
          "with the other key properties of this class, this "
          "property allows all instances of this class and its "
          "subclasses to be uniquely identified." ), 
       MaxLen ( 256 )]
   string CreationClassName;

      [Description ( 
          "The Name property defines the label by which the object is known."
           ), 
       MaxLen ( 256 )]
   string Name;

      [Deprecated { "CIM_BufferPool.SizeOfBuffers" }, 
       Description ( 
          "This property is a 16-bit unsigned integer, and defines "
          "the number of bytes in each buffer. It is deprecated in "
          "lieu of a similar uint32 property." ), 
       Units ( "Bytes" )]
   uint16 BufferSize;

      [Description ( 
          "This property is a 32-bit unsigned integer, and defines "
          "the number of bytes in each buffer." ), 
       Units ( "Bytes" )]
   uint32 SizeOfBuffers;

      [Description ( 
          "This property is a 32-bit unsigned integer, and defines "
          "the total number of buffers in the Pool." )]
   uint32 TotalBuffers;

      [Description ( 
          "This property is a 32-bit unsigned integer, and defines "
          "the number of buffers in the Pool that are currently not "
          "allocated to any instance of a QueuingService. Buffers "
          "allocated to a QueuingService could either be in use "
          "(containing packet data), or allocated to a Queue "
          "pending the arrival of new packet data." )]
   uint32 AvailableBuffers;

      [Description ( 
          "This property is a 32-bit unsigned integer, and defines "
          "the number of buffers in the Pool that have been "
          "simultaneously allocated to multiple instances of "
          "QueuingService." )]
   uint32 SharedBuffers;


};
