Clarisse 5.0 SP8 SDK  5.0.5.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
OfOverridesContextEngine Class Reference
Inheritance diagram for OfOverridesContextEngine:
OfContextEngine CoreBaseObject CoreBaseType OfFileReferenceContextEngine

Classes

struct  ClearOverridesUndoData
 
struct  OverrideParseSerialData
 

Public Member Functions

void clear_overrides ()
 
void clear_items_overrides (const CoreBasicArray< CoreString > &items_paths)
 
void clear_sub_items_overrides (const CoreBasicArray< CoreString > &path_filters)
 
void clear_attributes_overrides (const CoreBasicArray< CoreString > &attr_paths)
 
void cleanup_overrides ()
 
void cleanup_overrides (const CoreString &attr_path)
 
void cleanup_overrides (const CoreBasicArray< CoreString > &attr_paths)
 
OfObjectcreate_override_set ()
 
const unsigned int get_override_set_count () const
 
OfReferenceOverrideSetget_override_set (const unsigned int &index) const
 
CoreString get_overrides_as_text () const
 Get all context overrides as text.
 
void set_overrides_from_text (const CoreString &text)
 
OfOverridesget_overrides () const
 
ClearOverridesUndoDatado_create_override_set (ClearOverridesUndoData *undo_data, CoreString &override_set_name)
 
ClearOverridesUndoDatado_clear_overrides (ClearOverridesUndoData *undo_data)
 
ClearOverridesUndoDatado_cleanup_overrides (ClearOverridesUndoData *undo_data)
 
bool undo_clear_overrides (ClearOverridesUndoData *undo_data)
 
ClearOverridesUndoDatado_clear_items_overrides (const CoreBasicArray< CoreString > &item_paths)
 
ClearOverridesUndoDatado_clear_sub_items_overrides (const CoreBasicArray< CoreString > &path_filters)
 
ClearOverridesUndoDatado_clear_attribute_overrides (const CoreBasicArray< CoreString > &attr_paths)
 
const bool is_top_level_reference () const
 
void set_content_dirty (const bool &dirty_sub_contexts=false) override
 
void reset_content_dirty ()
 
bool is_content_dirty () const override
 
virtual bool can_update_content () const
 Returns true if the update process can be done right now.
 
virtual void update_content (const OfSerialOptions &overrides_options=OfSerialOptions::get_default())
 Performs the update content process if possible (according to can_update_content) and manages reapplying overrides.
 
virtual int get_override_kind (const OfObject &object, const CoreString &attr_name) const
 
void update_content_and_clean (const OfSerialOptions &overrides_options=OfSerialOptions::get_default(), bool bnew=false)
 
void get_overridden_objects (CoreVector< OfObject * > &objects) const
 Returns overridden objects.
 
int get_overridden_object_count () const
 Returns the number of overridden objects.
 
void get_overridden_attributes (const OfObject *object, CoreVector< OfAttr * > &attrs) const
 Returns overridden attributes for a given overridden object.
 
bool is_shadowable (const OfItem &item) override
 
void change_override_root_path (const CoreString &old_path, const OfContext &new_root_ctx)
 
- Public Member Functions inherited from OfContextEngine
bool is_unknown_engine () const
 
bool is_project_engine () const
 
bool is_override_engine () const
 
bool is_file_reference_engine () const
 
bool is_usd_reference_engine () const
 
bool is_scene_assembly_engine () const
 
bool is_scene_assembly_read_engine () const
 
bool is_build_package_engine () const
 
virtual bool can_reference_file () const
 
virtual bool supports_localize () const
 
OfContextget_context () const
 
virtual const GuiIconget_icon () const
 
const CoreStringget_attr_doc (const CoreString &attr) const
 
CoreString get_serial_name () const
 
void pre_serialize (const OfSerialOptions &options)
 
void post_serialize ()
 
bool is_serializing () const
 
bool is_deserializing () const
 
virtual ParserGroupget_settings () const
 
virtual CoreString get_pdir (void) const
 
virtual void get_scene (OfSceneDescription &scene) const
 generate a scene description of the engine context
 
OfItemget_item (OfSceneDescription::ItemId item_id) const
 create the OF item given the ID of the item in the engine
 
virtual void get_items (const CoreBasicArray< OfSceneDescription::ItemId > &item_ids, CoreArray< OfItem * > &items) const
 create the OF items given the IDs of the items in the engine
 
virtual void get_item_references (OfSceneDescription::ItemId item_id, CoreVector< OfSceneDescription::ItemId > &references) const
 returns the IDs of items referenced by an item
 
virtual OfObjectHandle get_object_handle (OfObject *object, OfClass *missing_class=0) const
 Returns a handle for the given object in the context.
 
virtual const CoreStringget_item_full_name (const OfItem &item)
 Returns the full name of a given item in the context.
 
OfBuildPackageContextEngineget_build_package ()
 
virtual void get_status_bar (ComponentInterfaceNodeStatus &status) const
 customize the status bar of the context in the build view for example, it is possible to display a warning bar if something is going wrong
 
virtual void update_context ()
 Update the content of the context if needed. This is called each time we need to access to the content of a context.
 
virtual bool is_content_valid () const
 
virtual void on_add_cam (const CAMInfo &cam_info)
 React to the addition of a new cam, by gathering related attributes and applying the cam t them.
 
virtual bool is_traversal () const
 
virtual OfItemHandle get_traversal_item () const
 
virtual OfAttrget_pass_through () const
 
virtual OfAttrHandle get_traversal_attr (bool when_traversal_only=true) const
 
virtual OfItemget_traversal_candidate () const
 
virtual CoreString get_cam_identifier () const
 
virtual bool has_cam_feature () const
 
virtual void * predelete_items (const CoreSet< OfContext * > &contexts, const CoreSet< OfObjectHandle > &objects, const CoreVector< OfObjectHandle > &embedded, OfEndProtectionCallback &cleanup)
 
virtual void undelete_items (void *blind_data)
 
virtual void get_overrides (ParserGroup &overrides) const
 Returns a serialization group containing all the overrides applied on items in the context.
 
virtual void set_overrides (const ParserGroup &overrides, bool append_overrides=false)
 Apply overrides on items in the context given a serialization group containing all the overrides.
 
virtual bool merge_overrides (CoreBasicArray< OfContextEngine * > contexts)
 Merge overrides of the given contexts into the current one.
 
OfAttradd_attribute (const OfItem::AttrCreationParams &params)
 
OfAttradd_attribute (const CoreString &name, const OfAttr::Type &type, const OfAttr::Container &container=OfAttr::CONTAINER_SINGLE, const OfAttr::VisualHint &visual_hint=OfAttr::VISUAL_HINT_DEFAULT, const CoreString &group_name="general")
 
void remove_all_attributes ()
 
void remove_attribute (const CoreString &name)
 
void remove_attribute (OfAttr &attr)
 
OfAttradd_custom_attribute (const OfItem::AttrCreationParams &params)
 
OfAttradd_custom_attribute (const CoreString &name, const OfAttr::Type &type, const OfAttr::Container &container=OfAttr::CONTAINER_SINGLE, const OfAttr::VisualHint &visual_hint=OfAttr::VISUAL_HINT_DEFAULT, const CoreString &group_name="general")
 
void remove_all_custom_attributes ()
 
- Public Member Functions inherited from CoreBaseObject
bool is_kindof (const CoreBaseObject &object) const
 
virtual size_t get_memory_size () const
 
CoreString get_class_info_name () const
 
const unsigned long & get_class_info_id () const
 
virtual bool is_kindof (const CoreClassInfo &cinfo) const
 
virtual const CoreClassInfoget_class_info () const
 
template<class T >
T * cast ()
 
template<class T >
const T * cast () const
 
- Public Member Functions inherited from CoreBaseType
bool is_kindof (const CoreClassInfo &cinfo) const
 

Static Public Member Functions

static const
OfContextEngine::Descriptor
get_descriptor ()
 
- Static Public Member Functions inherited from OfContextEngine
static const Descriptorget_descriptor ()
 
static void set_icon (const CoreClassInfo &engine_class_info, const GuiIcon *icon)
 
static void set_icon (const CoreString &engine_serial_name, const GuiIcon *icon)
 
static void set_custom_icon (const CoreClassInfo &engine_class_info, int key, const GuiIcon *icon)
 
static void set_attr_doc (const CoreClassInfo &engine_class_info, const CoreString &attr_name, const CoreString &doc)
 
- Static Public Member Functions inherited from CoreBaseObject
static const CoreClassInfoclass_info ()
 
template<class T >
static T * cast (CoreBaseObject *object)
 
template<class T >
static const T * cast (const CoreBaseObject *object)
 
- Static Public Member Functions inherited from CoreBaseType
static const CoreClassInfoclass_info ()
 Get the type descriptor of this instance.
 

Protected Types

enum  DeserializingState {
  UPDATE_WHILE_DESERIALIZING_OBJECT = NEXT_DESERIALIZING_VALUE,
  UPDATE_WHILE_DESERIALIZING_ATTR = NEXT_DESERIALIZING_VALUE<<1,
  OVERRIDES_NEXT_DESERIALIZING_VALUE = NEXT_DESERIALIZING_VALUE<<2
}
 
enum  PrivateState {
  STATE_DEFAULT = NEXT_PRIVATE_FLAG,
  STATE_CREATING_OVERRIDE = NEXT_PRIVATE_FLAG<<1,
  STATE_UPDATING_CONTENT = NEXT_PRIVATE_FLAG<<2,
  CONTENT_DIRTY = NEXT_PRIVATE_FLAG<<3
}
 
- Protected Types inherited from OfContextEngine
enum  Result {
  RESULT_DESERIALIZE_NONE,
  RESULT_DESERIALIZE_SOME,
  RESULT_DESERIALIZE_ALL
}
 
enum  DeserializingState {
  NOT_DESERIALIZING = 0,
  DESERIALIZING_OBJECT = 1 << 0,
  DESERIALIZING_ATTR = 1 << 1,
  NEXT_DESERIALIZING_VALUE = 1 << 2
}
 Context's deserialization state. More...
 
enum  PrivateFlags {
  NO_FLAGS = 0,
  FLAG_POPULATING_OPTIONS = 1,
  FLAG_RECREATING_ENGINE = 1 << 1,
  NEXT_PRIVATE_FLAG = 1 << 2
}
 

Protected Member Functions

virtual void _update_content (const bool &apply_overrides, const OfSerialOptions &overrides_options)
 
virtual void on_update_content (const OfSerialOptions &overrides_options)
 Override this method to specify your custom content.
 
virtual bool has_content_to_update ()
 
 OfOverridesContextEngine (OfContext &ctx)
 
void init (ParserGroup *settings=0) override
 
bool populate_settings (ParserGroup &group, OfContext *context) const override
 
void populate_options () override
 
virtual void refresh_attributes ()
 
void load_overrides (ParserGroup *settings)
 
void apply_overrides ()
 
void force_apply_overrides (CoreBasicArray< OfObject * > objects)
 Force (re)apply existing overrides on the specified objects.
 
void on_options_changed (OfObject &options) override
 
void on_context_event (const CoreString &event) override
 
int on_item_event (const EventObject::EventInfo &event, OfItem *item) override
 
ParserEntryserialize (ParserEntry *entry, const OfSerialOptions &options, AppProgressBar *progress_bar) const override
 
Result deserialize_objects (ParseSerialData *serial_data, const OfSerialOptions &options, AppProgressBar *progress_bar) override
 
void deserialize_attrs (ParseSerialData *serial_data, const OfSerialOptions &options, AppProgressBar *progress_bar) override
 
Result do_deserialize_objects (ParseSerialData *serial_data, const OfSerialOptions &options, AppProgressBar *progress_bar) override
 
void do_deserialize_attrs (ParseSerialData *serial_data, const OfSerialOptions &options, AppProgressBar *progress_bar) override
 
virtual void on_deserialize_filter_out_overrides (CoreVector< CoreString > &filtered_overrides_paths)
 
bool is_parent_updating_content () const
 
OfOverridesContextEngineget_top_override_engine () const
 
bool is_listening_events () const
 Return the listening state which specifies if we will create new overrides when object attributes change.
 
bool set_listening_events (bool state)
 
bool is_update_content_allowed () const
 
bool set_allowed_update_content (bool state)
 
void suspend_objects (const CoreVector< OfItem * > &items) override
 
- Protected Member Functions inherited from OfContextEngine
 OfContextEngine (OfContext &ctx)
 
void register_component_implementation ()
 
void _populate_options ()
 
OfAttradd_option_attribute (const OfItem::AttrCreationParams &params)
 
OfAttradd_option_attribute (const CoreString &name, const OfAttr::Type &type, const OfAttr::Container &container=OfAttr::CONTAINER_SINGLE, const OfAttr::VisualHint &visual_hint=OfAttr::VISUAL_HINT_DEFAULT, const CoreString &group_name="general")
 
void remove_all_option_attributes ()
 
void _on_options_changed (OfObject &options)
 
void add_state_deserializing (const int state)
 
void remove_state_deserializing (const int state)
 
bool is_state_deserializing (const int state) const
 
void add_private_flag (const int flag)
 
void remove_private_flag (const int flag)
 
bool is_private_flag (const int flag) const
 
virtual void get_items_to_serialize (CoreArray< OfObject * > &objects, CoreArray< OfContext * > &contexts) const
 
virtual ParserEntryserialize_export (ParserEntry *entry, const OfSerialOptions &options, AppProgressBar *progress_bar) const
 
void suspend_all_objects ()
 
void clean_all_suspended_objects (bool only_new=false)
 
const OfClassget_project_item_class () const
 

Static Protected Member Functions

static void prepare_serial_data (OverrideParseSerialData &serial_data, CoreVector< ParserEntry * > &sub_ctx_entries, const CoreBasicArray< ParserEntry * > &serial_entries)
 
static Result deserialize_data_objects (OverrideParseSerialData &serial_data, OfOverridesContextEngine &target_context, const OfSerialOptions &options, AppProgressBar *progress_bar)
 
static int clear_overrides_cb (const OfAction &action, OfObject &object, void *data)
 
static int cleanup_overrides_cb (const OfAction &action, OfObject &object, void *data)
 
static int extract_override_set_cb (const OfAction &action, OfObject &object, void *data)
 
static int prints_override_cb (const OfAction &action, OfObject &object, void *data)
 
- Static Protected Member Functions inherited from OfContextEngine
static OfContextEnginecreate_engine (OfContext &ctx)
 
static ParseSerialDataparse_serial (CoreVector< ParserEntry * > &sub_ctx_entries, const CoreBasicArray< ParserEntry * > &serial_entries)
 
static void prepare_serial_data (ParseSerialData &serial_data, CoreVector< ParserEntry * > &sub_ctx_entries, const CoreBasicArray< ParserEntry * > &serial_entries)
 
static Result deserialize_data_objects (ParseSerialData &serial_data, OfContextEngine &target_context, const OfSerialOptions &options, AppProgressBar *progress_bar)
 
static void deserialize_data_attrs (ParseSerialData &serial_data, OfContextEngine &target_context, const OfSerialOptions &options, AppProgressBar *progress_bar)
 
static void deserialize_data_options (ParseSerialData &serial_data, OfContextEngine &target_context, const OfSerialOptions &options)
 
static ParserEntryserialize_options (const OfContext &context, const OfSerialOptions &serial_options)
 
static void deserialize_options (OfContext &context, const ParserEntry *serial, const OfSerialOptions &serial_options)
 

Protected Attributes

OfOverridesm_overrides
 
OfReferenceOverrideSetm_override_set
 
int m_context_flags
 
bool m_initialized
 
- Protected Attributes inherited from OfContextEngine
OfContextm_ctx
 The OfContext hosting the engine.
 
const OfClassm_project_item_class
 For optimization.
 
char m_flag_deserializing
 Context's deserializing state. See DeserializingState.
 
unsigned int m_private_flags
 See PrivateFlag.
 
CoreVector< OfAttr * > m_option_attrs
 Keeps track of attributes used as options, for special serialization.
 
CoreVector< OfAttr * > m_custom_attrs
 Keeps track of custom attributes, for special serialization.
 
bool m_is_serializing
 

Friends

class OfContext
 
class OfOverrides
 

Additional Inherited Members

- Public Types inherited from OfContextEngine
typedef OfContextEngine *(* CreateEngineCallback )(OfContext &context)
 
typedef ParseSerialData *(* ParseSerialCallback )(CoreVector< ParserEntry * > &sub_ctx_entries, const CoreBasicArray< ParserEntry * > &serial_entries)
 
typedef const Descriptor &(* GetDescriptorCallback )()
 Typedef for the callback to get the engine's Descriptor.
 

Detailed Description

Context engine that supports overrides.

Member Function Documentation

void OfOverridesContextEngine::change_override_root_path ( const CoreString old_path,
const OfContext new_root_ctx 
)

Change all the root paths of all the reference attributes.

See Also
OfOverrides::change_override_root_path
void OfOverridesContextEngine::force_apply_overrides ( CoreBasicArray< OfObject * >  objects)
protected

Force (re)apply existing overrides on the specified objects.

All kinds of override are re-applied (CONTENT_OVERRIDE and ITEM_OVERRIDE).
Useful in cases of partial reload when you need to force apply already existing overrides on the specified objects.

Parameters
objectsList of objects for which overrides will be re-applied. Objects that don't match, or don't have overrides, are not modified by this method.

See Also
OfOverrides::_force_apply_overrides
int OfOverridesContextEngine::get_override_kind ( const OfObject object,
const CoreString attr_name 
) const
virtual

Query the kind of the context override according to the specified attribute.

Parameters
objectThe object being overridden.
attr_nameThe name of the attribute overridden in the object.
Returns
An OR-combination of OfOverrides::OverrideKinds values that describe the kind of override and update that will be done on the context contents. E.g. overriding the "filename" of an OfFileReferenceContextEngine will result in a OfOverrides::CONTENT_OVERRIDE.

Reimplemented in OfFileReferenceContextEngine.

CoreString OfOverridesContextEngine::get_overrides_as_text ( ) const

Get all context overrides as text.

Returns
Overrides serialized as text. Empty if there are no overrides at all.
OfOverridesContextEngine * OfOverridesContextEngine::get_top_override_engine ( ) const
protected

Helper to get the top-most OfOverridesContextEngine for this engine.

bool OfOverridesContextEngine::is_shadowable ( const OfItem item)
inlineoverridevirtual

Returns true if the item must be shadowed instead of removed when calling the command DeleteItems this allows to not remove all the resources of the item, and to re-add it very quickly if the delete is undo

Reimplemented from OfContextEngine.

void OfOverridesContextEngine::on_context_event ( const CoreString event)
overrideprotectedvirtual

Called when the engine's context sends an event.

Parameters
eventThe event ID.

Reimplemented from OfContextEngine.

int OfOverridesContextEngine::on_item_event ( const EventObject::EventInfo event,
OfItem item 
)
overrideprotectedvirtual

Called when an item of the engine's context sends an event.

Parameters
eventThe EventInfo.
itemThe OfItem that sent an event.
Returns
0 if the event is not consumed, meaning the event will be propagated up in the context hierarchy. Different than 0 if the event is consumed, meaning it won't be propagated.

Reimplemented from OfContextEngine.

void OfOverridesContextEngine::on_options_changed ( OfObject options)
overrideprotectedvirtual

Called when the options object of this engine's context has changed. Deriving engines need to override this method to handle changes on their options.

Parameters
optionsThe options OfObject.

Reimplemented from OfContextEngine.

void OfOverridesContextEngine::suspend_objects ( const CoreVector< OfItem * > &  items)
overrideprotectedvirtual

Suspend the specified items: they will be considered as deprecated and potentially deleted in a further process if they are still in that state.

Parameters
itemsList of items to suspend, they must belong this engine's context.

Reimplemented from OfContextEngine.