InnerCategory Class Reference

AIML XML abstract class for all the InnerCategory XML Tag classes inside of the AIML XML "category" to inherit from. More...

#include <InnerCategory.h>

Inheritance diagram for InnerCategory:

InnerTopic InnerAIML Tag InnerTemplate Pattern PatternSideThat Template Bot Condition Date Get Id InnerTemplateListImpl Input PlainWord Random Size Star TemplateSideThat ThatStar TopicStar Version List of all members.

Public Member Functions

virtual StringPimpl getString () const =0 throw (InternalProgrammerErrorException &)
 Contract to make all inner category XML Tags return a string representing their internal structure.
virtual const StringPimplgetStringConstRef () const throw (InternalProgrammerErrorException &)
 The same as InnerCategory::getString() only it returns a reference to the string and not the string its self.
 InnerCategory () throw (InternalProgrammerErrorException &)
 Default constructor to initalize the private implementation (m_pimpl) data.
virtual ~InnerCategory ()
 Default virtual destructor.

Private Attributes

shared_ptr< InnerCategoryImpl > m_pimpl
 The private implementation in which you cannot get access to.

Detailed Description

AIML XML abstract class for all the InnerCategory XML Tag classes inside of the AIML XML "category" to inherit from.

If you write a AIML XML tag class such as Li, Srai, LowerCase, etc... which reside inside of <category> you should either inherit from this class or from another class which already inherits from this class.


Constructor & Destructor Documentation

InnerCategory  )  throw (InternalProgrammerErrorException &)
 

Default constructor to initalize the private implementation (m_pimpl) data.

Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

virtual ~InnerCategory  )  [virtual]
 

Default virtual destructor.

Destroys the private implementation (m_pimpl) data.


Member Function Documentation

virtual StringPimpl getString  )  const throw (InternalProgrammerErrorException &) [pure virtual]
 

Contract to make all inner category XML Tags return a string representing their internal structure.

See the inner category Tags to understand what they will return.

Returns:
The string representation of the XML Tag.
Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

Implemented in Bot, Condition, Date, Formal, Gender, Get, Gossip, Id, InnerTemplate, InnerTemplateListImpl, Input, Learn, LowerCase, Pattern, PatternSideThat, Person, Person2, PlainWord, Random, Sentence, Set, Size, Srai, Star, System, Template, TemplateSideThat, ThatStar, Think, TopicStar, UpperCase, and Version.

virtual const StringPimpl& getStringConstRef  )  const throw (InternalProgrammerErrorException &) [virtual]
 

The same as InnerCategory::getString() only it returns a reference to the string and not the string its self.

It is a no-ops (no operations) method. It does not have to be implemented by all InnerCategory Tags. It's provided for high efficiency. Be careful if implementing this in your InnerCategory subclass. You have to ensure that the object stays in memory until a copy of the string is made since the object has ownership of the string.

Returns:
Returns a reference to the string
Exceptions:
InternalProgrammerErrorException is thrown only if the error is so grave that the entire AIML engine has to be shut down.

Reimplemented in Pattern, and PatternSideThat.


Member Data Documentation

shared_ptr<InnerCategoryImpl> m_pimpl [private]
 

The private implementation in which you cannot get access to.

This shared_ptr holds the private methods and private member variables of this class. This makes ABI (Application Binary Interface) more resilient to change. See the private implementation idiom on the internet for more information about this.

Reimplemented from InnerTopic.

Reimplemented in Bot, Condition, Date, Formal, Gender, Get, Gossip, Id, InnerTemplate, InnerTemplateListImpl, Input, Learn, Li, LowerCase, NonImplemented, Pattern, PatternSideThat, Person, Person2, PlainWord, Random, Sentence, Set, Size, Srai, Star, System, Template, TemplateSideThat, ThatStar, Think, TopicStar, UpperCase, and Version.


The documentation for this class was generated from the following file:
Generated on Thu Sep 7 22:05:46 2006 for RebeccaAIML by  doxygen 1.4.5