// -------------------------------------------------------------------------------------------------
void le_cfgAdmin_GetTreeName
(
    le_cfgAdmin_ServerCmdRef_t commandRef,  ///< [IN] Reference used to generate a reply for this
                                            ///<      request.
    le_cfgAdmin_IteratorRef_t iteratorRef,  ///< [IN] Iterator object to read.
    size_t nameSize                         ///< [IN] Size of the client's name buffer.
)
// -------------------------------------------------------------------------------------------------
{
    le_msg_SessionRef_t sessionRef = le_cfgAdmin_GetClientSessionRef();
    ti_TreeIteratorRef_t internalRef = ti_InternalRefFromExternalRef(sessionRef, iteratorRef);

    char treeName[MAX_TREE_NAME_BYTES] = "";
    le_result_t result = LE_OK;

    if (nameSize > MAX_TREE_NAME_BYTES)
    {
        nameSize = MAX_TREE_NAME_BYTES;
    }

    if (internalRef != NULL)
    {
        result = ti_GetCurrent(internalRef, treeName, nameSize);
    }

    le_cfgAdmin_GetTreeNameRespond(commandRef, result, treeName);
}
Esempio n. 2
0
//--------------------------------------------------------------------------------------------------
tu_UserRef_t tu_GetCurrentConfigAdminUserInfo
(
    void
)
//--------------------------------------------------------------------------------------------------
{
    return GetUserInfo(le_cfgAdmin_GetClientSessionRef(), NULL);
}
// -------------------------------------------------------------------------------------------------
void le_cfgAdmin_CreateTreeIterator
(
    le_cfgAdmin_ServerCmdRef_t commandRef  ///< [IN] Reference used to generate a reply for this
                                           ///<      request.
)
// -------------------------------------------------------------------------------------------------
{
    le_cfgAdmin_CreateTreeIteratorRespond(commandRef,
                                          ti_CreateIterator(le_cfgAdmin_GetClientSessionRef()));
}
// -------------------------------------------------------------------------------------------------
static ni_IteratorRef_t GetIteratorFromRef
(
    le_cfg_IteratorRef_t externalRef  ///< [IN] Iterator reference to extract a pointer from.
)
// -------------------------------------------------------------------------------------------------
{
    ni_IteratorRef_t iteratorRef = ni_InternalRefFromExternalRef(tu_GetCurrentConfigAdminUserInfo(),
                                                                 externalRef);

    if (iteratorRef == NULL)
    {
        tu_TerminateConfigAdminClient(le_cfgAdmin_GetClientSessionRef(), "Bad iterator reference.");
    }

    return iteratorRef;
}
// -------------------------------------------------------------------------------------------------
void le_cfgAdmin_ReleaseTreeIterator
(
    le_cfgAdmin_ServerCmdRef_t commandRef,  ///< [IN] Reference used to generate a reply for this
                                            ///<      request.
    le_cfgAdmin_IteratorRef_t iteratorRef   ///< [IN] Iterator object to release.
)
// -------------------------------------------------------------------------------------------------
{
    le_msg_SessionRef_t sessionRef = le_cfgAdmin_GetClientSessionRef();
    ti_TreeIteratorRef_t internalRef = ti_InternalRefFromExternalRef(sessionRef, iteratorRef);

    if (internalRef != NULL)
    {
        ti_ReleaseIterator(internalRef);
    }

    le_cfgAdmin_ReleaseTreeIteratorRespond(commandRef);
}
// -------------------------------------------------------------------------------------------------
void le_cfgAdmin_NextTree
(
    le_cfgAdmin_ServerCmdRef_t commandRef,  ///< [IN] Reference used to generate a reply for this
                                            ///<      request.
    le_cfgAdmin_IteratorRef_t iteratorRef   ///< [IN] Iterator to iterate.
)
// -------------------------------------------------------------------------------------------------
{
    le_msg_SessionRef_t sessionRef = le_cfgAdmin_GetClientSessionRef();
    ti_TreeIteratorRef_t internalRef = ti_InternalRefFromExternalRef(sessionRef, iteratorRef);

    le_result_t result = LE_OK;

    if (internalRef != NULL)
    {
        result = ti_MoveNext(internalRef);
    }

    le_cfgAdmin_NextTreeRespond(commandRef, result);
}