Location::GetDifference
2개의 위치 간의 차이를 상대 위치로 리턴합니다.
GSErrCode GetDifference ( const Location& rightOp, RelativeLocation* result ) const;
파라미터
- rightOp
- 차(difference) 연산의 오른쪽 (2번째) 피연산자입니다.
- result
- 리턴 시: 차(difference) 연산의 결과입니다.
리턴 값
값 | 의미 |
---|---|
NoError* | OK |
InvalidOperand* | 피연산자들이 이 동작에 대하여 호환되지 않습니다. |
ErrMemoryFull* | 메모리가 부족합니다. |
Error* | 불특정 오류입니다. |
* Location class 범위에서 선언함
* GS 네임스페이스에서 선언했지만, 글로벌 범위에서 접근 가능함
설명
이 메소드는 2개의 위치 간의 차이를 상대 위치로 리턴합니다. 만약 위치 x와 y 간의 차이가 상대 위치 z라면, y에 z를 이어 붙이는 것의 결과는 x가 될 것입니다. 차(difference) 연산은 동일한 네트워크 주소를 가진 위치들 간에서만 수행할 수 있습니다. (그 외에는 InvalidOperand를 리턴할 것입니다) 왜냐하면 상대 위치들은 위치의 로컬 주소에 상대적입니다.
만약 차(difference) 연산의 1번째 피연산자가 2번째 피연산자의 조상이 아니라면, (IsAncestorOf 메소드를 통해 알 수 있음)
결과로 나오는 상대 위치는 앞의 위치에 (부모 폴더를 의미하는) ".." 이름들을 갖게 될 것입니다.
만약 동일한 결과들이 더 많이 있다면, 더 짧은 것이 리턴될 것입니다.