Teamcenter C++ API Reference  2312
Classes | Namespaces | Typedefs | Functions
BulkPropertyContextData.hxx File Reference
#include <unidefs.h>
#include <tccore/method.h>
#include <common/tc_deprecation_macros.h>
#include <vector>
#include <property/libproperty_exports.h>
#include <property/libproperty_undef.h>

Go to the source code of this file.

Classes

class  Teamcenter::Property::BulkPropertyContextData
 

Namespaces

namespace  Teamcenter
 A convenient C++ class to manage a list of tag_t. This convenient class is derived from TagList class which is only available for internal developers.
 
namespace  Teamcenter::Property
 

Typedefs

typedef void(* BulkOperation_bulk_loader_t )(const char *operation_id, int n_tags, const tag_t *tags, Teamcenter::Property::BulkPropertyContextData **bulk_context_data)
 
typedef int(* BulkProperty_bulk_loader_setbased_t )(const std::vector< tag_t > &prop_desc_tags, const std::vector< tag_t > &object_tags, Teamcenter::Property::BulkPropertyContextData **bulk_context_data)
 
typedef void(* BulkProperty_bulk_loader_t )(tag_t prop_desc_tags, int n_tags, const tag_t *tags, Teamcenter::Property::BulkPropertyContextData **bulk_context_data)
 
typedef void(* BulkProperty_query_based_bulk_loader_t )(int n_property_descriptor_tags, const tag_t *property_descriptor_tags, int n_objects, const tag_t *objects)
 

Functions

Teamcenter::Property::BulkPropertyContextDataPROPDESC_ask_bulk_prop_context_data (METHOD_message_t *m)
 
Teamcenter::Property::BulkPropertyContextDataPROPDESC_ask_bulk_prop_context_data (tag_t pdTag)
 
Teamcenter::Property::BulkPropertyContextDataPROPDESC_ask_bulk_prop_context_data_by_name (tag_t objTag, const char *propName)
 
int PROPDESC_execute_bulk_loader (int n_tags, const tag_t *tags, int n_props, const char **props)
 
logical PROPDESC_is_bulk_loading_context ()
 
int PROPDESC_register_bulk_loader2 (tag_t prop_desc_tag, logical invoke_once, BulkProperty_bulk_loader_t bulk_loader_fn)
 
int PROPDESC_register_query_based_bulk_loader (int n_property_descriptor_tags, const tag_t *property_descriptor_tags, BulkProperty_query_based_bulk_loader_t query_based_loader_fn)
 

Typedef Documentation

typedef void(* BulkOperation_bulk_loader_t)(const char *operation_id,int n_tags,const tag_t *tags,Teamcenter::Property::BulkPropertyContextData **bulk_context_data)

BulkOperation function pointer

Definition at line 93 of file BulkPropertyContextData.hxx.

typedef int(* BulkProperty_bulk_loader_setbased_t)(const std::vector< tag_t > &prop_desc_tags,const std::vector< tag_t > &object_tags,Teamcenter::Property::BulkPropertyContextData **bulk_context_data)

Definition at line 82 of file BulkPropertyContextData.hxx.

typedef void(* BulkProperty_bulk_loader_t)(tag_t prop_desc_tags,int n_tags,const tag_t *tags,Teamcenter::Property::BulkPropertyContextData **bulk_context_data)

Bulk load function pointer registered by external system.
If you require to cache information obtained in the execution of this function you should instantiate an appropriate subclass of BulkPropertyContextData to store that information and output it in the bulkContextData parameter.
The bulk property loader function may be invoked multiple times for batches of tags. A new BulkPropertyContextData should only be instantiated on the first call, when *bulkContextData is passed as null; on subsequent calls the previously created bulkContextData will be passed back in, your BulkPropertyContextData implementation must reuse that and provide a method to append the data generated on this pass to that which was cached earlier. For example use something like the following pattern in your function implementation:

YourBulkPropertyContextData* yourContextData = 0;
if ( *bulkContextData == 0 )
{
yourContextData = new YourBulkPropertyContextData();
*bulkContextData = yourContextData;
}
else
{
yourContextData = dynamic_cast<YourBulkPropertyContextData*>( *bulkContextData );
if ( yourContextData == 0 )
{
log_error( "<function> given BulkPropertyContextData that is not a YourBulkPropertyContextData" );
}
}
yourContextData->append( someData );

Definition at line 74 of file BulkPropertyContextData.hxx.

typedef void(* BulkProperty_query_based_bulk_loader_t)(int n_property_descriptor_tags,const tag_t *property_descriptor_tags,int n_objects,const tag_t *objects)

Query-based bulk property loader function pointer registered by external system. Perform set-based query to retrieve attribute values from db Does property-specific computation if applicable Populate property values to Singleton PVM managing an array of buckets per type, e.g. Item Bucket, ItemRevision Bucket and BOMLine Bucket

Definition at line 105 of file BulkPropertyContextData.hxx.

Function Documentation

Teamcenter::Property::BulkPropertyContextData* PROPDESC_ask_bulk_prop_context_data ( METHOD_message_t *  m)

Retrieves the current user bulk property context. Returns bulk property context data class instance.

Parameters
m(I) method message
Teamcenter::Property::BulkPropertyContextData* PROPDESC_ask_bulk_prop_context_data ( tag_t  pdTag)

Retrieves the bulk property context data instance for the given property descriptor.
The bulk property context data instance may be created during execution of BulkProperty_bulk_loader_t bulk loader batch function to cache information that can be used later. The function may be called from the property getter function.

BulkPropertyContextData* myBulkPropertyContextData = PROPDESC_ask_bulk_prop_context_data_by_name( pdTag );
if( myBulkPropertyContextData != 0 )
{
// implementation
}
Returns
  • BulkPropertyContextData bulk property context data class instance if bulk loading context is active
  • NULL if bulk loading context is not active
Parameters
pdTag(I) property descriptor tag
Teamcenter::Property::BulkPropertyContextData * PROPDESC_ask_bulk_prop_context_data_by_name ( tag_t  objTag,
const char *  propName 
)

Retrieves the bulk property context for input business object and property. Returns bulk property context data class instance.

Retrieves the bulk property context data instance for the given property name.
The bulk property context data instance may be created during execution of BulkProperty_bulk_loader_t bulk loader batch function to cache information that can be used later. The function may be called from the property getter function.

{
MyBulkPropertyContextData* myBulkPropertyContextData =
static_cast<MyBulkPropertyContextData *> (PROPDESC_ask_bulk_prop_context_data_by_name( objTag, "myPropName" ));
if( myBulkPropertyContextData != 0 )
{
// implemenattion
}
}
Returns
  • BulkPropertyContextData bulk property context data class instance on success
int PROPDESC_execute_bulk_loader ( int  n_tags,
const tag_t *  tags,
int  n_props,
const char **  props 
)

Executes registered bulk load function for each input property.

Returns
  • ITK_ok on success
  • PROP_not_found, if the given property descriptor tag is invalid.
  • Potentially other errors
Parameters
n_tags(I) Number of input objects
tags(I) n_tags Input objects
n_props(I) Number of input properties
props(I) n_props Input property names
logical PROPDESC_is_bulk_loading_context ( )

Checks if property bulk loading context is active.

Returns
  • true if in bulk context
  • false if not in bulk context
int PROPDESC_register_bulk_loader2 ( tag_t  prop_desc_tag,
logical  invoke_once,
BulkProperty_bulk_loader_t  bulk_loader_fn 
)

Registers bulk load function pointer and other information.
The implementation of bulk_loader_fn must be capable of being invoked multiple times to build up the full result. Please refer to the documentation of BulkProperty_bulk_loader_t for further information.

Returns
  • ITK_ok on success
  • PROP_not_found if property descriptor not found
Parameters
prop_desc_tag(I) tag of the property descriptor
invoke_once(I) if batch function needs to invoke once
bulk_loader_fn(I) batch function
int PROPDESC_register_query_based_bulk_loader ( int  n_property_descriptor_tags,
const tag_t *  property_descriptor_tags,
BulkProperty_query_based_bulk_loader_t  query_based_loader_fn 
)

Registers query based bulk load function pointer and other information.

Returns
  • ITK_ok on success
  • PROP_not_found if property descriptor not found
Parameters
n_property_descriptor_tags(I) Number of property descriptors
property_descriptor_tags(I) n_property_descriptors The property descriptors
query_based_loader_fn(I) query based function