///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2002-2025, Open Design Alliance (the "Alliance").
// All rights reserved.
//
// This software and its documentation and related materials are owned by
// the Alliance. The software may only be incorporated into application
// programs owned by members of the Alliance, subject to a signed
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable
// trade secrets of the Alliance and its suppliers. The software is also
// protected by copyright law and international treaty provisions. Application
// programs incorporating this software must include the following statement
// with their copyright notices:
//
// This application incorporates Open Design Alliance software pursuant to a license
// agreement with Open Design Alliance.
// Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance.
// All rights reserved.
//
// By use of this software, its documentation or related materials, you
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
#ifndef _ODTV_GSCAHCESTUB_H_INCLUDED_
#define _ODTV_GSCAHCESTUB_H_INCLUDED_
#include "Tv.h"
#include "TvEntity.h"
/** \details
The base interface class for getting access to Visualize SDK GS cache stub objects.
*/
class ODTV_EXPORT OdTvGsCacheStub : public OdTvHandledIObject
{
public:
/** \details
Retrieves the current name of the GS cache stub object.
\param rc [out] A pointer to a value of type that contains the result of the retrieve operation.
\returns The current name of the group object.
\remarks
The name is an arbitrary non-empty string that can contain letters, digits, blank spaces,
underscores, and some special characters, but cannot contain inadmissible letters
("<", ">", "\", "/", ":", ";", "?", ",", "*", "|", "=", "'", quotation marks and some special characters created with Unicode fonts).
If the rc parameter is not null and the group object name was successfully returned, the rc parameter accepts the tvOk value; otherwise it contains an appropriate error code.
*/
virtual OdString getName( OdTvResult* rc = NULL ) const = 0;
/** \details
Retrieves the current extents of a specified type for the object.
\param ext [out] A placeholder for current extents object.
\param eType [in] A type of extents to be retrieved.
\returns A value of type that contains the result of the operation.
\remarks
The method fills the passed extents object and returns it to a calling subroutine.
If the extents object was successfully set, the method returns the tvOk value; otherwise it returns an appropriate error code.
*/
virtual OdTvResult getExtents( OdTvExtents3d& ext, OdTv::ExtentsType eType = OdTv::kPreferred ) const = 0;
/** \details
Retrieves the original object type.
\param rc [out] A pointer to a value of type that contains the result of the retrieve operation.
\returns The original object type.
*/
virtual OdTvEntityId::EntityTypes getOriginalObjectType( OdTvResult* rc = NULL ) const = 0;
};
/** \details
A data type that represents a smart pointer to an object.
*/
typedef OdTvSmartPtr OdTvGsCacheStubPtr;
#endif //_ODTV_GSCAHCESTUB_H_INCLUDED_