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 }
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
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
std::string format_path_store(PathStore store)
Returns the string corresponding to this method.
Definition: pathStore.cxx:23
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