summaryrefslogtreecommitdiff
path: root/indra/llprimitive/llvolumemessage.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llprimitive/llvolumemessage.h')
-rw-r--r--indra/llprimitive/llvolumemessage.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/indra/llprimitive/llvolumemessage.h b/indra/llprimitive/llvolumemessage.h
new file mode 100644
index 0000000000..299d5813a0
--- /dev/null
+++ b/indra/llprimitive/llvolumemessage.h
@@ -0,0 +1,74 @@
+/**
+ * @file llvolumemessage.h
+ * @brief LLVolumeMessage base class
+ *
+ * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LL_LLVOLUMEMESSAGE_H
+#define LL_LLVOLUMEMESSAGE_H
+
+#include "llvolume.h"
+
+class LLMessageSystem;
+class LLDataPacker;
+
+// wrapper class for some volume/message functions
+class LLVolumeMessage
+{
+protected:
+ // The profile and path params are protected since they do not do
+ // any kind of parameter validation or clamping. Use the public
+ // pack and unpack volume param methods below
+
+ static bool packProfileParams(
+ const LLProfileParams* params,
+ LLMessageSystem* mesgsys);
+ static bool packProfileParams(
+ const LLProfileParams* params,
+ LLDataPacker& dp);
+ static bool unpackProfileParams(
+ LLProfileParams* params,
+ LLMessageSystem* mesgsys,
+ char* block_name,
+ S32 block_num = 0);
+ static bool unpackProfileParams(LLProfileParams* params, LLDataPacker& dp);
+
+ static bool packPathParams(
+ const LLPathParams* params,
+ LLMessageSystem* mesgsys);
+ static bool packPathParams(const LLPathParams* params, LLDataPacker& dp);
+ static bool unpackPathParams(
+ LLPathParams* params,
+ LLMessageSystem* mesgsys,
+ char* block_name,
+ S32 block_num = 0);
+ static bool unpackPathParams(LLPathParams* params, LLDataPacker& dp);
+
+public:
+ /**
+ * @brief This method constrains any volume params to make them valid.
+ *
+ * @param[in,out] Possibly invalid params in, always valid out.
+ * @return Returns true if the in params were valid, and therefore
+ * unchanged.
+ */
+ static bool constrainVolumeParams(LLVolumeParams& params);
+
+ static bool packVolumeParams(
+ const LLVolumeParams* params,
+ LLMessageSystem* mesgsys);
+ static bool packVolumeParams(
+ const LLVolumeParams* params,
+ LLDataPacker& dp);
+ static bool unpackVolumeParams(
+ LLVolumeParams* params,
+ LLMessageSystem* mesgsys,
+ char* block_name,
+ S32 block_num = 0);
+ static bool unpackVolumeParams(LLVolumeParams* params, LLDataPacker &dp);
+};
+
+#endif // LL_LLVOLUMEMESSAGE_H
+