Caminho lógico dos componentes
O caminho lógico é usado para organizar componentes gerenciados por um gravador em grupos bem definidos.
O caminho lógico é análogo na estrutura ao caminho de arquivo tradicional, usando a barra invertida "\" para separar elementos no caminho. Ao contrário dos caminhos de arquivo, a raiz de um caminho lógico é NULL, em vez de "\".
O caminho lógico é expresso como uma cadeia de caracteres terminada em NULL e não há outras restrições nos caracteres que o caminho pode conter.
O uso mais importante do caminho lógico está na definição de conjuntos de componentes, em que a inclusão explícita do componente em uma operação de backup ou restauração de um componente selecionável requer a inclusão de vários outros componentes (subcomponente). O caminho lógico do componente definidor de um conjunto de componentes é um pai para os caminhos lógicos de seus subcomponentes e:
- Os subcomponentes devem compartilhar como um caminho raiz o caminho lógico do componente selecionável que define o conjunto de componentes.
- Um caminho raiz de NULL é válido.
- O nome do componente selecionável definidor deve ser o primeiro elemento de caminho lógico após o caminho raiz para cada subcomponente não reelecionável do conjunto de componentes.
- Os conjuntos de componentes podem ser aninhados.
- A combinação de caminho lógico e nome do componente deve ser exclusiva em todas as instâncias de uma classe de gravador.
O exemplo hipotético de um gravador MyWriter com uma estrutura de caminho lógico definida abaixo ilustra o caminho lógico.
Nome do Componente | Caminho lógico | Selecionável para backup |
---|---|---|
"Executáveis" | "" | N |
"ConfigFiles" | "Executáveis" | N |
"LicenseInfo" | "" | S |
“Segurança” | "" | S |
"UserInfo" | “Segurança” | N |
"Certificados" | “Segurança” | N |
"writerData" | "" | S |
"Set1" | "writerData" | N |
"Jan" | "writerData\Set1" | N |
"Dez" | "writerData\Set1" | N |
"Set2" | "writerData" | N |
"Jan" | "writerData\Set2" | N |
"Dez" | "writerData\Set2" | N |
"Consulta" | "writerData\QueryLogs" | N |
"Uso" | "writerData" | S |
"Jan" | "writerData\Usage" | N |
"Dez" | "writerData\Usage" | N |
Observe que os componentes "Executables" e "ConfigFile" têm uma relação pai-filho, mas ambos são não reelecionáveis. Portanto, eles não formam um conjunto de componentes. Sempre que o gravador MyWriter for feito backup ou restaurado, esses dois componentes precisarão ser incluídos explicitamente na operação.
O componente "LicenseInfo" é selecionável sem ancestral nem descendente. Ele pode ser incluído explicitamente ou não em uma operação de backup ou restauração a critério do solicitante.
O componente "Segurança" define um conjunto de componentes simples, sem nenhum conjunto de componentes abaixo dele.
O componente "writerData" define um conjunto de componentes, que contém uma coleção complexa de componentes com várias hierarquias de caminho lógico bem definidas abaixo dele.
Um subcomponente, "Uso", é selecionável e define um conjunto de componentes.
Vários componentes têm o mesmo nome e são diferenciados por seus caminhos lógicos. As instâncias dos componentes não reelecionáveis "Dec" e "Jan" existem nos componentes componentes não reelecionáveis "Set1" e "Set2" e no subcomponente selecionável "Uso".
Se o componente "writerData" for explicitamente incluído em um backup ou restauração, todos os seus subcomponentes, mesmo aqueles no conjunto de componentes aninhados definido por "Uso", serão incluídos implicitamente na operação.
Se o conjunto de componentes definido por "writerData" não estiver explicitamente incluído em um backup ou restauração, os componentes "Set1", "Set2" e "QueryLogs" (e suas instâncias de subcomponentes "Dec" e "Jan") não serão incluídos implicitamente na operação de backup ou restauração.
No entanto, mesmo que "writerData" não esteja incluído na operação, o componente "Uso" ainda será selecionável e ainda poderá ser incluído explicitamente em uma operação de backup ou restauração. Se for, seus subcomponentes "Jan" e "Dez" serão incluídos implicitamente.
Outros pontos dignos de observação:
- Os componentes selecionáveis "LicenseInfo" e "writerData" e o componente não selecionável "Executables" estão todos no mesmo nível na hierarquia de caminho lógico do MyWriter: todos têm o mesmo caminho lógico de NULL ou "", o caminho lógico raiz.
- O componente selecionável "Uso" nunca deve ser incluído explicitamente em um backup, se seu pai selecionável ("writerData") estiver explicitamente incluído em uma operação de backup ou restauração.
- Componentes que definem conjuntos de componentes podem existir simplesmente por motivos organizacionais. Por exemplo, o componente "writerData" ou "Uso" ou ambos podem estar vazios; ou seja, nenhum conjunto de arquivos foi adicionado a eles usando o método IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles ou IVssCreateWriterMetadata::AddDatabaseLogFiles . Os componentes ainda definem um conjunto de componentes.