Panda3D
pathStore.cxx
Go to the documentation of this file.
1 /**
2  * PANDA 3D SOFTWARE
3  * Copyright (c) Carnegie Mellon University. All rights reserved.
4  *
5  * All use of this software is subject to the terms of the revised BSD
6  * license. You should have received a copy of this license along
7  * with this source code in a file named "LICENSE."
8  *
9  * @file pathStore.cxx
10  * @author drose
11  * @date 2003-02-10
12  */
13 
14 #include "pathStore.h"
15 
16 #include "string_utils.h"
17 #include "pnotify.h"
18 
19 /**
20  * Returns the string corresponding to this method.
21  */
22 std::string
24  switch (store) {
25  case PS_invalid:
26  return "invalid";
27 
28  case PS_relative:
29  return "relative";
30 
31  case PS_absolute:
32  return "absolute";
33 
34  case PS_rel_abs:
35  return "rel_abs";
36 
37  case PS_strip:
38  return "strip";
39 
40  case PS_keep:
41  return "keep";
42  }
43  nout << "**unexpected PathStore value: (" << (int)store << ")**";
44  return "**";
45 }
46 
47 /**
48  *
49  */
50 std::ostream &
51 operator << (std::ostream &out, PathStore store) {
52  return out << format_path_store(store);
53 }
54 
55 /**
56  * Stores from a string, as might be input by the user, to one of the known
57  * PathStore types. Returns PS_invalid if the string is unknown.
58  */
60 string_path_store(const std::string &str) {
61  if (cmp_nocase(str, "relative") == 0 ||
62  cmp_nocase(str, "rel") == 0) {
63  return PS_relative;
64 
65  } else if (cmp_nocase(str, "absolute") == 0 ||
66  cmp_nocase(str, "abs") == 0) {
67  return PS_absolute;
68 
69  } else if (cmp_nocase_uh(str, "rel_abs") == 0) {
70  return PS_rel_abs;
71 
72  } else if (cmp_nocase(str, "strip") == 0) {
73  return PS_strip;
74 
75  } else if (cmp_nocase(str, "keep") == 0) {
76  return PS_keep;
77 
78  } else {
79  return PS_invalid;
80  }
81 }
PathStore string_path_store(const std::string &str)
Stores from a string, as might be input by the user, to one of the known PathStore types.
Definition: pathStore.cxx:60
std::string format_path_store(PathStore store)
Returns the string corresponding to this method.
Definition: pathStore.cxx:23
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PathStore
This enumerated type lists the methods by which a filename path might be mangled before storing in a ...
Definition: pathStore.h:23
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.