BaseObject Inherited Classes For VedaLib
[BaseObject Inherited Classes by Library Packages.]


Detailed Description

Here are links to classes inherited from BaseObject In VedaLib, the base package. You should have a look at the classes here, in this packages, because it provides not only BaseObject, the root class, but also some other inherited virtual class that can be used to unify some behaviour, like VirtualMedia which can be a base for any animation or sound, or InterfacePrefObject, which keep informations on the way a AzurVeda interface could save its preferences. These classes can be registered to a BaseContext. with BaseContext::RegisterClassList(). These classes may be virtual or not.
This Library Package and classes are under the
GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.


Classes

class  BaseObject
 Virtual Base class for all objects managed in a BaseContext.
  • To be used in such context, Each classes (virtual or not) inheriting BaseObject should be first registered to this context using BaseContext::RegisterClassList(), by passing the static descriptor m_description to it. You must not construct these objects with operator new and delete, but with public methods BaseContext::NewObject() and BaseContext::DestroyObject(). All Object Instances (and their serializable members) will then be serialized with the context.
  • There is 2 levels of construction for objects managed by a context:
    You register your serializable member in the C++ constructor, but you write your construction code by ovverriding the protected virtual method CreateInternal(), and your destruction code must stand in an override of the protected virtual method CloseInternal(). It means, all allocation done in CreateInternal() must be close in CloseInternal().
  • To throw the creation of your object from outside the context, you must use the public Create(), and check its return code. To close it, use Close(). Destroying a BaseContext with the delete operator will delete all its BaseObjects. You can check the creation state of an object at any time with IsCreated(). The methods of your objects should only be used when the object is created with no error.
  • Your object may have registered PackObjectReference members: they are dynamic pointers to other objects in the context. Your object will be dependant of the objects it points at. In fact, Create() assumes that if your object is successfully created, all its dependant objects are also created successfully. It means that, inside your CreateInternal() code, the pointer you get from your PackObjectReference members points objects that are already created succesfully. Look Create() for more.
  • About GetName(): All BaseObject are named for convenience when edited, but this name isn't usually used to refer the objects.
  • Extending a registerable BaseObject must be done by using a define macro in its header (.h) and a declaration macro in its (.cpp). These macros will automatise the code of the destructor, but the constructor must be coded. you must call the super constructor from it, and then register your serializable members in it. from class SimpleTest, you could have this SimpleTest.h:.
More...
class  InterfacePrefObject
 This class provide a unified way to stock preferences and states informations about a GUI that would edit a AzurVeda Context, so it is saved within a context. Basically, an editor should use Get()/Set() and serialization, to keep the current objects edited and previewed. It is not registered to BaseContext by default. you got to register it or not, according to your needs. Thus, it has to be registered first if you use inherited classes. ( through BaseContext::RegisterClassList() of course ). As editor preferences may be only useful during edition, it is of course possible to flush these objects from the context, like any other objects. This class has no sense in non editable mode and should just not be used in such compilation mode. More...
class  MediaAccess
 Define which Media objects are the main media and the boot media in a context. Then static method MediaAccess::GetMainMedia() is a simple entry to a media in the context. There should be only one MediaAccess object per context. More...
class  MediaTimePattern
 The class Defining a media pattern as a list of tracks of other media to mix. Each track is a suit of VirtualMedia reference to play. a MediaTimePattern can call other ones recursively. More...
class  TextLocalized
 Define a text and possibly other localized versions. More...
class  VirtualMedia
 Base model for all class that plays a suit of animations and/or sounds. You should extend ProcessMedia() for animations, and ProcessSoundInterupt() for sounds, in any way. This example extends a VirtualMedia and plays it. Note this class is not registered to BaseContext by default. you got to register it or not, according to your needs. Thus, it got to be registered first if you use inherited classes. ( through BaseContext::RegisterClassList() ) Also note that VirtualMedia::ProcessSoundInterupt() manages the sound registration to the machine itself. More...


      /\/\        4         N         k         !         N         D
                      _______  _ __ ___  _____            ___ _ _  ____
     ___________  __//___   /________  |/    / ___________\_______/    \
    /   _   _   \/   _     /    _   /      _/_/____/    _       __     /
   /    /   /       /     /    /    \      \/     /    /    \   \     /
  \\___/___/___/    ¯    _____/_____/       ______\___/_____/\________\\
               \________/_ ___ __ l____\      /elD!  
                 http://www.m4nkind.com \____/