Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

scv_introspection.h File Reference

#include "scv/scv_object_if.h"
#include <assert.h>
#include <list>
#include <string>
#include "scv/scv_report.h"
#include "scv/scv_bag.h"
#include "scv/scv_random.h"
#include "scv/scv_shared_ptr.h"
#include "scv/scv_expression.h"
#include "scv/_scv_ext_comp.h"
#include "scv/_scv_introspection.h"
#include "scv/_scv_smart_ptr.h"

Include dependency graph for scv_introspection.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  scv_enum_base
class  callback_arg_t
class  callback_t
class  callback_base
class  scv_extension_callbacks_if
class  scv_extension_rand_if
class  scv_extension_rw_if
class  scv_extension_type_if
class  scv_extension_util_if
class  scv_extensions
class  scv_extensions_base
class  scv_extensions_if
class  scv_smart_ptr
class  scv_smart_ptr_if
class  test_uint

Defines

#define TEST_NEST_TEMPLATE
#define _SCV_INTROSPECTION_BASE   scv_object_if
#define _SCV_INTROSPECTION_BASE   scv_extension_util_if
#define _SCV_INTROSPECTION_BASE   scv_extension_type_if
#define _SCV_INTROSPECTION_BASE   scv_extension_rw_if
#define _SCV_INTROSPECTION_BASE   scv_extension_rand_if
#define _SCV_INTROSPECTION_BASE   scv_extension_callbacks_if
#define _SCV_INTROSPECTION_BASE   scv_extensions_if
#define _SCV_PAREN_OPERATOR(typename)
#define SCV_EXTENSIONS(type_name)
#define SCV_EXTENSIONS_CTOR(type_name)
#define SCV_FIELD(field_name)
#define SCV_EXTENSIONS_BASE_CLASS(class_name)   scv_extensions<class_name>::_set_instance_core(_scv_object_with_introspection); \
#define SCV_ENUM_EXTENSIONS(type_name)
#define SCV_ENUM_CTOR(type_name)
#define SCV_ENUM(element_name)   _set_enum((int)element_name,#element_name); \

Functions

template<typename T> ostream & operator<< (ostream &os, const scv_extensions< T > &data)
template<typename T> scv_extensions< T > scv_get_extensions (T &d)
template<typename T> const scv_extensions< T > scv_get_const_extensions (const T &d)


Define Documentation

#define _SCV_INTROSPECTION_BASE   scv_extensions_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_INTROSPECTION_BASE   scv_extension_callbacks_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_INTROSPECTION_BASE   scv_extension_rand_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_INTROSPECTION_BASE   scv_extension_rw_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_INTROSPECTION_BASE   scv_extension_type_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_INTROSPECTION_BASE   scv_extension_util_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_INTROSPECTION_BASE   scv_object_if
 

Definition at line 401 of file scv_introspection.h.

#define _SCV_PAREN_OPERATOR typename   
 

Value:

scv_expression operator()() {                                     \
    return scv_expression(new scv_expression_core(this));\
  }                                                                \

Definition at line 549 of file scv_introspection.h.

#define SCV_ENUM element_name       _set_enum((int)element_name,#element_name); \
 

Definition at line 615 of file scv_introspection.h.

#define SCV_ENUM_CTOR type_name   
 

Value:

virtual const char *get_type_name() const {                           \
    static const char *s = strdup(#type_name);                           \
    return s;                                                            \
  }                                                                      \
  scv_extensions() { static bool dummy = _init(); if (0) cout << dummy;} \
  scv_extensions(const scv_extensions& rhs) {                            \
    _set_instance(rhs._get_instance());                                  \
  }                                                                      \
  virtual ~scv_extensions() {}                                           \
  scv_extensions& operator=(const scv_extensions& rhs) {                 \
    write(*rhs._get_instance()); return *this;                           \
  }                                                                      \
  scv_extensions& operator=(type_name rhs) {                             \
    write(rhs); return *this;                                            \
  }                                                                      \
  operator type_name() const { return *(type_name*)_get_instance(); }    \
  _SCV_PAREN_OPERATOR(typename);                                         \
  bool _init() { __init(); return true; }                                \
  void __init()                                                          \

Definition at line 594 of file scv_introspection.h.

#define SCV_ENUM_EXTENSIONS type_name   
 

Value:

template<>                                                             \
  class scv_extensions<type_name> : public scv_enum_base<type_name>      \

Definition at line 590 of file scv_introspection.h.

#define SCV_EXTENSIONS type_name   
 

Value:

template<>                                                             \
  class scv_extensions<type_name> : public scv_extensions_base<type_name>\

Definition at line 557 of file scv_introspection.h.

#define SCV_EXTENSIONS_BASE_CLASS class_name       scv_extensions<class_name>::_set_instance_core(_scv_object_with_introspection); \
 

Definition at line 587 of file scv_introspection.h.

#define SCV_EXTENSIONS_CTOR type_name   
 

Value:

virtual const char *get_type_name() const {                            \
    static const char *s = strdup(#type_name);                           \
    return s;                                                            \
  }                                                                      \
  scv_extensions() { _set_instance(NULL); }                              \
  scv_extensions(const scv_extensions& rhs) {                            \
    _set_instance(NULL);                                                 \
    _set_instance((type_name*)rhs._get_instance());                      \
  }                                                                      \
  virtual ~scv_extensions() {}                                           \
  scv_extensions& operator=(const scv_extensions& rhs) {                 \
    write(*rhs._get_instance()); return *this;                           \
  }                                                                      \
  scv_extensions& operator=(const type_name& rhs) {                      \
    write(rhs); return *this;                                            \
  }                                                                      \
  operator const type_name&() const { return *(type_name*)_get_instance(); } \
  _SCV_PAREN_OPERATOR(typename);                                         \
  virtual void _set_instance_core_wrap(void *p) { _set_instance_core((type_name*)p); } \
  void _set_instance_core(type_name *_scv_object_with_introspection) \

Definition at line 561 of file scv_introspection.h.

Referenced by SCV_EXTENSIONS().

#define SCV_FIELD field_name   
 

Value:

string field_name ## _name = #field_name;                       \
  field_name._set_as_field(this,_scv_object_with_introspection?(&_scv_object_with_introspection->field_name):0,field_name ## _name);   \

Definition at line 583 of file scv_introspection.h.

Referenced by SCV_EXTENSIONS().

#define TEST_NEST_TEMPLATE
 

Definition at line 141 of file scv_introspection.h.


Function Documentation

template<typename T>
ostream& operator<< ostream &    os,
const scv_extensions< T > &    data
 

Definition at line 622 of file scv_introspection.h.

template<typename T>
const scv_extensions<T> scv_get_const_extensions const T &    d
 

Definition at line 51 of file _scv_smart_ptr.h.

Referenced by scv_tr_generator< T_begin, T_end >::begin_transaction(), scv_tr_generator< T_begin, T_end >::end_transaction(), scv_tr_handle::end_transaction(), generate_value_distribution(), generate_value_distribution_range(), scv_tr_handle::record_attribute(), scv_expression_core_signal< T >::scv_expression_core_signal(), and scv_expression_core_signal< T >::update_signal_value().

template<typename T>
scv_extensions<T> scv_get_extensions T &    d
 

Definition at line 44 of file _scv_smart_ptr.h.


Generated on Fri Jan 14 08:30:44 2005 for SystemC2.1beta11(excludingMSLib)(IncludingSCV)\nProvidedby:www.openverificationfoundation.org by doxygen1.2.18